yse
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору плиз подскажите пару примеров на асме написанию shellcode hello world пример этого format pe gui 4.0 include 'D:/include/win32ax.inc' section '.data' data readable writeable message db 'hello world',0 start: invoke MessageBox,NULL,message,message,MB_OK invoke ExitProcess,1 .end start дизассемблерованый опкод выглядет так 0040100E > 6A 30 push 30 00401010 68 00104000 push 401000 ; ASCII "Hello, World!" 00401015 68 00104000 push 401000 ; ASCII "Hello, World!" 0040101A 6A 00 push 0 0040101C FF15 7C204000 call near dword ptr ds:[40207C] ; USER32.MessageBoxA 00401022 6A 00 push 0 00401024 FF15 5E204000 call near dword ptr ds:[40205E] ; kernel32.ExitProcess бинарный вид > 6A3068 001040006A 00FF15 7C2040006A 00FF15 5E204000 сам шелкод \xA6\x03\x86\x00\x01\x04\x00\xA6\x00\xFF\x51\xC7\x02\x04\x00\xA6\x00\xFF\x51\xE5\x02\x04\x00 после компелирую на с++ так #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <windows.h> int main(){ unsigned char shellcode[]= "\xA6\x03\x86\x00\x01\x04\x00\xA6\x00\xFF\x51\xC7\x02\x04\x00\xA6\x00\xFF\x51\xE5 \x02\x04\x00"; system("PAUSE"); ((void (*)())shellcode)(); return 0; } запускается но открывается автоматом дебагер и указывает что ошибка по такому адресу faulted with message :access violation at 0x0022ff20 :read of address 0x00000000 Processs stopped я так понял присутствует нулевые байты как от них избавится или покажите более пример по теме: СП. | Всего записей: 36 | Зарегистр. 29-07-2011 | Отправлено: 12:37 31-10-2011 | Исправлено: yse, 12:38 31-10-2011 |
|