今天所接触到的是绕过自效应。
所用到的还是《Shark恒零基础百集VIP破解教程》中的示例程序:
查壳,发现是Nspack
载入OD,发现可以用ESP定律脱壳,那就先脱壳,脱壳后发现程序不能打开,载入OD,插件-api断点设置-选择“getfilesize”断点(这里下断点的目的是直接找到GetFileSize函数的调用处),然后重新载入程序,运行:
进入GetFileSize函数的调用处:
下断,在断点窗口禁止程序epo断点,重新载入程序:
单步调试至cmp指令处【比效指令 CMP(CoMPare) 格式: CMP OPRD1,OPRD2 功能: 对两数进行相减,进行比较.】
此处cmp的作用是将寄存器eax里的值和0xc6c8处的值比较,接着ja指令根据结果判断是否跳转,单步至ja指令处发现跳转实现,猜测cmp处判断文件大小后发现文件大小发生变化,因此ja处跳转至程序结束处。
现在用nop填充cmp指令,验证猜测:
修改后保存:
发现修改后的文件可以成功打开,猜想正确: