首页
论坛
课程
招聘
[原创]TMD/WL 代码修复讲解 (SS 堆栈段寄存器修复)
2010-9-30 23:16 7708

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

2010-9-30 23:16
7708
这一节我会解释一下 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

《0day安全 软件漏洞分析技术(第二版)》第三次再版印刷预售开始!

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

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