He encontrado este codigo en un hilo de este mismo post pero primero no puedo preguntar en ese muismo post y segundo no se como se ejecuta alguien puede ayudarme?
format PE GUI 4.0
entry start
include 'win32ax.inc'
Ventana db 'Buscaminas',0
idproc dd ?
ID dd ?
TamFun dd ?
DirFun dd ?
start:
invoke FindWindow,NULL,Ventana
invoke GetWindowThreadProcessId,eax,addr idproc ;idproc = identficador del proceso
invoke OpenProcess,PROCESS_ALL_ACCESS,0,[idproc]
mov [ID],eax
invoke LoadLibrary,"user32.dll" ;cargamos user32.dll
invoke GetProcAddress,eax,"MessageBoxA" ;obtenemos la dirección de la api
mov [mMessageBoxA],eax ; movemos la dirección de la api a la variable que hay dentro de la funcion qeu inyectaremos
mov eax,final ;Obtenemos el tamaño de la función
sub eax,Inyectado
mov [TamFun],eax
invoke VirtualAllocEx,[ID],0,[TamFun],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE ;generamos el espacio dentro del proceso
mov [DirFun],eax
invoke WriteProcessMemory,[ID],eax,Inyectado,[TamFun],0 ;escribimos nuestro código en el proceso
invoke CreateRemoteThread,[ID],0,0,[DirFun],0,0,0 ;Lanzamos el hilo.
ret
proc Inyectado
call offset ;Técnica del offset delta.
offset:
pop ebx
sub ebx,offset
push ebx ebx
pop ecx edx
add ecx,titulo
add edx,cuerpo
push 0
push ecx
push edx
push 0
call [ebx+mMessageBoxA]
ret
titulo db 'Me inyecte!',0
cuerpo db 'Este Mensage sale del buscaminas ^^',0
mMessageBoxA dd ? ;variable que contiene la dirección de MessageBoxA@user32.dll
endp
final:
data import
library kernel32,'Kernel32.dll',\
user32,'user32.dll'
import user32,MessageBoxA,'MessageBoxA',\
FindWindow,'FindWindowA',\
GetWindowThreadProcessId,'GetWindowThreadProcessId'
import kernel32,OpenProcess,'OpenProcess',\
GetModuleHandle,'GetModuleHandleA',\
GetProcAddress,'GetProcAddress',\
VirtualAllocEx,'VirtualAllocEx',\
WriteProcessMemory,'WriteProcessMemory',\
CreateRemoteThread,'CreateRemoteThread',\
LoadLibrary,'LoadLibraryA'
end data