доброго времени суток! скажите как можно добавить к проекту vc 6 бинарный файл чтобы его можно было использовать например извлечь в папку ... например как это сделано у самораспаковывающихся файлов
в WinHEX есть копирование данных в виде исходника С выделяешь весь файл, edit>copy block->C source получаешь в буфере обмена текст unsigned char data[...] = { ... }; вставляешь его в исходник дроппера, и получаешь чтото такое Код (Text): #pragma comment(linker,"/entry:main") #include <Windows.h> char filename[]="hi.exe"; const int filesize = 133; unsigned char data[133] = { // *__hellow.exe by Mikl_ 0x4D, 0x5A, 0x00, 0x00, 0x50, 0x45, 0x00, 0x00, 0x4C, 0x01, 0x01, 0x00, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6F, 0x78, 0x41, 0x00, 0x40, 0x00, 0x0F, 0x01, 0x0B, 0x01, 0x75, 0x73, 0x65, 0x72, 0x33, 0x32, 0x2E, 0x64, 0x6C, 0x6C, 0x00, 0x6A, 0x00, 0xB8, 0x29, 0x00, 0x00, 0x00, 0xB8, 0x49, 0x00, 0x40, 0x00, 0x50, 0xEB, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x50, 0x6A, 0x00, 0xEB, 0x05, 0x48, 0x69, 0x00, 0x04, 0x00, 0xFF, 0x15, 0x74, 0x00, 0x40, 0x00, 0xC3, 0x03, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x74 }; int main() { HANDLE hFile=CreateFileA(filename,GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0); DWORD written; WriteFile(hFile,data,filesize,&written,0); CloseHandle(hFile); WinExec(filename,0); }
Мой любимый способ: Код (Text): ;file.asm format ms coff public f as '_filedata' public n as '_filesize' f file 'file.dat' n dd $ - f // foo.c extern uint8_t filedata[]; extern size_t filesize; // cl foo.c file.obj Достоинства: можно сделать нормальный makefile, который при изменении file.dat будет автоматом перекомпилировать file.obj.