最近把pediy汇总的CM拿来做习题,遇到一个用了SMC,我就顺便做个自己做个笔记。
SMC(Sefl-Modifying Code),常见于反静态分析。在CM中多用于反爆破,这次先记录
下反爆破的情况。
Code1:
call DecryptFun
....
Code2:
cmp eax, 1
jnz success
通常关键跳会在Code2中的jnz,如果我们用OD找到关键点后,修改下jnz即可爆破。
如果用CryptFun对Code2的代码进行加密,然后在程序执行的时候用DecryptFun
进行解密,这样爆破的目的就失效了,因为爆破后的指令被解密后,汇编代码就错了。
另备一篇文章,供以后参考:
http://bbs.pediy.com/showthread.php?t=70444