Development process for maintaining legacy software. Development related software reverse engineering scenarios. Security related software reverse engineering scenarios. The five panes of the OllyDbg graphical workbench. Sample slide from the machine code reversing animated tutorial. Execution of Java bytecode versus machine code. FrontEnd Plus workbench session for ListArguments.class. Result of obfuscating all string literals in the program.
4 5 8 16 19 21 27 46
Record limit comperands are represented as exponents with a base of 2. 49
Obfuscated control flow logic for testing the password record limit. Edit-distances between three run traces of the trial limitation check
Usage of opaque predicates to prevent decompilation. Sample slide from the Java antireversing animated tutorial. Layers of a well-structured legacy software application.
65 70 73
Mapping legacy functional discriminators to an object-oriented design. Example JCA implementation for accessing a legacy application. Architecture for legacy application reengineering and reuse from Java. Console-based Java interface to the legacy COBOL program. Process Monitor session for the Password Vault application. Example ThreatExpert report summary for submitted malware. Console-based UI for the Alarm Clock example software Trojan.
75 79 83 89 102 104 105
Figure 2.1 Figure 2.2 Figure 3.1 Figure 4.1 Figure 4.2 Figure 5.1 Figure 5.2 Figure 7.1 Figure 7.2 Figure 7.3 Figure 7.4 Figure 8.1 Figure 8.2 Figure 9.1 Figure 9.2 Figure 9.3 Figure 9.4 Figure 9.5 Figure 10.1 Figure 10.2 Figure 10.3
List of Figures