当前位置: 首页 > web >正文

DOS下EXE文件的分析 <1>

DOS下EXE文件的分析 <1>

如何在dos下读取exe文件的反汇编代码?

  一般的debug命令是这样的
debug simcga.exe

  用dos管道命令如下
debug simcga.exe >simcga.txt

  这时是无回显的状态,
再输入
u 0 200
之后输入
q
退出。
这样在simcga.txt中就会记录显示
从地址0h 到 地址200h 的debug反汇编代码。

  如下一个分析例子:

075C:0406 B402          MOV	AH,02                              
075C:0408 B25B          MOV	DL,5B                              
075C:040A CD21          INT	21                                 
075C:040C B402          MOV	AH,02                              
075C:040E 8A15          MOV	DL,[DI]                            
075C:0410 CD21          INT	21                                 
075C:0412 47            INC	DI                                 
075C:0413 803D00        CMP	BYTE PTR [DI],00                   
075C:0416 7408          JZ	0420                               
075C:0418 B402          MOV	AH,02                              
075C:041A B22C          MOV	DL,2C                              
075C:041C CD21          INT	21                                 
075C:041E EBEC          JMP	040C                               
075C:0420 B402          MOV	AH,02                              
075C:0422 B25D          MOV	DL,5D                              
075C:0424 CD21          INT	21                                 
075C:0426 B402          MOV	AH,02                              
075C:0428 B23F          MOV	DL,3F                              
075C:042A CD21          INT	21 

                              

  int 21h 的 ah 的02h 的功能是显示字符,
dl 是显示字符的ascii码。
如上 5b 和 5d 的ascii吗是"[""]".
就是 显示 "[",和 "]"字符。

  DOS下一般的若在反汇编代码中出现int 10h或int 21h等,
这就好分析一些。
我猜的,若没有以上的int 等,而出现如下rep movsb这类,
将一个地址写到另一个
地址就难一些。

以下另一个例子,
jne 052h
mov al,06h
mov ah,00h
int 10h
这是从emu8086这个软件的 ver 4.08版的
模拟软件中截取的几行代码。
出自dos游戏<三国志2>中的simcga.exe中。
他simcga是设置dos图形模式,
06h 是 06H:640×200 2色。

20250713 -win10 dosbox 下调试成功。

 
#

http://www.xdnf.cn/news/15438.html

相关文章:

  • Linux锁的概念及线程同步
  • 【iOS】方法与消息底层分析
  • 深入了解JAVA中Synchronized
  • CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用
  • 002大模型基础知识
  • 认识String、StringBuffer、StringBuilder
  • vue3 el-select默认选中
  • 【设计模式】策略模式(政策(Policy)模式)
  • 从 Manifest V2 升级到 Manifest V3 的注意事项
  • Cursor三大核心AI功能
  • 详解缓存淘汰策略:LFU
  • JS红宝书pdf完整版
  • mac上BRPC的CMakeLists.txt优化:解决Protobuf路径问题
  • SCTP协议网络编程
  • 【算法】贪心算法:柠檬水找零C++
  • Redis 命令总结
  • SpringBoot3-Flowable7初体验
  • Java 内部类详解:从基础到实战,掌握嵌套类、匿名类与局部类的使用技巧
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • MYSQL笔记2
  • 4. MyISAM vs InnoDB:深入解析MySQL两大存储引擎
  • 39.Sentinel微服务流量控制组件
  • 论文笔记:AnImitation Learning Approach for Cache Replacement
  • Prometheus Operator:Kubernetes 监控自动化实践
  • 深入解析Hadoop架构设计:原理、组件与应用
  • Java 高级特性实战:反射与动态代理在 spring 中的核心应用
  • ADB 调试日志全攻略:如何开启与关闭 `ADB_TRACE` 日志
  • 面试150 二叉树展开为链表
  • Redis面试精讲 Day 2:Redis数据类型全解析
  • 【操作系统-Day 5】通往内核的唯一桥梁:系统调用 (System Call)