We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18
Reverse Engineering Techniques
By
Tabinda Ali Shah Zaman
Reverse Engineering Tools: Reverse engineering tools accept source code as input and produce a variety of structural, procedural, data, and behavioral design. Reverse engineering if done manually would consume a lot of time and human labor and hence must be supported by automated tools. Some of the tools are given below: 1. CIAO and CIA: A graphical navigator for software and web repositories and a collection of Reverse Engineering tools. 2. Rigi: A visual software understanding tool. 3. Bunch: A software clustering/modularization tool. 4. GEN++: An application generator to support the development of analysis tools for the C++ language. 5. PBS: Software Bookshelf tools for extracting and visualizing the architecture of programs. Importance of Reverse Engineering 1. Reduces the cost of software development Recovering and reusing code saves time and reduces the overall cost of development. Instead of investing resources into creating new functionalities existing in the original codebase, developers can focus on enhancing or modifying specific areas as needed.
2. Enables training of IT teams
Reverse engineering also allows IT teams to study the code or design patterns used in different systems, helping them learn best practices and improve their skills. With this hands-on experience, they can enhance their problem-solving abilities and become better equipped to handle complex challenges. 3. Exposes vulnerabilities By dissecting and analyzing software or hardware components, reverse engineers can uncover hidden flaws or weaknesses that hackers could exploit.
4.Creates a reliable model for the future
Reverse engineering enables researchers to conduct further analysis and experimentation on the reconstructed model. It provides a foundation for conducting research, making improvements, and exploring new possibilities.
5. Recovering Lost Source Code: Reverse engineering can be used to
recover the source code of a software application that has been lost or is inaccessible or at the very least, to produce a higher-level representation of it.
6. Fixing bugs and maintenance: Reverse engineering can help find and repair flaws or provide updates for systems for which the original source