自動脫加密殼(導入表hash 花指令)
阿新 • • 發佈:2018-05-26
111這裏是跟著上一篇
1。加密一定要自己申請空間 那就在申請空間那下 api 斷點 單步退出函數就看了返回值給 eax 記下它返回時的地址 這裏是 0x0047a37f
1。也一定會獲取真正的 api 那就跟到獲取地址那 記下它的地址 0x001614dc
由於地址會變 就記下相對地址同時是記它的下一條 所以偏移為 14E0
2。它一定會填充 IAT 那就跟到那 一樣是下一條指令地址的偏移 所以為 0897
運行截圖
1。加密一定要自己申請空間 那就在申請空間那下 api 斷點 單步退出函數就看了返回值給 eax 記下它返回時的地址 這裏是 0x0047a37f
1。也一定會獲取真正的 api 那就跟到獲取地址那 記下它的地址 0x001614dc
由於地址會變 就記下相對地址同時是記它的下一條 所以偏移為 14E0
2。它一定會填充 IAT 那就跟到那 一樣是下一條指令地址的偏移 所以為 0897
運行截圖
VAR vOldOEP VAR vAllocAddr VAR vWriteIATAddr VAR vGetAPIAddr VAR vTmp MOV vOldOEP,0047148B MOV vAllocAddr, 0047A37F MOV vGetAPIAddr, 14E0 //獲取地址時的下一條指令地址 MOV vWriteIATAddr,0897 //寫入 IAT 指令的下一條指令地址 // 2. 對申請空間的地方下斷,取出基址 // 3. 設置其他的斷點,讓程序跑起來,對每一個斷點進行處理 BPHWC // 清除硬件斷點 BC //清除所有斷點 BPHWS vOldOEP, "x" //當執行到此地址時產生中斷. BPHWS vAllocAddr, "x" //當執行到此地址時產生中斷. LOOP1: RUN CMP vAllocAddr,eip JNZ CASE1 ADD vGetAPIAddr, eax ADD vWriteIATAddr,eax BPHWS vGetAPIAddr, "x" //當執行到此地址時產生中斷. BPHWS vWriteIATAddr, "x" //當執行到此地址時產生中斷. JMP LOOP1 CASE1: CMP vGetAPIAddr,eip JNZ CASE2 MOV vTmp,edx JMP LOOP1 CASE2: CMP vWriteIATAddr,eip JNZ CASE3 MOV [edx],vTmp JMP LOOP1 CASE3: MSG "到達OEP!"
自動脫加密殼(導入表hash 花指令)