A practical algorithm for exact array dependence analysis
Communications of the ACM
Software reverse engineering: a case study
Software—Practice & Experience
Decompilation of binary programs
Software—Practice & Experience
Analysis techniques for predicated code
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Global predicate analysis and its application to register allocation
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
Accurate and efficient predicate analysis with binary decision diagrams
Proceedings of the 33rd annual ACM/IEEE international symposium on Microarchitecture
Shimba—an environment for reverse engineering Java software systems
Software—Practice & Experience
Recovery of jump table case statements from binary code
Science of Computer Programming - Special issue on program comprehension (IWPC '99)
Post-pass binary adaptation for software-based speculative precomputation
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Reverse Engineering and Software Maintenance: A Practical Approach
Reverse Engineering and Software Maintenance: A Practical Approach
Procedure Abstraction Recovery from Binary Code
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Disassembly of Executable Code Revisited
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Decompilation of object programs
Decompilation of object programs
Unscheduling, Unpredication, Unspeculation: Reverse Engineering Itanium Executables
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Krakatoa: decompilation in java (dose bytecode reveal source?)
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Hi-index | 0.00 |
EPIC (Explicitly Parallel Instruction Computing) architectures, exemplified by the Intel Itanium, support a number of advanced architectural features, such as explicit instruction-level parallelism, instruction predication, and speculative loads from memory. However, compiler optimizations that take advantage of these features can profoundly restructure the program's code, making it potentially difficult to reconstruct the original program logic from an optimized Itanium executable. This paper describes techniques to undo some of the effects of such optimizations and thereby improve the quality of reverse engineering such executables.