轉帖|使用教程|編輯:李顯亮|2020-05-20 11:17:53.573|閱讀 238 次
概述:小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文繼續講解Handle塊優化與殼模板初始化。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VMProtect是一種很可靠的工具,可以保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現最好的效果。
小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文接著介紹關于反匯編引擎。
第四章:Handle塊優化與殼模板初始化
1、通過隨機數決定jmp ret指令是變換成:
隨機數==2
lea exx,dword ptr ds:[eax*4+0x474FCF]
jmp [exx]
隨機數==1
push dword ptr ds:[eax*4+0x4051BB]
retn
2、注意v238 = GetRandInt0123((int)&savedregs);這一句,表示它的Mod.Reg寄存器是隨機的0~3
跟前面一樣,將popad復雜化,變成pop eax、pop ecx等等
1、ESI_Matching_Array[2] == VMOpcode,符合條件的是:Vmp_Ret指令(pop xx popad popfd這種)
,{ 0x06,0x01,0x09,0x00,0x00,0x02,0x00,0x00, } //00474FCB 58 pop eax; 123.0047499B //00474FCC 61 popad //00474FCD 9D popfd ,{ 0x06,0x00,0x08,0x00,0x00,0x02,0x01,0x00, } //00474FC7 58 pop eax; 123.0047499B //00474FC8 61 popad //00474FC9 9D popfd
2、將popad跟popfd刪除,直到遍歷到ret就退出
3、將前面v7->struc_PushRegister保存的寄存器遞減方式存儲,注意去掉Esp寄存器
4、總結
原始的:
pop eax
popad
popfd
ret
修改成:
pop eax
pop xx
pop xx
pop xx
xxxxx
ret
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: