Всем привет, скажите пожалуйста как вызвать какую нибудь функцию, ну пусть хотя-бы например beep из под Shell встроенного в левую программу? Все мои попытки приводят к Access Violation .
Indy_, ну вот я сначала компилирую это (то что ниже) на асме, затем полученный байт-код выдёргиваю через OllyDbg и вставляю в другую прогу (ну сначала вставляю это барахло в самый конец проги, а затем заменяю какую нибудь строчку программы на jmp, типо чтобы перешло управление), причём всё вручную, но не суть, а потом как встречается какой нибудь call, то прога тупо накрывается. Код (ASM): invoke CreateFile,ADDR FileName,GENERIC_READ,0,0,\ OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0 mov hFile,eax invoke GetFileSize,eax,0 invoke GlobalAlloc,GMEM_FIXED,eax mov hMem,eax invoke ReadFile,hFile,hMem,64,ADDR BytesRead,0 mov eax, hMem mov eax, [eax] mov ebx, 5A4DH cmp ax, bx jne @ohshit mov eax,3CH shr eax,2 mov ebx,4 mul ebx mov ebx,hMem add eax,ebx mov eax, [eax] invoke SetFilePointer,hFile,eax,0,FILE_BEGIN invoke ReadFile,hFile,hMem,64,ADDR BytesRead,0 mov eax, hMem mov eax, [eax] mov ebx, 4550H cmp ax, bx jne @ohshit mov eax,18H shr eax,1 mov ebx,2 mul ebx mov ebx,hMem add eax,ebx mov eax, [eax] mov eax,28H shr eax,2 mov ebx,4 mul ebx mov ebx,hMem add eax,ebx mov eax, [eax] sub eax, 0C00H @ohshit: invoke CloseHandle,hFile invoke GlobalFree,hMem
Нужно динамически получать адреса функций. Делать это можно через PEB.Ldr к примеру, либо полагаться на то, что базы системных библиотек (kernel32, user32, gdi32 точный список неизвестен) одинаковы во всех процессах. В зависимости от нужды использовать тот или иной метод.
alex-rudenkiy, > как встречается какой нибудь call, то прога тупо накрывается. Во первых изучите релатив(относительную) адресацию. Адрес ветвления вычисляется на основе текущего. В 64 моде вообще любая адресация релатив. Во вторых после переноса кода не существует никакой среды типо импорта(IAT). Рано вам есчо код бинарный копировать, вы должны изучить архитектуру https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf vol.1: basic architecture.