Pobierz.
Gdyby coś było niewiadome, to pisać, albo wejść na MSDN i wyczytać opis funkcji(chociaż myślę, że nie będzie problemów z odczytaniem kodu, bo prawie każda linijka jest opisana).
PS:
Pobierz SRT.lib
Jeśli ktoś ma jakieś przykłady, w dowolnym języku na ten temat, to pisać!
Gdyby coś było niewiadome, to pisać, albo wejść na MSDN i wyczytać opis funkcji(chociaż myślę, że nie będzie problemów z odczytaniem kodu, bo prawie każda linijka jest opisana).
PS:
Kod:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib SRT.lib; biblioteka zamieszczona poniżej
xVirtualAllocEx PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
xCreateRemoteThread PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
.data;deklarujemy
szKernel32 byte 'kernel32.dll', 0
szLoadLibrary byte 'LoadLibrary', 0
szTarget byte 'Notepad', 0
szDll byte 'hide.dll', 0
.data?
hModule dword ?
hProcess dword ?
dwSize dword ?
dwPid dword ?
dwBytesWritten dword ?
dwTid dword ?
.code
_entrypoint:
invoke FindWindow, addr szTarget, 0; szukamy okna
invoke GetWindowThreadProcessId, eax, addr dwPid; funkcja pobiera identyfikator wątku
invoke OpenProcess, PROCESS_ALL_ACCESS, FALSE, dwPid; otwiera istniejący obiekt procesu
mov hProcess, eax
invoke xVirtualAllocEx, hProcess, 0, sizeof szDll, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE; funkcja inicjalizuje pamięć..
mov hModule, eax
invoke WriteProcessMemory, hProcess, hModule, addr szDll, sizeof szDll, addr dwBytesWritten; zapisuje dane z obszarem pamięci w określonym procesie
invoke GetModuleHandle, addr szKernel32; pobierz uchwyt
invoke GetProcAddress, eax, addr szLoadLibrary; pobiera adres eksportowanych funkcji
invoke xCreateRemoteThread, hProcess, 0, 0, eax, hModule, 0, addr dwTid; tworzy wątek, który, działa w wirtualnej przestrzeni adresowej innego procesu
invoke ExitProcess, 0; koniec
end _entrypoint
Pobierz SRT.lib
Jeśli ktoś ma jakieś przykłady, w dowolnym języku na ten temat, to pisać!