首页
社区
课程
招聘
[原创]TMD/WL 代码修复讲解 (SS 堆栈段寄存器修复)
发表于: 2010-9-30 23:16 10082

[原创]TMD/WL 代码修复讲解 (SS 堆栈段寄存器修复)

2010-9-30 23:16
10082
这一节我会解释一下 ESP 的 堆栈段寄存器的修复,过程与第一节类似,具体要观察 EAX EDX ECX EBX ,结合CPU、寄存器、堆栈进行修复,

如图1,这是达到CALL位置时的寄存器状态,注意EAX=0060E078 再观察

如图2堆栈状态 注意 0012FC28   0060E078  ASCII "90094CCBDB69EAA48D7CC4A01BBD513AF8314D312BCB30EA"

那么 这时你看图1 ESP地址是0012FC34,0012FC34-0012FC28=C 也就是说 SS:[ESP-C] 就是 EAX,所以汇编语言表达:MOV EAX,DWORD PTR SS:[ESP-C],在达到这个CALL之前VM进行了 DS:[007F09D0]=007FAD8C (M2Server.007FAD8C) 的操作,你在图1中发现 EDX=007FAD8C,所以 MOV EDX,DWORD PTR DS:[007F09D0],而EDX与EBX就可以先不管
那么修复的代码就是如此了

MOV EAX,DWORD PTR SS:[ESP-C]
MOV EDX,DWORD PTR DS:[007F09D0]
CALL 490000

OK!这里我们简单的修复了一 SS 堆栈段寄存器和 DS 数据段寄存器的修复。

以下是我曾经写过的VM寄存器跟踪记录脚本,可以帮你记录下所有进出寄存器的状态

var findbase
var findsize

var count
var index

mov findbase, 1AB1000  //跟踪的CODE段基址
mov findsize, 84000    //大小
mov tempbase, findbase
add tempbase, findsize

mov index, 0
mov count, 7 // VM.JMP 次数 首次跟踪时查看 VM.JMP 有多少填入此处

TMD_START:
//pause
add index, 1
log index
log "VM.JMP start {"

TMD_IMAGE:
log "VM.JMP Trace.IN Start{" //跟踪入口
log eax
log ecx
log edx
log ebx
log esp
log ebp
log esi
log edi
log eip
log "} VM.JMP Trace.IN Over"
bprm findbase, findsize
esto
bpmc
cmp eip, tempbase
jb STD_IMAGE
log "VM.JMP Trace.OUT Start{" //跟踪出口
log eax
log ecx
log edx
log ebx
log esp
log ebp
log esi
log edi
log eip
log "} VM.JMP Trace.OUT Over"
jmp TMD_IMAGE

STD_IMAGE:
log "} VM.JMP over"
log "CODE.CALL start {" //代码段CALL
log eax
log ecx
log edx
log ebx
log esp
log ebp
log esi
log edi
log eip
log "} CODE.CALL over"

OEP_IMAGE:
cmp index, count
je END                        // stop !!!
rtr
find eip, #68????????E9????????# // VM JMP
cmp $RESULT, 0
je OEP_IMAGE
jmp TMD_START

END:
bpmc
ret

图1


图2

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发!!!
学一下。。。~~
2010-10-1 21:27
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
收下了
2010-10-3 11:25
0
雪    币: 91
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我一度看lz 的头像时间超过文章...

若要评精华, 似形象欠佳 /tx
2010-10-7 12:21
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这是第二章内容,不错~学习了~
2011-3-25 22:54
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵 不错 可以一看
2011-3-25 23:21
0
游客
登录 | 注册 方可回帖
返回
//