An experimentation framework for evaluating disassembly and decompilation tools for C++ and java

@article{Vinciguerra2003AnEF,
  title={An experimentation framework for evaluating disassembly and decompilation tools for C++ and java},
  author={Lori Vinciguerra and Linda M. Wills and Nidhi Kejriwal and Paul Martino and Ralph L. Vinciguerra},
  journal={10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings.},
  year={2003},
  pages={14-23}
}
The inherent differences between C++ and Javaprograms dictate that the methods used for reverseengineering their compiled executables will be language-specific. [...] Key Method An experimentation framework forevaluating tools is described, including methodology,benchmark programs, metrics, and reverse engineeringtasks. Preliminary results of experiments conducted sofar to assess the capability of a small select set of chosenpopular tools are given. These results reveal language-specific differences in the…Expand
Using a decompiler for real-world source recovery
TLDR
This work describes the experience gained from applying a native executable decompiler, assisted by a commercial disassembler and hand editing, to a real-world Windows-based application. Expand
A refined decompiler to generate C code with high readability
TLDR
A practical decompiler called C‐Decompiler for Windows C programs that uses a shadow stack to perform refined data flow analysis, adopts inter‐basic‐block register propagation to reduce redundant variables, and recognizes library functions by signatures is presented. Expand
A Novel Lightweight Virtual Machine Based Decompiler to Generate C / C + + Code with High Readability
As a key part of reverse engineering, decompilation plays a very important role in software security and maintenance. Many decompilation techniques and tools have been developed while all of themExpand
Static Single Assignment for Decompilation
TLDR
The goal of extending the state of the art of machine code decompilation has been achieved and the most promising areas for future research have been identified as range analysis and alias analysis. Expand
An Approach towards Disassembly of Malicious Binary Executables
Analysis of a binary executable starts with disassembly. Current methods start disassembling a program from an entry point, and continue disassembling either by a simple linear scan or by followingExpand
N-version disassembly: differential testing of x86 disassemblers
TLDR
This paper presents a methodology, called N-version disassembly, to verify the correctness of disassemblers, based on differential analysis, and developed a special instruction decoder, the nth, that delegates the decoding to the CPU, the ideal decoder. Expand
[Research Paper] Obfuscating Java Programs by Translating Selected Portions of Bytecode to Native Libraries
  • Davide Pizzolotto, M. Ceccato
  • Computer Science
  • 2018 IEEE 18th International Working Conference on Source Code Analysis and Manipulation (SCAM)
  • 2018
TLDR
This paper presents an approach to automatically translate critical sections of high level Java bytecode to C code, so that more effective obfuscations can be resorted to. Expand
The Strengths and Behavioral Quirks of Java Bytecode Decompilers
TLDR
It is hypothesize that the diverse ways in which bytecode can be decompiled has a direct impact on the quality of the source code produced by decompilers. Expand
Adding distribution to existing applications by means of aspect oriented programming
TLDR
This work proposes a distribution framework based on AOP and it describes the steps necessary to migrate an existing program to it and all required aspects are generated automatically. Expand
Proceedings of the First International Workshop on Code Based Software Security Assessments — CoBaSSA 2005 — November 7 th 2005
In recent years researchers have presented several tools for statically checking security properties of C code. But they all (currently) focus on one or two categories of security properties each. WeExpand
...
1
2
3
...

References

SHOWING 1-10 OF 35 REFERENCES
Disassembly of executable code revisited
TLDR
A hybrid approach is proposed that performs better than existing disassembly algorithms in the sense that it is able to detect situations where the disassembly may be incorrect and limit the extent of such disassembly errors. Expand
An environment for the reverse engineering of executable programs
  • C. Cifuentes
  • Computer Science
  • Proceedings 1995 Asia Pacific Software Engineering Conference
  • 1995
TLDR
The results obtained by the prototype reverse compilation system dcc are encouraging: high level code is regenerated with correct use of expressions and control structures, and the complete elimination of registers and condition codes. Expand
Recovery of jump table case statements from binary code
TLDR
This paper presents a technique for recovering jump tables and their target addresses in a machine and compiler independent way based on slicing and copy propagation, and shows that up to 89% more of the code in a text segment can be found by using this technique, when compared against the standard method of decoding. Expand
Partial automation of an integrated reverse engineering environment of binary code
  • C. Cifuentes
  • Computer Science
  • Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering
  • 1996
TLDR
The author presents a partially automated integrated environment for the reverse engineering of binary or executable code, suitable for the development of disassemblers, binary translators and decompilers. Expand
Computer security analysis through decompilation and high-level debugging
TLDR
A high-level debugging tool to be used by computer security experts, which will reduce the amount of time needed to solve security-related problems in executable programs and reduce the costs of acquiring or training skilled assembler engineers. Expand
Simple type system for program reengineering
  • I. Guilfanov
  • Computer Science
  • Proceedings Eighth Working Conference on Reverse Engineering
  • 2001
TLDR
The power of the type system presented is that a decompiler can be constructed using a disassembler augmented by this system, and is capable of representing C language types. Expand
Analysis of virtual method invocation for binary translation
TLDR
A technique to statically recover the code of virtual method dispatchers, which enhances the abstraction front the binary code, and is shown how the statically recovered information is then used by a dynamic environment to analyse virtual tables in order to increase the code coverage for the binary translator. Expand
Procedure abstraction recovery from binary code
  • C. Cifuentes, Doug Simon
  • Computer Science
  • Proceedings of the Fourth European Conference on Software Maintenance and Reengineering
  • 2000
TLDR
The use of a specification language called PAL (Procedure Abstraction Language) is described, as well as the machine-independent recovery analysis based on PAL, which has been integrated into UQBT (University of Queensland Binary Translator), which is a resourceable binary translation framework. Expand
Experience in the design, implementation and use of a retargetable static binary translation framework
TLDR
The overall design and architecture of the UQBT framework is described, the goals for the project, the resulting framework, experiences with translations across different machines, and lessons learned are described. Expand
Decompilation of binary programs
The structure of a decompiler is presented, along with a thorough description of the different modules that form part of a decompiler, and the type of analyses that are performed on the machine codeExpand
...
1
2
3
4
...