发现市面上没有这个壳子的教材.录一个出来..反正论坛也没啥人了..记录下..
https://mega.nz/#!AhFBCAzA
55 8B EC 6A FF 68 78 34 40 00 68 16 2C 40 00 //OEP
00402A8F
脱壳方法
先对 CreateThread 的CALL地址下断点,然后对新建线程的入口 RET 4
随后 为了过反调试,对kernel32. GetSystemTimeAsFileTime 的返回值 下断
单步跟踪到 CMP EAX, 0x7
下方jl 改为 jmp 绕过检测
对代码段下内存访问断点 找到偷取处理IAT地方. 然后 修改 处理call 记录特征码
50 52 E8 04 01 00 00 EB 05
稍后处理 重载程序
被偷取的代码
0040267D
0040256B
004018F3
004012B1
0040121F
MOV REG32,[IAT]
CALL REG32 [AppleScript] 纯文本查看 复制代码 var IAT_Statr
var IAT_End
var Temp_IAT
Var bakup_EIP
mov bakup_EIP,eip
mov IAT_Statr,403000 //IAT表开始位置
mov IAT_End,403208 //IAT结束地址
bp 00414CA9 //85 C0 74 28 64 67 8F 06 00 00 83 C4 04 5F 5E 5B 8B E5 5D C2 14 00
GetAPIAddr:
mov Temp_IAT,[IAT_Statr]
cmp Temp_IAT,0
je INC_IATADDR
cmp Temp_IAT,6FFFFFFF
ja INC_IATADDR
mov eip,Temp_IAT
run
mov [IAT_Statr],eax
INC_IATADDR:
add IAT_Statr,4
cmp IAT_Statr,IAT_End
ja RETIATFIX
jmp GetAPIAddr
RETIATFIX:
mov eip,bakup_EIP
pause
ret
教程地址
https://mega.nz/#!AhFBCAzA
|