DOS程序逆向学习
Dos常用命令
1 | dir #查看目录 |
编译并运行程序
1.下载Turboc2,并创建目录,用mount挂载
2.创建.c文件放到挂载目录下
3.在挂载盘中找到Turboc2并进入文件夹
4.运行tc,在file下load c文件,按f9编译,退出输入程序exe名即可运行
编译并运行汇编程序
使用MASM编译。
改汇编代码文件后缀为.asm
1 | masm [filename].asm |
调试程序
命令
A [地址] 输入汇编指令
C [范围] 起始地址 对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元
D [范围] 显示指定范围内的内存单元内容
E 地址 字节值表 用值表中的值替换从“地址”开始的内存单元内容
F 范围 字节值表 用指定的字节值表来填充内存区域
G [=起始地址] [断点地址] 从起点(或当前地点)开始执行,到终点结束
H 数值1 数值2 显示两个十六进制数值之和、差
I 端口地址 从端口输入
L [地址 [驱动器号 扇区 扇区数]] 从磁盘读取数据
M 范围 地址 把“范围”内的字节值传送到从“地址”开始的单元
N 文件标识符 [文件标识符…] 指定文件名,为读/写文件做准备
O 端口地址 字节值 向端口输出数据
P [=地址] [指令数] 按执行过程,但不进入子程序调用或软中断
Q 退出 DEBUG,不保存正在调试的文件
R [寄存器名] 显示和修改寄存器内容
S 范围 字节值表 在内存区域内搜索指定的字节值表。如果找到,显示起始地址,否则不显示任何内容
T [=地址] [指令数] 跟踪执行,从起点(或当前地点)执行若干条指令
U [范围] 反汇编,显示机器码所对应的汇编指令
W [地址 [驱动器号 扇区 扇区数]] 向磁盘写内容,(BX、CX)为写入字节数
在ida中查看地址
hello world字符被加载到ax打印,数据在cs:0200被存储,我们直接用t 201运行到位置后的位置。然后查看AX的值,定位到AX指向的位置用d 194查看内存。