Изучение шеллкода - как начать - PullRequest
0 голосов
/ 04 марта 2020

У меня небольшой опыт работы с GDB и переполнениями. Поэтому я могу догадаться, что делает конкретный c код ассемблера.

Но теперь у меня есть шелл-код, который я хотел бы изучить.

Вывод шелл-кода из ndisasm:

00000000  31C3              xor ebx,eax
00000002  8066C2B8          and byte [esi-0x3e],0xb8
00000006  720A              jc 0x12
00000008  C29931            ret 0x3199
0000000B  C3                ret
0000000C  9BC2B302          wait ret 0x2b3
00000010  C3                ret
00000011  B7C3              mov bh,0xc3
00000013  B3C2              mov bl,0xc2
00000015  89C3              mov ebx,eax
00000017  8331C3            xor dword [ecx],byte -0x3d
0000001A  8040C38D          add byte [eax-0x3d],0x8d
0000001E  C2                db 0xc2
0000001F  80                db 0x80

Но я не знаю, как получить подсказку для конкретной функции c, например, if (read (fd, buf, 512) <= 2). </p>

shellcode = \ x31 \ xc0 \ x66 \ xb8 \ x72 \ x0a \ x99 \ x31 \ xdb \ xb3 \ x02 \ xf7 \ xf3 \ x89 \ xc3 \ x31 \ xc0 \ x40 \ xcd \ x80

С чего начать с задачи как это?

...