

Table of Contents
0 Abstract
1 Introduction
1.1 Notation used
1.2 Tools that deal with machine code instructions
1.3 Binary translation and code migration
1.4 The loader
1.5 Motivation for a Retargetable loader (RL)
2 Related Work
2.1 Binary Translation
2.2 Disassembering
2.3 Other machine code manipulation tools
3 Retargetable loader (RL)
3.1 design choices
3.2 Developing a RL via library routines
3.2.1 Binary File Descriptor Library (BFD)
3.3 Developing a RL via specifications
3.3.1 DWG based BFF grammar
4 Binary File formats (BFF)
4.1 Abstraction
4.2 BFF examples
4.2.1 Intel MZ DOS EXE format
4.2.2 Windows 3.x (New executable) EXE format
4.2.2.1 Old-style file header
4.2.2.2 New EXE header
4.2.2.3 Hex dump of a Windows "Hello world" NE
4.2.3 Executable and linking format (ELF) format
5 BFF grammar
5.1 BFF properties
5.2 Simple Retargetable Loader (SRL)
5.3 BFF grammar for Simple Retargetable Loader (SRL)
5.4 Grammar explanations
5.4.1 format-def
5.4.2 defin
5.4.3 Loading-info
5.4.4 type-exp
5.5 Limitation of the SRL grammar
6 Testing
6.1 Simple Retargetable Loader (SRL)
7 Summary and conclusion
8 References
9 Appendix