一:od断点注释保存的问题,由于od只有在正常退出的情况下才会保存分析代码时留下的注释,而很多时候为了在退出od时不让目标程序退出使用了剥离进程,这样就会导致这次操作所有的注释都没有保存,第二次重新载入时候又的重新分析注释下断点,所以需要自己下载一个插件 Myinfo.dll,这个插件可以手动保存注释和断点,插件里面的导出操作是把注释导出到一个文件中,导入操作是把注释导入到od代码分析界面来,注意,每次导出操作都会删掉文件中的内容,保留本次导出内容
二: 插件安装,od插件只需把插件的dll粘贴到od安装文件夹的plugin文件夹中即可
三: 定位代
码时有时使用一些花指令代码 比如_asm{ mov eax,eax mov eax,eax}
这样的代码无实际作用,但是有助于定位程序代码段,可是查找命令序列时有时找不出来,这就需要点查看可执行模块,找出目标模块,双击,一般需要重复两次操
作,这样才能找到该命令序列,以为开始中断并不处于主模块内,需要进入主模块段才可以查找注释和指令
四:od一些常用命令
dd 以四字节方式转储,也就是以四字节的方式查看地址内存的值,比如一个数组 array[20] 它的首地址是405118 那么 dd 405118 就可以
看到array[0]的值了,dd i*0x4+405118 就可以看到数组array[i]的值,游戏分析时分析对象数组,dd
[eax*4+03f82520] 首先取出数 组03f82520[eax]里面保存的地址,然后查看该地址的值,很多怪物对象的首地址都是放在对象数组里面,找到该地址,就可以分析出该怪物的相应信息如 dd [eax*4+03f82520] +0xc 这个可能就是怪物生命等等
dc 是以ascill码显示该地址,这个一般是查看文本信息
hw硬件中断在写入时
db 以比特格式十六进制转储
当然有一些快捷键命令 暂时不表
五: 备份,修改数据之前,难免要备份,这就要用到备份功能,这样就可以很容易恢复到修改之前
六: 跟踪调试,这个功能相当不错,可以记录所有寄存器的值,这样便于观察分析
七: 直接更改程序汇编代码,然后保存到文件,这样就相当于更改了部分程序代码,很方便
八:下API断点 等熟悉了再补充
OD之常用命令