| S. C. Johnson, `Postloading for fun and profit', Proc. Winter 1990 USENIX Conference, January 1990, pp. 325--330. |
....Information gathering is done unobtrusively and automatically by the Desert environment. Facilities are currently provided here for collecting cross reference information from compiler output and approximate scanners and for obtaining dynamic information through the use of patching technology [8,10,11]. Access to this information is available through queries sent through the message server from other tools. The second component of our solution is to provide a wide range of visualization strategies. Previous experience indicated that abstract representations such as those provided by Seesoft ....
S. C. Johnson, "Postloading for fun and profit," USENIX Winter '90, pp. 325-330 (1990).
....2nd to 3rd generation machines, at a time when many programs were written in assembly code and could not be migrated to the new machine without considerable time and expense in rewriting of the code. In the 1980s, emulation was used to aid in the development of new hardware and operating systems [6, 5, 25]. In the 1990s, we have seen the use of emulators to run old programs on new machines, particularly games from obsolete machines. The time overhead introduced by the translation process at run time is sometimes counteracted by the fact that the new machines are normally much faster than the old ....
S.C. Johnson. Postloading for fun and profit. In Proceedings Winter USENIX Conference, pages 325--330, 1990.
....the program s jumps: for basic block counting, for example, we do not care whether a JR is a case statement or a subroutine return, and Epoxie does not need to know this for a safe translation. A somewhat similar approach, which does require changing the linker, was recently described by Johnson [11]. A modified linker always retains a compact form of the relocation information, even for completely linked programs. Code modification can then occur after linking, as it does in Pixie, without sacrificing the type knowledge that Mahler found so useful. 8. Implementation overview Currently ....
S. C. Johnson. Postloading for fun and profit. Proceedings of the Winter 1990 USENIX Conference, pp. 325-330, January 1990.
....stage to reorder procedures or basic blocks to improve cache performance [27,32] because only when the code is in our hands do we know how big basic blocks and procedures really are. Benitez and Davidson [6] describe an optimizing linker that does fairly general peephole optimizations. Johnson [22] discusses an elegant approach called postloading: code modification occurs after linking and is completely separate from the linker, but the linker always retains in the executable file enough information for the postloader to understand the uses of addresses and the like. Finally, we are also ....
S. C. Johnson. Postloading for fun and profit. Proceedings of the Winter '90 USENIX Conference, pp. 325-330, January 1990.
.... to re target a program to a new architecture [HB89, SCK 93, Ech92, BKKM87] Finally, optimizations such as code motion, dead code elimination, register allocation, and instruction scheduling have been applied to binary programs, exploiting the global information available at the binary level [Joh90, SW92, Wal86, Wal92] At present, binary transformation applications face a difficult trade off. Previous approaches to implementing robust transformations incur significant disk space and run time overhead. To improve efficiency, some current systems sacrifice robustness, relying on heuristic ....
....and hence the use of adaptable binaries can eliminate the majority of MemSpy s end to end overhead. 5 Related Work A number of systems have added information to binaries to facilitate transformation systems. Johnson modified the Stardent linker ld to retain inter file relocation information [Joh90] In addition, Stardent compilers were restricted from performing certain machine dependent optimizations and placing data in the code segment. In contrast, adaptable binaries place no constraints on compilers. Further, the Stardent system did not consider control, intra file relocation, or ....
S. C. Johnson. Postloading for fun and profit. In Proceedings of the Winter USENIX Conference, pages 325--330, 1990.
.... is used for profiling and tracing (Ball and Larus 1992) testing (Hastings and Joyce 1992) enforcing protection (Wahbe et al. 1993) optimization (Srivastava and Wall 1993) and binary translation (Sites et al. 1993) There are even frameworks for creating applications that transform object code (Johnson 1990; Larus and Schnarr 1995; Srivastava and Eustace 1994) The techniques presented here build on the New Jersey Machine Code Toolkit (Ramsey and Fern andez 1995) which reads a compact machine description and generates functions that encode instructions. The machine description relates two ....
Johnson, Stephen C. 1990. Postloading for fun and profit. In Proceedings of the Winter USENIX Conference, pages 325--330.
....not be used, a compiler could be changed to annotate the code, via the symbol table, to mark the location and extent of the table. Another method, used by some C compilers, is to follow the indexed jump by an illegal instruction, which alerts the disassembler to the presence of the table. Johnson[6] discusses another solution to similar problems in a more general setting, but requiring an addition to the object file format. 4.2. Basic Blocks and Flow Graph In the next phase, the analyser finds the basic blocks in the object file, and builds a flow graph. It makes two passes over the code. ....
S.C.Johnson, "Postloading for Fun and Profit", pp. 325-330 in Proceedings of the Winter USENIX Conference, Washington D.C., USENIX Association (January 1990).
....without source code, as an object code file or as an executable file. Executables are usually distributed without symbol table or relocation information, as well. Because it is possible to perform the instrumentation necessary for obtaining path spectra on object code files and executable files [10,19,11], the pathspectrum comparison technique is one of the few methods we are aware of that can be Proceedings of ESEC FSE 97: Lec. Notes in Comp. Sci. Springer Verlag, New York, NY, used to identify date manipulation problems in programs for which source code is not available: Differences between ....
....representations for the purpose of determining where to introduce instrumentation instructions. # As an object code level transformation, by modifying object code files (such as UNIX .o files) # As a post loader transformation, by modifying executable files (such as UNIX a. out files) [10,19,11]. One could even use different instrumentation methods on different parts of the system. Although any method for generating path profiles could be used, it is only recently that methods have been devised for obtaining path profiles with acceptable overheads [4,2] In particular, Ball and Larus ....
Johnson, S.C., "Postloading for fun and profit," pp. 325-330 in Proc. of the Winter 1990 USENIX Conf., (Jan. 1990).
.... is used for profiling and tracing [Ball and Larus 1992] testing [Hastings and Joyce 1992] enforcing protection [Wahbe et al. 1993] optimization [Srivastava and Wall 1993] and binary translation [Sites et al. 1993] There are even frameworks for creating applications that transform object code [Johnson 1990; Larus and Schnarr 1995; Srivastava and Eustace 1994] The techniques presented here build on the New Jersey Machine Code Toolkit [Ramsey and Fern andez 1997] which reads a compact machine description and generates functions that encode instructions. The machine description is written in SLED ....
Johnson, S. C. 1990. Postloading for fun and profit. In Proceedings of the Winter USENIX Conference. 325--330.
....readily available. Alternatively the instrumentation can be inserted after the executable image has been built. This approach, called binary re writing, inserts instrumentation into an object file after it has been compiled and assembled. QPT[4] Mtool[33] jprof[77] and the Stardent Postloader[45] all use this style of instrumentation. Binary rewriting has the advantage that it is language independent, and that compilers and libraries do not need to be modified. It is also possible to hand modify an application to insert calls to collect performance data. JEWEL[51] uses this approach. Hand ....
....segment. This creates problems for postlinker tools (correctness debuggers and performance tools) Larus and Ball[4] have also noted this problem, and developed heuristics to differentiate code from data. We use many of their heuristics in our implementation. A better solution was used by Sardent[45]. They added additional information to their executable format to facilitate post linker tools. 48 Save Registers SetUp Arg Restore Registers Base Trampoline Mini Trampoline Program Relocated Instruction(s) Local Global Local Global Primitive startTimer Function A Figure 5.8. Inserting ....
S. C. Johnson, "Postloading for Fun and Profit", USENIX Winter Conf., Jan. 22-26, 1990, pp. 325-330.
.... protection enforcers [Wahbe et al. 1993] run time code generators [George et al. 1994] and link time optimizers [Fern andez 1995; Srivastava and Wall 1993] There are even some frameworks for creating applications that manipulate executable files, although none that work on more than one machine [Johnson 1990; Larus and Schnarr 1995; Srivastava and Eustace 1994] Graham et al. 1995] describe auxiliary information needed to facilitate machine code manipulations; they report support for the MIPS and SPARC architectures. A few applications avoid machine code by using assembly language, e.g. many Unix ....
Johnson, S. C. 1990. Postloading for fun and profit. In Proceedings of the Winter USENIX Conference. 325--330.
.... (Wahbe et al. 1993) run time code generators (George, Guillame, and Reppy 1994) and link time optimizers (Fernandez 1995; Srivastava and Wall 1993) There are even some frameworks for creating applications that manipulate executable files, although none that work on more than one machine (Johnson 1990; Larus and Schnarr 1995; Srivastava and Eustace 1994) Graham, Lucco, and Wahbe (1995) describe auxiliary information needed to facilitate machine code manipulations; they report support for the MIPS and SPARC architectures. A few applications avoid machine code by using assembly language; e.g. ....
Johnson, Stephen C. 1990. Postloading for fun and profit. In Proceedings of the Winter USENIX Conference, pages 325--330.
....Target Platform Bergh et al. (1987) HP [5] Software emulation and object code translation. HP3000, MPE V) HP Precision Architecture, MPE XL) Mimic (1987) IBM [23] Software emulator with a 1:4 code expansion factor per old machine instruction. IBM System 370 IBM RT PC Johnson (1990) Stardent [19] Postloading optimizations. RISC RISC Bedichek et al. (1990) U.Wash [4] Efficient architecture simulation and debugging. Motorola 88000 Motorola 88000 Accelerator (1992) Tandem [2] Static binary translation for CISC to RISC migration. Uses a fallback interpreter. TNS CISC TNS R VEST, mx (1993) ....
S. Johnson. Postloading for fun and profit. In Proceedings Winter USENIX Conference, pages 325--330, 1990.
No context found.
S. C. Johnson, `Postloading for fun and profit', Proc. Winter 1990 USENIX Conference, January 1990, pp. 325--330.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC