sinainluoye 发表于 2016-9-10 17:52

第一次写OD脚本,UPX找OEP

之前脱壳一直都在手脱,刚学了下写OD脚本,感觉蛮好玩的(虽然类汇编的代码写的感觉很不友好- - ! 感觉我这种强迫症下次的作品应该是C to OD脚本的编译器之类的东西吧T T)

应用的原理:
UPX壳解码代码在单独一个区段,解码后使用jmp指令跳到实际程序代码,这就使得这个jmp必然是一个跨区段的跳转,跳转幅度必然很大
程序逻辑:
扫描jmp指令,执行该jmp,比较跳转值是否超过阈值,如果超过视为到达OEP,如果没有则从该jmp的下一个指令开始寻找jmp直到到达OEP(或跑飞。。。)

代码如下
var lasteip
var laststop
var tmp
var val//跳转阈值
mov laststop,eip
mov val,1000

//从当前位置往下找大跳
LOOPSTEP:
add laststop,1
findop laststop,#e9#


go $RESULT
mov lasteip,eip
mov laststop,lasteip
sto

cmp lasteip,eip
ja Jlarge
jb Jless

//以下,大跳则视为到达OEP,否则继续找
Jlarge:
sub lasteip,eip
cmp lasteip,val
jb LOOPSTEP
jmp Jans

Jless:
mov tmp,eip
sub tmp,lasteip
cmp tmp,val
jb LOOPSTEP
jmp Jans

Jans:
msg "到了"
ret

hhsss 发表于 2016-10-9 19:18

咬字分开念 发表于 2016-10-9 14:38
你想干嘛?不能主动留联系方式,明白不

加你好友,我还是发不出短信给你,用不了留言板给你,我是新注册的,主要想请教下物联通,你的贴子关闭回复了,找你不容易啊。

咬字分开念 发表于 2016-10-9 23:57

hhsss 发表于 2016-10-9 19:18
加你好友,我还是发不出短信给你,用不了留言板给你,我是新注册的,主要想请教下物联通,你的贴子关闭回 ...

说吧,或者怎么找你帮助你呢

myqqq 发表于 2016-9-10 18:39

不错,已经加分               

Very_good 发表于 2016-9-10 18:40

膜拜会找脚本的

gzsklsskszngc 发表于 2016-9-10 21:07

楼主继续加油

咬字分开念 发表于 2016-9-15 08:35

没看懂,arm脚本基本知识都没

hhsss 发表于 2016-10-9 13:27

咬字分开念 发表于 2016-9-15 08:35
没看懂,arm脚本基本知识都没

有联系方式可找到你吗

咬字分开念 发表于 2016-10-9 14:38

hhsss 发表于 2016-10-9 13:27
有联系方式可找到你吗

你想干嘛?不能主动留联系方式,明白不

vip-happy 发表于 2016-10-9 19:20

感谢发布原创作品,吾爱破解论坛因你更精彩!
页: [1] 2
查看完整版本: 第一次写OD脚本,UPX找OEP