首页
社区
课程
招聘
Armadillo 3.70以后并双线程,跳过MAGIC直达OEP脚本
发表于: 2005-8-26 10:21 5587

Armadillo 3.70以后并双线程,跳过MAGIC直达OEP脚本

2005-8-26 10:21
5587
鉴于很多新手对于Armadillo 3.70以后的双线程和直达OEP操作不熟悉,特发此脚本,能够比较准确的合并双线程,定位MAGIC jmp和,定位OEP,省去很多麻烦.

///////////////////////////////////////////////////////////
//
//  走到oep处,只测试在arma 3.6-4.05壳版本双线程模式
//  选忽略所有异常,执行脚本即可
//  
//  2005-8-20 14:04 by hnhuqiong
//
///////////////////////////////////////////////////////////

#log

var tmp
var cm
var om
var gmh
var tadr
var neweip
var retascii
var lib
var magicjmp
var magicadr
var gct

gpa "CreateMutexA","kernel32.dll"
mov cm,$RESULT
gpa "OpenMutexA","kernel32.dll"
mov om,$RESULT
gpa "GetModuleHandleA","kernel32.dll"
mov gmh,$RESULT
gpa "LoadLibraryA","kernel32.dll"
mov lib,$RESULT
gpa "GetCurrentThreadId","kernel32.dll"
mov gct,$RESULT

start:                                 //合并双线程
bp om
esto

asm 401000,"pushad"
asm 401001,"pushfd"
mov tmp,esp
add tmp,c
mov tadr,[tmp]
eval "push {tadr}"
asm 401002,$RESULT
asm 401007,"xor eax,eax"
asm 401009,"push eax"
asm 40100a,"push eax"
eval "call {cm}"
asm 40100b,$RESULT
asm 401010,"popfd"
asm 401011,"popad"
eval "jmp {om}"
asm 401012,$RESULT

mov eip,401000
esto
fill 401000,20,00
bc om

gmhadr:                                      //避开IAT加密
BPHWS gmh,"x"
esto

find_ret:
mov tmp,esp
add tmp,8
mov tmp,[tmp]
add tmp,7
mov retascii,[tmp]
mov tmp,65657246
cmp retascii,tmp
je find_ret_ok
jmp goonfind

goonfind:
esto
jmp find_ret

find_ret_ok:
esto
BPHWC gmh
rtu
find eip,#ff15#
mov tmp,$RESULT
add tmp,2
mov tmp,[tmp]
mov tmp,[tmp]
cmp lib,tmp
je magic_jmp_ok
jmp magic_jmp_no

magic_jmp_ok:
find eip,#0f84#
bp $RESULT
run

magic_jmp:

bc $RESULT
mov tmp,$RESULT
mov magicjmp,tmp
add tmp,2
mov tmp,[tmp]
add tmp,1
mov magicadr,tmp
mov [magicjmp],e9
add magicjmp,1
mov [magicjmp],magicadr
bp gct

tmpoep:                                           //goto OEP
esto
cmp [esp],01000000
jb find_oep
jmp tmpoep

find_oep:
bc gct
rtu
find eip,#ffd7#
bp $RESULT
esto
bc $RESULT
sti
jmp end

magic_jmp_no:
msg "寻找MAGIC_JMP失败,请联系hnhuqiong@163.com"
jmp end

end:
cmt eip,"OEP到达,可以DUMP了"
ret

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
2
有空试试,如果有用是我等壳盲的福音
2005-8-26 10:33
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
有兴趣的兄弟测试测试
2005-8-26 10:35
0
雪    币: 690
活跃值: (1821)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
对arma4.3无效
2005-8-26 11:38
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
多谢分享
2005-8-26 11:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
对arm4.2无效。
2005-8-26 11:53
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
4.30现在有BUG,等稳定后再重写
2005-8-26 11:53
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
4.0好象也无效啊!出现SEH链太长什么的..就终止了
2005-9-1 15:13
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
9
楼主请收邮件
2005-9-1 16:55
0
雪    币: 86
活跃值: (1038)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
请问这个脚本用什么来编译啊?
2005-10-3 23:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
佩服!!!!!
2005-10-3 23:45
0
雪    币: 204
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
实在是了不起,多谢!
2005-10-7 00:28
0
雪    币: 210
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
顶。。。也收下了。。谢谢。。。
2005-10-7 14:28
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
最初由 hnhuqiong 发布
鉴于很多新手对于Armadillo 3.70以后的双线程和直达OEP操作不熟悉,特发此脚本,能够比较准确的合并双线程,定位MAGIC jmp和,定位OEP,省去很多麻烦.

///////////////////////////////////////////////////////////
//
// 走到oep处,只测试在arma 3.6-4.05壳版本双线程模式
........


谢谢,可惜我到现在也搞不定简单的VB程序修复,到OEP应该不成问题了,就连简单的一个函数据修复也搞不定,晕死。
测试了UPX加VB程序看看,都是很简单就能修复,但用copyII mem就是修复不了。
2005-10-9 10:57
0
游客
登录 | 注册 方可回帖
返回
//