¿cómo se ejecuta este codigo?

Iniciado por concient, 24 Febrero 2019, 14:10 PM

0 Miembros y 1 Visitante están viendo este tema.

concient

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

EdePC

#1
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/

concient

 todos los links que has colgado estan caidos.


Eternal Idol

El de flat assembler ahora funciona; el codigo esta explicado muy bien en el tema original, lee los manuales de la herramientas.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón