关于OD脚本编写
前言:OD脚本编写笔记
OD脚本编写
脚本的用处非常的大,比如有定位OEP,修复IAT,绕过调试,如果每次都需要手动调试就比较麻烦,而通过使用自动化脚本将大大减小我们的工作量
UPX定位OEP脚本
var addr // 定义一个变量addr
sto // 单步,也就是F8
MOV addr,esp // 把此处ESP的地址给变量addr
BPHWS addr,"r" // 下硬件读取断点,也就是硬件访问断点
run // 运行,也就是F9
BPHWC addr // 取消断点
FIND eip, #E8??#
cmp eip, 0
je _FAIL
_SUCCESS:
sto
CMT eip,"这里就是OEP" // 脱壳完成
ret // 结束脚本
_FAIL:
ret

ACProtect 1.09的绕过硬件断点到达OEP脚本
var user_proc
bphws 4271B5, "x"
_start:
EOB _if_parse
run
_if_parse:
cmp eip,7C92E47C
je _set1
cmp eip,7C92E493
je _set2
cmp eip,user_proc
je _set3
jmp _exit
_set1:
bphwc 4271B5
jmp _start
_set2:
mov user_proc,[esp]
add user_proc,0b8
mov user_proc,[user_proc]
bp user_proc
jmp _start
_set3:
bphws 4271B5, "x"
jmp _start
_exit:
ret

ACProtect 1.09修复IAT重定位脚本
具体的ACProtect 1.09脱壳过程参考文章: https://www.cnblogs.com/zpchcbd/p/16007868.html
var funcAddr
bpwm 460818,710
_start:
eob _fix
run
jmp _exit
_fix:
sto
cmp eax,500000
ja _start
mov funcAddr,esp
sub funcAddr,0C
mov funcAddr,[funcAddr]
mov [edi],funcAddr
jmp _start
_exit:
ret


浙公网安备 33010602011771号