- Analyze and improvise software and hardware with real-world examples
- Learn advanced debugging and patching techniques with tools such as IDA Pro, x86dbg, and Radare2.
- Explore modern security techniques to identify, exploit, and avoid cyber threats
If you want to analyze software in order to exploit its weaknesses and strengthen its defenses, then you should explore reverse engineering. Reverse Engineering is a hackerfriendly tool used to expose security flaws and questionable privacy practices.In this book, you will learn how to analyse software even without having access to its source code or design documents. You will start off by learning the low-level language used to communicate with the computer and then move on to covering reverse engineering techniques. Next, you will explore analysis techniques using real-world tools such as IDA Pro and x86dbg. As you progress through the chapters, you will walk through use cases encountered in reverse engineering, such as encryption and compression, used to obfuscate code, and how to to identify and overcome anti-debugging and anti-analysis tricks. Lastly, you will learn how to analyse other types of files that contain code.
By the end of this book, you will have the confidence to perform reverse engineering.
What you will learn
- Learn core reverse engineering
- Identify and extract malware components
- Explore the tools used for reverse engineering
- Run programs under non-native operating systems
- Understand binary obfuscation techniques
- Identify and analyze anti-debugging and anti-analysis tricks
Who this book is for
If you are a security engineer or analyst or a system programmer and want to use reverse engineering to improve your software and hardware, this is the book for you. You will also find this book useful if you are a developer who wants to explore and learn reverse engineering. Having some programming/shell scripting knowledge is an added advantage.
Table of Contents
- Preparing to Reverse
- Identification and extraction of hidden components
- The Low-Level Language
- Static and Dynamic Reversing
- Tools of the trade
- RE in Linux platforms
- RE in Windows platforms
- Sandboxing: Virtualization as a component for RE
- Binary Obfuscation Techniques
- Packing and Encryption
- Anti-analysis Tricks
- Practical Reverse Engineering of a Windows Executable
- Reversing various File-types