/* 2019.4.4
ESP保护壳
易语言编译结果混淆.
Chinese program protection shell.
Unpack脚本V2.1 by 一叶
PS:不足之处请指正
大佬巨佬勿喷
脚本小子绕道
*/
cmp $VERSION, "1.47" //比较是否≥v1.47
jb exit1 //跳转到函数exit1
dbh //隐藏OD
bc //清除所有切换断点
bphwcall //清除所有硬件断点
bpmc //清除所有内存断点
var cc //定义变量
find eip, #60# //查找代码puhshad
mov cc,$RESULT //返回值赋给变量
bp cc //变量下断
run //运行
bc cc //删除断点
sto //单步
bphws esp,"r" //esp下硬件访问断点
run //运行
bphwcall //清除所有硬件断点
find eip,#E9??????FF# //查找jmp
mov cc,$RESULT //返回值赋给变量
cmp eip,cc //比较当前是否就是Jmp,防止无效断点。
je equal //是,跳转到equal函数
bp cc //变量下断
run //运行
bc cc //删除断点
jmp equal //跳转到equal函数
exit1:
msg "OD脚本插件版本过低!!请更换OD或插件!" //信息框
ret //返回
exit2:
dbs //恢复隐藏OD
bc //清除所有切换断点
bphwcall //清除所有硬件断点
bpmc //清除所有内存断点
msg "运行完毕!!" //信息框
ret //返回
equal:
sto //单步
cmt eip,"OEP" //注释
an eip //分析代码
msgyn "已来到OEP,是否立即dump到原目录?" //询问信息框
cmp $RESULT,1 //判断返回值
jne exit2 //否的话跳转到exit2
dpe "Dumped.exe",eip //立即dump
jmp exit2 //跳转到exit2
ret //返回
网友评论