23. august 2002 - 16:47Der er
29 kommentarer og 1 løsning
maskinkode m.m!
to spørgsmål:
1.) En der kan komme med et eksempel på en kode der kan lave en exe fil?
det jeg havde tænkt på var at hvis man nu havde "maskinkoden" til et program kunne man så ikke skrive en exefil ud fra den? eller skal man gøre noget andet måske?
2.) Er der en måde hvorpå man kan gemme en exefils maskinkode i en txtfil? (eller noget i den stil!) Hvordan
1.)Hvis man nu har en maskinkode(et og nultaller) hvordan får man så sit program til at gemme det som en exefil? hvis dette ikke er muligt hvad er så muligt?
2.)Hvordan får man sit program til at gemme maskinkoden(et og nultaller) fra en exefil ned i en txtfil?
djones: jeg vil have mine egne programmer til at gøre det!
okay det kan jeg da nemt hjælpe dig med du laver et program der omdøber din exe fil til en txt fil ... vola og du har gemt dit programs kode i en tekstfil... hvis du vil lave dit program om til en executeable igen laver du bare et program der omdøber din tekstfil til en exec. Så nemt skal det være!
Helt så simpelt er det nu ikke - ved en com-fil ja, så er det bare kode fra byte 0. EXE-filer har en såkaldt 'MZ'-header og EXE-filer til nyere operativsystemer har en ekstra 'PE'-header (Portable Executeable). Headeren indeholder informationer om entry-point (Hvor i koden programmet starter) og sektioner som programmet deles op i (.text til kode, .data til writeable data og .rdata til read-only data osv.). MSDN til Visual Studio 6 har en detaljeret beskrivelse af EXE-filens opbygning, men deres online-version er desværre ikke hvad det har været. Jeg foreslår at du søger på noget alla "exe mz pe header" på www.google.com og så finder du sikker noget godt...
for det andet skal der altså ikke til at blandes alle mulige filer ind i det!
det jeg gerne vil ha koden til er et program der kan skrive maskinkoden(et og nultallene) ned i en tekstfil og derefter også kunne lave en exefil udfra tekstfilen! :)
Hvis du skal lave en "rigtig" assembler compiler, skal du jo definere alle assembler kommandoer (f.eks. som navn og antal parametre) i en intern tabel (eller endnu bedre - en du læser ind ved opstart) og så "oversætte" en ASM kildefil til de tilsvarende assembler koder.
typedef asmInst struct { char inst[4]; int parms; }; asmInst instSet[256]; // Max 256 instructions.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.