轉帖|使用教程|編輯:李顯亮|2020-03-10 11:32:17.690|閱讀 708 次
概述:小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文講解反匯編引擎學習。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VMProtect是一種很可靠的工具,可以保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現最好的效果。
小編大家整理了大佬們的使用技巧和經驗與大家分享,希望能夠幫助你解決實際運用中遇到的問題。本文接著介紹關于反匯編引擎。
Decode_SetReg函數分析
一共有3組,每組0x17個字節,包含結尾表示0xFFFFFFFF,這些都是保存目標操作數或則源操作數信息的
v6 = (v9 >> 3) & 7;首先v9=0x74,繼續我們的查表
轉換成二進制如下:0x74=??01 110 100?
很明顯v6=ModRM.reg(Esi)?
分析Decode_ModRM結構
首先解析ModRm判斷尋址模式?
首先先將ModRM轉換下?
轉換成二進制如下:0x74=??01 110 100??
0x40=01,0x80=10,0xC0=11以此類推
判斷是否需要SIB尋址方式
R/M==8(100),只有ModRM.mod尋址模式是11(寄存器是不帶SIB的).第一種這里是ModRM.mod 提供尋址模式: 11 = register(寄存器)。直接保存ModRM.r/m
第二種情況存在SIB尋址方式。根據上文找到的地址發現是[--][--]”,表示有SIB表。SIB結構如下:
轉換成2進制如下:0x24=?00101100?
最后讀取Displacement_Immediate?
還有一些Opcode需要ModRM進行補充的。單純的一個FF無法表達它到底是CALL、INC、jmp、push需要ModRm輔助的,具體看ModRm.Reg
Vmp_Disassembly使用的結構體如下,所有解析后的數據都保存在struc_SaveAllDisasmFunData結構里面
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn