记一次入门反调试技术
找到关键函数,先分析F5伪代码,发现了virtualprotect函数,联想到了SMC代码保护技术
但是到了后面分析发现分析不下去了,然后找了wp发现是代码反调试技术
然后细细看if()的内容,发现了这个特别的函数
而且关键操作函数是sub_401042(),这个时候得先过掉反调试关才能执行这个代码
百度了解到
原来这里就是代码反调试的关键函数,这个时候我们找到思维试图,发现是jz跳转
这个时候我们就可以利用动态调试把zf位的数值改掉(jz的转跳与zf位有关)
这个时候我们改掉zf位以后就可以进行右边的程序了,这个时候再观察伪代码即可
用ida进行动态调试
将断点定在jz跳转的地方
然后就打开动态调试,双击zf标志,将其改成1
然后直接F8步过
为了方便观看,F5看伪代码
这时候F8步过再F7步进即可观察对输入字符的操作
这时候可以看到跳转到汇编窗口,而且地址冒红,这个时候需要p键重新构造函数
然后就好了
然后F5查看伪代码
就可以直接进行分析了
得到答案
标签:jz,代码,跳转,SMC,zf,调试 From: https://www.cnblogs.com/lhqrusht0p/p/17782772.html