轉帖|使用教程|編輯:李顯亮|2020-05-08 09:34:34.047|閱讀 308 次
概述:小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文繼續講解Handle塊優化與殼模板初始化。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VMProtect是一種很可靠的工具,可以保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現最好的效果。
小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文接著介紹關于反匯編引擎。
第四章:Handle塊優化與殼模板初始化
1、將不符合條件的全部刪除,直到找到push 0xFACE0002這條為止
2、因為Vmp保存寄存器環境代碼是隨機性的,原始殼模板的是固定的所以要替換掉
3、因為 pushfd pushad模板后面必然是push 0xFACE0002
4、根據寄存器不同而設置不同的VmpOpcode,進行構造填充struct_DisassemblyFunction結構
5、返回:lods byte ptr ds:[esi]在數組第幾個元素
OD最終效果圖如下:
OD數組struc_SaveAllDisasmFunData->ArrayAddress排列順序如下:(注意 struc_SaveAllDisasmFunData->ArrayAddress排列順序 就是最終代碼顯示順序)
1、初始化v245跟v246數組,具體用處待定
2、找到處理的地方Vmp == 0x36
3、struct_DisassemblyFunction結構重新賦值
4、找到該struct_DisassemblyFunction所在的數組位置
5、并重新new個新的struct_DisassemblyFunction
6、根據隨機數構造命令:INC、Add、lea,實際上只要實現esi+1都行
7、OD最終效果圖:
8、原始模板
9、前面的構造出了inc esi(add lea),那么還差一句mov al,[esi]
10、注意v158 = GetRandInt0123((int)&savedregs);這一句是隨機獲取0~3,也就是Reg:0=al、1=cl、2=dl、3=bl
11、注意這一句跟后面的指令都是有關聯的,換了后面影響的指令都要換不同的Reg
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自: