OllyDbg 使用笔记 (十九)
时间:2022-03-13 23:35
OllyDbg 使用笔记 (十九)
参考
书:《加密与解密》
视频:小甲鱼 解密系列 视频
在call 004010FB下断点,程序运行程序,按F7进入call 004010FB,查看004010FB的代码:
图片2
函数通过IsDebuggerPresent这个API判断是否使用OD调式程序,如果是eax = 1,je short 004010E2 实现跳转,产生”Keyfile is not valid.Sorry.“窗口。可以直接把je short 004010E2 改成nop 就可以去除反调试。其它三个ReverseMe都大同小异。
再来看看Debugger Detected这个程序(下载地址:http://pan.baidu.com/s/1WuD4),如果不用英文的OD打开它,按下Verify会出现”Debugger NOT detected!!“窗口;如果用英文的OD打开它会产生一个ERROR窗口写“着Your debugger is detected!!!”。
用英文OD打开它,可以看到程序开头就是一个DialogBoxParamA函数创建 模态对话框。
图片3
其中0040108C是这个模态对话框的过程函数。
在0040108C下断点,按F9运行到0040108C处,按F8单步调试。
可以发现,当第二次运行0040108C时,在 call 004011CB 会产生ERROR窗口。在call 004011CB下断点,重新运行,跟进。
可以发现call 004011CB其实是查看当前系统所有的进程,搜索所有进程中的是否存在叫“OLLYDBG.EXE”的进程,如果有就产生ERROR窗口。
图片4