riesenbinaercode in exe schreiben
-
hallo zusammen,
folgendes: ich habe eine exe datei in "binaercodeform" in meinem cpp code und möchte ihn nun in eine exe datei schreiben... das geht auch wunderbar, nur ist die datei 1,8 mb groß und ich habe es mit dieser möglichkeit bisher nur bei dateien geschafft, die nicht größer als 16 kb groß sind.
der code sieht in etwa so aus:
void ressourceExe(void) { TCHAR **szExe; szExe = new TCHAR*[9]; for (int q=0; q < 9; q++) szExe[q] = new TCHAR[]; szExe[0] = "\x4d\x5a\x90\x00\x03\x00\x00\x00\x04" "\x00\x00\x00\xff\xff\x00\x00\xb8\x00" "\x00\x00\x00\x00\x00\x00\x40\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00"; //natuerlich nur ein kleiner //ausschnitt szExe[1] = "\x4d\x5a\x90\x00\x03\x00\x00\x00\x04" "\x00\x00\x00\xff\xff\x00\x00\xb8\x00" "\x00\x00\x00\x00\x00\x00\x40\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00"; //natuerlich nur ein kleiner //ausschnitt szExe[2] = "\x4d\x5a\x90\x00\x03\x00\x00\x00\x04" "\x00\x00\x00\xff\xff\x00\x00\xb8\x00" "\x00\x00\x00\x00\x00\x00\x40\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00"; //natuerlich nur ein kleiner //ausschnitt // und so weiter, bis der ganze code auf die einzelnen arrays von bytearrays // aufgeteilt ist *g* DWORD dwLen(0); //temporären Pfad suchen dwLen = GetTempPath(MAX_PATH, szTempPath); //Pfadvariable "szTempPath" um Dateinamen der Exe "yetisports2.exe" erweitern strcat(szTempPath, "yetisports2.exe"); //Exe schreiben hFileExe= CreateFile(szTempPath, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); DWORD dwWritten; WriteFile(hFileExe, *szExe, 141312, &dwWritten, 0); CloseHandle(hFileExe); for (int f=0; f<= 9; f++) delete[] szExe[f]; delete[] szExe; }
-
ich hab das gefühl, dass es an WriteFile liegen muss, denn die datei erstellt er immer, nur ist sie 0 kb groß, wenn er mehr als 16 kb oder so in die datei schreiben soll... ich verzweifel langsam

-
habs schon hinbekommen... aber ich hab mich mal durchgerungen eben zu posten, worans lag... vielleicht gibts ja mal jemanden, der das gleiche prob hat

for (int a=0; a < 101; a++) { WriteFile(hFileExe, szExe[a], 16249, &dwWritten, 0); } WriteFile(hFileExe, szExe[101], 14546, &dwWritten, 0);wenn ich den string schon in 102 teile teilen muss, dann ist es nachvollziehbar, dass ich auch in 102 etappen in die datei schreiben muss...