关于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

posted @ 2022-03-17 12:54  zpchcbd  阅读(872)  评论(0)    收藏  举报