Registriert seit: 3. Sep 2004
4.629 Beiträge
Delphi 10.2 Tokyo Starter
|
[Assembler] Thread mit CreateRemoteThread injizieren
15. Okt 2007, 23:11
Hey,
ich bin grade bisschen Assembler am lernen und wollte zum Spaß mal ein kleines Delphi Projekt, welches eine MessageBox im Notepad Prozess anzeigt nach ASM portieren.
Soweit meine Injection Funktion:
Code:
Inject PROC NEAR
mov dwPid, eax
invoke GetModuleHandle, 0
mov hModule, eax
mov edi, eax
assume edi:ptr IMAGE_DOS_HEADER
add edi, [edi].e_lfanew
add edi, sizeof dword
add edi, sizeof IMAGE_FILE_HEADER
assume edi:ptr IMAGE_OPTIONAL_HEADER32
mov eax, [edi].SizeOfImage
mov dwSize, eax
assume edi:NOTHING
invoke OpenProcess, PROCESS_ALL_ACCESS, FALSE, dwPid
mov hProcess, eax
invoke VirtualFreeEx, hProcess, hModule, 0, MEM_RELEASE
invoke VirtualAllocEx, hProcess, hModule, dwSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE
mov hNewModule, eax
invoke WriteProcessMemory, hProcess, hNewModule, hModule, dwSize, addr dwBytesWritten
invoke CreateRemoteThread, hProcess, 0, 0, addr RemoteThread, hModule, 0, addr dwTid
Ret
Inject EndP
und hier die Funktion die injiziert wird:
Code:
RemoteThread PROC
invoke MessageBox, 0, addr SE_DEBUG, addr SE_DEBUG, 64
Ret
RemoteThread EndP
Es wird zwar injiziert, aber Notepad verabschiedet sich mit einer AV. Muss / kann man in Assembler auch die ImageBase setzen? Unter Delphi musste die ImageBase für diesen Zweck $13140000 betragen, sonst bekam ich auch eine AV beim Injizieren.
Vielen Dank
|