Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cstring>
- #include <cstdlib>
- #include "PE.h"
- using namespace std;
- int
- main(int argc, char *argv[])
- {
- puts("Section Adder");
- if(argc != 2)
- {
- puts("usage: sc <filename.exe>");
- return 1;
- }
- PE file;
- if(!file.Load(argv[1]))
- {
- puts("file not found or not an exe file");
- return 2;
- }
- // Dodajemy loader
- PESection *LoaderSec = new PESection;
- file.Sections.push_back(LoaderSec);
- file.NtHeaders.FileHeader.NumberOfSections++;
- memcpy(LoaderSec->Header.Name, "SimpCryp", 8);
- LoaderSec->Header.Misc.VirtualSize = 0x1000;
- LoaderSec->Header.VirtualAddress =
- ((file.NtHeaders.OptionalHeader.SizeOfImage - 1) / 0x1000 + 1)
- * 0x1000;
- LoaderSec->Header.Characteristics =
- IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ |
- IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE |
- IMAGE_SCN_CNT_INITIALIZED_DATA;
- FILE *f = fopen("antibot", "rb");
- BYTE *Loader = new BYTE[0x1000];
- memset(Loader, 0, 0x1000);
- size_t ret;
- ret = fread(Loader, 1, 0x1000, f);
- fclose(f);
- LoaderSec->Header.SizeOfRawData = ret;
- LoaderSec->Data = Loader;
- file.NtHeaders.OptionalHeader.SizeOfImage =
- LoaderSec->Header.VirtualAddress +
- LoaderSec->Header.Misc.VirtualSize;
- file.Dump("ab.exe");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement