Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: concient en 24 Febrero 2019, 14:10 pm



Título: ¿cómo se ejecuta este codigo?
Publicado por: concient en 24 Febrero 2019, 14:10 pm
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

Código:
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


Título: Re: ¿cómo se ejecuta este codigo?
Publicado por: EdePC en 24 Febrero 2019, 17:41 pm
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/


Título: Re: ¿cómo se ejecuta este codigo?
Publicado por: concient en 2 Marzo 2019, 20:11 pm
 todos los links que has colgado estan caidos.



Título: Re: ¿cómo se ejecuta este codigo?
Publicado por: Eternal Idol en 2 Marzo 2019, 20:39 pm
El de flat assembler ahora funciona; el codigo esta explicado muy bien en el tema original, lee los manuales de la herramientas.