【脚本更新】反JMP+CALL乱序
本帖最后由 NONAME剑人 于 2009-8-17 17:39 编辑天哪。NP太WS了……最小保护还有乱序……看得我头大
本来想休息会,玩会ZP,还有乱序……
怒了,做了个脚本,效果不错……就是编程习惯太差,效率一般,各位海涵。
查看方法:查看--》记录
使用说明:
1 可修改脚本里的“反汇编长度”以增长反汇编长度
!!!2 一定要使文件名中没有数字……谢谢
感谢各位朋友的支持,yangjt朋友的测试
【更新】
(实在抱歉,因为我的疏忽,导致频繁更新……)
2009.8.17
[-]当不处理CALL的时候照样处理RETN引起的BUG
2009.8.17
[+]RETN的处理
2009.8.17
[+]CALL处理强化
2009.8.17
[+]增加CALL乱序的解决办法
[-] 除去脚本结束后EAX,EBX数值改变的BUG
//////////////////////////////////////////////////
//Comment :反JMP+CALL乱序
//Environment :WinXP SP2,OllyDbg V1.10,OllyScript V1.56
//Author :NONAME剑人
//WebSite :http://www.unpack.cn
//Date :2009-08-07 16:02
//////////////////////////////////////////////////
var 反汇编长度,myeip,temp,newadd,temp2,temp3
var mystack
var eeax,eebx,eesp
var kkkk
var ifcall,calltemp
mov calltemp,0
//设置
mov 反汇编长度,30 //请自行修改
mov ifcall,1 //是否跟进CALL,0为否,1为是,请自行修改
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!!!!!!!使用前请务必将程序名改为不带数字的!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//======================
//初始化操作
lc
mov myeip,eip
alloc 5
mov newadd,$RESULT
mov eeax,eax
mov eebx,ebx
mov eesp,esp
alloc 100
mov mystack,$RESULT
mov temp,mystack
add temp,100
mov esp,temp
//======================
//======================
//进入正题
redo:
opcode myeip ;得到代码
//======================
scmp $RESULT,"EB",2 ;判断JMP
je YESJMP
scmp $RESULT,"E9",2
je YESJMP
cmp ifcall,0
je coun_1
scmp $RESULT,"E8",2 ;判断CALL
je YEScall
coun_1:
jmp countinue1 ;CASE 无跳转,call
YEScall: ;call的单独处理
mov calltemp,1
jmp YESJMP
YESJMP: ;CASE 有跳转
mov temp,$RESULT_1
mov ,temp
mov temp,newadd
jxx_1:
mov al,
cmp al,30
jb jxx_goon
cmp al,39
ja jxx_goon
readstr ,8
mov temp3,$RESULT
atoi temp3,10
mov temp3,$RESULT
jmp jxx_over
jxx_goon:
cmp al,0
inc temp
jnz jxx_1
msg "出现问题?"
mov eax,eeax
mov ebx,eebx
mov esp,eesp
ret
jxx_over:
cmp calltemp,1
jnz next_1
itoa temp3
log "已进入CALL",$RESULT
itoa myeip
log $RESULT,"--->PUSH "
mov calltemp,0
push myeip
next_1:
mov myeip,temp3
jmp redo
countinue1:
itoa myeip
add $RESULT,":"
log $RESULT_1,$RESULT
cmp ifcall,0
je next_2
scmp $RESULT_1,"RETN"
jnz next_2
pop eax
itoa eax
log eax,"retn被发现,即将返回到:"
mov myeip,eax
opcode myeip
add myeip,$RESULT_2
jmp redo
next_2:
add myeip,$RESULT_2
inc kkkk
cmp kkkk,反汇编长度
jbredo
mov eax,eeax
mov ebx,eebx
mov esp,eesp
ret
这个要顶,很实用的东西 支持一下。。。。。。 学习了很强大的东东 :victory: 好东西,谢谢分享,试一试看看效果 处理了乱序才好分析代码,感谢兄弟发布这么好的脚本~:) 强大的有点看不懂,后期要好好学习。 老兄一進來就出手不凡.
學習了. 强悍,学习下这个脚本~ 真是牛人啊~造福了