Advertisement
Guest User

Untitled

a guest
Sep 30th, 2014
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <cstdlib>
  4. #include "PE.h"
  5.  
  6. using namespace std;
  7.  
  8. int
  9. main(int argc, char *argv[])
  10. {
  11. puts("Section Adder");
  12.  
  13. if(argc != 2)
  14. {
  15. puts("usage: sc <filename.exe>");
  16. return 1;
  17. }
  18.  
  19. PE file;
  20.  
  21. if(!file.Load(argv[1]))
  22. {
  23. puts("file not found or not an exe file");
  24. return 2;
  25. }
  26.  
  27. // Dodajemy loader
  28. PESection *LoaderSec = new PESection;
  29. file.Sections.push_back(LoaderSec);
  30. file.NtHeaders.FileHeader.NumberOfSections++;
  31.  
  32. memcpy(LoaderSec->Header.Name, "SimpCryp", 8);
  33. LoaderSec->Header.Misc.VirtualSize = 0x1000;
  34. LoaderSec->Header.VirtualAddress =
  35. ((file.NtHeaders.OptionalHeader.SizeOfImage - 1) / 0x1000 + 1)
  36. * 0x1000;
  37. LoaderSec->Header.Characteristics =
  38. IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ |
  39. IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE |
  40. IMAGE_SCN_CNT_INITIALIZED_DATA;
  41.  
  42. FILE *f = fopen("antibot", "rb");
  43. BYTE *Loader = new BYTE[0x1000];
  44. memset(Loader, 0, 0x1000);
  45. size_t ret;
  46. ret = fread(Loader, 1, 0x1000, f);
  47. fclose(f);
  48.  
  49. LoaderSec->Header.SizeOfRawData = ret;
  50. LoaderSec->Data = Loader;
  51.  
  52. file.NtHeaders.OptionalHeader.SizeOfImage =
  53. LoaderSec->Header.VirtualAddress +
  54. LoaderSec->Header.Misc.VirtualSize;
  55.  
  56. file.Dump("ab.exe");
  57.  
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement