最近把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