home *** CD-ROM | disk | FTP | other *** search
- {─ Fido Pascal Conference ────────────────────────────────────────────── PASCAL ─
- Msg : 275 of 298
- From : Amir Geva 2:403/138.0 04 Apr 93 01:02
- To : Eric Ort
- Subj : " .EXE " File Headers...
- ────────────────────────────────────────────────────────────────────────────────
- Hi.
-
- EO> Could anyone out there tell me how to read in a .EXE File Header, so
- EO> I can manipulate a program based on the info therein ?? }
-
- =====================================================================
- == The format of an EXE load module. ==
- =====================================================================
-
- Byte
- Offset
-
- 0000H First part of EXE file signature (4DH)
- 0001H Seconed part of EXE signature (5AH)
- 0002H Length of file MOD 512
- 0004H Size of file in 512-byte pages, including header
- 0006H Number of relocation table items
- 0008H Size of header in paragraphs
- 000AH Minimum number of paragraphs needed above program
- 000CH Maximum number of paragraphs desired above program
- 000EH Segment displacement of stack module
- 0010H Contents of SP register at entry
- 0012H Word checksum
- 0014H Contents of IP register at entry
- 0016H Segment displacement of code module
- 0018H Offset of first relocation item in file
- 001AH Overlay number (0 for resident part of program)
- 001BH Variable reserved space
- .
- .
- Relocation table
- .
- .
- Varible reserved space
- .
- .
- .
- Program and data segments
- .
- .
- .
- .
- Stack segment
- .
-
- .
- =====================================================================
- =====================================================================
- == A memory image of a typical EXE file just after loading ==
- =====================================================================
-
- +---------------------------------------+ SS:SP
- | |
- | Stack segment: stack grows |
- | downward from top of segment |
- | |
- +---------------------------------------+ SS:0000H
- | |
- | Data Segemnt |
- | |
- +---------------------------------------+
- | |
- | |
- | Program Code |
- | |
- | |
- +---------------------------------------+ CS:0000H
- | |
- | Program Segment Prefix |
- | |
- +---------------------------------------+ DS:0000H
-
-
- bye
-
- Amir @ 2:401/450
-