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?
El hilo es el siguiente:
https://foro.elhacker.net/analisis_y_diseno_de_malware/inyecciones_de_codigo_en_memoria-t446557.0.html
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
Saludos,
- Bueno, yo solo conozco Masm y lo trabajo con RadASM junto a los cursos/videos/pdf del grupo RVLCN.
- Veo que Fasm es muy ligerito, voy a revisarlo, según veo puedes descargártelo desde: https://flatassembler.net/ , la descarga incluye ejemplos, pdf, miniIDE, etc. También están las instrucciones de compilación que necesitas.
- Otra cosa que veo es que tiene cierta base el en curso de Programación de Virus por zeroPad, son cursos antiguos que trabajan en Masm, pero si quieres profundizar puedes revisarlos.
http://www.ricardonarvaja/WEB/OTROS/PROGRAMACION%20DE%20VIRUS/
- En caso de los cursos de RVLCN, no veo que haya un sitio donde los tengan completos, supongo que me daré un tiempo para buscarlos completos y resubirlos, mientras tanto se puede ir viendo:
http://www.ricardonarvaja/WEB/OTROS/DE%20LA%20LISTA%20MASM32-RADSM/
todos los links que has colgado estan caidos.
El de flat assembler ahora funciona; el codigo esta explicado muy bien en el tema original, lee los manuales de la herramientas.