| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [C] Binär in eine Datei schreiben -> ausführbare .com Datei [ERLEDIGT] im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi zu allen, ich möchte mir ein Programm schreiben das eine .com Datei erstellt. Also, als erstes habe ich ...
![]() |
| | #1 (permalink) |
| Registriert seit: 02.07.06 ![]() Likes: 0 | [C] Binär in eine Datei schreiben -> ausführbare .com Datei [ERLEDIGT] Anzeige Hi zu allen, ich möchte mir ein Programm schreiben das eine .com Datei erstellt. Also, als erstes habe ich eine kleine ASM Datei geschrieben und diese Assembeliert (<- heißt das echt so?): Code: ; Dies ist ein .asm Datei für den Assembler FASM
ORG 100h
Start:
mov cx, 0BB8h
marke:
mov ax, 1h
push ax
LOOP marke
int 21h Code: B9B8 0BB8 0100 50E2 FACD 21 Anschließend habe ich ich diesen ANSI C Quellcode verfasst: Code: /* Dies ist eine gekürzte Version */
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE* fp_com;
char str_array_erstellen[]="1011100110111000000010111011100000000001000000000101000011100010111110101100110100100001";
fp_com = fopen("test.com", "a+b");
fwrite(&str_array_erstellen, sizeof(str_array_erstellen), 1, fp_com);
fclose(fp_com);
return(0);
} Wenn ich die test.com jetzt aufrufe kommt ein Fehler (was für ein Fehler das ist ist jetzt nicht von Interesse.) Also habe ich die Datei mit dem Hexeditor geöffnet. Uns siehe da, die einsen und nullen wurden nicht auf Binärer Ebene in die Datei geschrieben sondern ganz normal wie bei einem a+ ich habe die Datei aber mit a+b geöffnet. Jetzt frag ich mich was schief gelaufen ist, oder besser gesagt ich frag das jetzt euch. ich hoffe hier kann/möchte mir jemand helfen. danke im voraus. MfG _D4rK_ |
| | |
| | #2 (permalink) |
| Du kannst nur byteweise in eine datei schreiben, und dass hexadezimal: Code: /* Dies ist eine gekürzte Version */
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE* fp_com;
int code[]=0xB9, 0xB8, 0x0B, 0xB8, 0x01, 0x00, 0x50, 0xE2, 0xFA, 0xCD, 0x21;
fp_com = fopen("test.com", "a+b");
fwrite(&code, sizeof(code), 1, fp_com);
fclose(fp_com);
return(0);
} | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Du musst schon dem Compiler sagen, dass Du die Ausgabe gerne "Raw" hättest. Z.B Shellcode mäßig Code: char str_array_erstellen[]="\xB9\xB8\x0B\xB8\x01\x00\x50\xE2\xFA\xCD\x21";
fp_com = fopen("test.com", "a+b");
fwrite(&str_array_erstellen, sizeof(str_array_erstellen)-1, 1, fp_com);
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java ausführbare Datei per Eclipse machen Problem | frankred | Code Kitchen | 2 | 27.06.08 09:11 |
| Loginsystem in VC++ - In Datei schreiben und auslesen | sym4nt3c | Code Kitchen | 6 | 01.12.06 20:13 |
| [C++] Programm will nicht in Datei schreiben | reaLInsanity | Code Kitchen | 2 | 23.08.06 00:13 |
| [C]in datei schreiben. | shUnderdog | Code Kitchen | 7 | 13.08.06 17:31 |
| .dat datei mit binär zeichen | Neomatrix | Cryptography & Encryption | 12 | 12.05.05 16:12 |