Guest User

Untitled

a guest
Jan 9th, 2019
635
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format PE GUI 4.0
  2. entry main
  3.  
  4. include 'include/win32w.inc'
  5. include 'include/encoding/utf8.inc'
  6.  
  7. section '.code' code readable executable
  8. main:
  9.     ; Initialize internal data structures
  10.     invoke InternetOpen, szURL, 0, 0, 0, 0
  11.     mov dword [hInternet], eax
  12.     test eax, eax
  13.     jz exit
  14.  
  15.     ; Open a resource specified by szURL
  16.     invoke InternetOpenUrl, dword [hInternet], szURL, 0, 0, 0, 0
  17.     mov dword [hUrl], eax
  18.     test eax, eax
  19.     jz exit
  20.  
  21.     ; Create a file stream
  22.     invoke CreateFile, szFileName, GENERIC_WRITE,FILE_SHARE_WRITE, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0
  23.     mov dword [hFile], eax
  24.     test eax, eax
  25.     jz exit
  26.  
  27. readnextbytes:
  28.     ; Read data from hUrl opened by the InternetOpenUrl
  29.     invoke InternetReadFile, dword [hUrl], lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead
  30.     invoke CloseHandle, dword [hUrl]
  31.  
  32.     ; Write data to szFileName
  33.     invoke WriteFile, dword [hFile], lpBuffer, dword [lpdwNumberOfBytesRead], lpNumberOfBytesWritten, 0
  34.  
  35.     cmp dword [lpdwNumberOfBytesRead], 0
  36.     jnz readnextbytes
  37.  
  38. downloadcomplete:
  39.     invoke CloseHandle, dword [hFile]
  40.     invoke InternetCloseHandle, dword [hUrl]
  41.     invoke InternetCloseHandle, dword [hInternet]
  42.     invoke ShellExecute, 0, 0, szFileName, 0, 0, SW_SHOW
  43.  
  44. exit:
  45.     invoke ExitProcess, 0
  46.  
  47. section '.idata' import data readable
  48. library kernel, 'kernel32.dll',\
  49.         wininet, 'wininet.dll',\
  50.         shell32, 'shell32.dll'
  51.  
  52. import kernel,\
  53.     WriteFile, 'WriteFile',\
  54.     CreateFile, 'CreateFileW',\
  55.     CloseHandle, 'CloseHandle',\
  56.     ExitProcess, 'ExitProcess'
  57.  
  58. import wininet,\
  59.     InternetOpen, 'InternetOpenW',\
  60.     InternetOpenUrl, 'InternetOpenUrlW',\
  61.     InternetReadFile, 'InternetReadFile',\
  62.     InternetCloseHandle, 'InternetCloseHandle'
  63.  
  64. import shell32,\
  65.     ShellExecute, 'ShellExecuteA'
  66.  
  67. section '.data' data readable writeable
  68.     szFileName du 'index.htm', 0
  69.     szURL      du 'http://мастер.рф/', 0
  70.  
  71.     hInternet              dd ?
  72.     hUrl                   dd ?
  73.     hFile                  dd ?
  74.     lpdwNumberOfBytesRead  dd ?
  75.     lpBuffer               rb 400h
  76.     dwNumberOfBytesToRead = $ - lpBuffer
  77.     lpNumberOfBytesWritten dd ?
Advertisement
Add Comment
Please, Sign In to add comment