SMC

发布时间 2023-10-23 16:27:16作者: 努力的大魔王

记一次入门反调试技术

找到关键函数,先分析F5伪代码,发现了virtualprotect函数,联想到了SMC代码保护技术

 但是到了后面分析发现分析不下去了,然后找了wp发现是代码反调试技术

然后细细看if()的内容,发现了这个特别的函数

而且关键操作函数是sub_401042(),这个时候得先过掉反调试关才能执行这个代码

 百度了解到

 原来这里就是代码反调试的关键函数,这个时候我们找到思维试图,发现是jz跳转

 这个时候我们就可以利用动态调试把zf位的数值改掉(jz的转跳与zf位有关)

这个时候我们改掉zf位以后就可以进行右边的程序了,这个时候再观察伪代码即可

用ida进行动态调试

 将断点定在jz跳转的地方

 然后就打开动态调试,双击zf标志,将其改成1

 然后直接F8步过

 

 为了方便观看,F5看伪代码

 这时候F8步过再F7步进即可观察对输入字符的操作

这时候可以看到跳转到汇编窗口,而且地址冒红,这个时候需要p键重新构造函数

 然后就好了

 

 然后F5查看伪代码

 就可以直接进行分析了

 得到答案