🔬 Reverse Engineering (rev)
Reverse Engineering (Rev) challenges are generally logic puzzles (reversing crypto algo’s without the math), game hacking, crack me programs, flag checkers, homemade languages, and reversing obscure architectures.
Reverse engineering generally has the least amount of people participating in it. This is partly due to difficulty and partly due to most people who are good at reverse engineering working on Binary Exploitation (pwn) instead.
How to Learn
Practice, Practice, Practice.
- Reverse engineering is extremely time consuming, especially when you start. As you practice you will start recognizing patterns and get faster with time.
- Almost all good reverse engineering challenges will be unique and will require that you will need to learn about something new; this skill improves as you practice.
- You can practice lots of challenges here. All the challenges are rated for difficulty and each challenge has the original files and a writeup.
Required Tools to start for free today
- Suite of reverse engineering tools, including dissasembly. Use this to decompile binaries and executables
- Gnu Project Debugger. Useful for dynamic analysis
- Hex Editor
- Useful for editing binaries
- You will most likely know nothing about the challenge. That’s one of the main componennts of reverse engineering. Google is your friend
More advanced tool classifications and usages
Other Static Analysis Tools
- Binary Ninja
Dynamic Analysis Tools
- Binary Ninja
Advanced Automatic solving tools
- Python framwork for analyzing binaries
- Does everything you will try to do but better
- Make a virtual environment in python or you will break your python
Must have python libraries
- Gives better access to the binaries when running scripts
- Z3py Solver
- Used to check satisfiability of equations
- Useful for flag checker challenges
C# specific challenges
- Decompiles C#
- Lets you edit the C# and when you save it will recompile for you
APK specific challenges
- All in one APK tool
- Extracts all APK data
- Decompiles all java
- Sets up emulation for dynamic analysis
Compiled python challenges
- Decompiles compiled python bytecode
- Used for extracting compiled python from executables and binaries made with pyinstaller
If you’re interested in game hacking, Game GuidedHacking is an amazing forum with a lot of information.
- Following their tutorials and hacking various games you get exposure to multiple architectures, learn reverse engineering tricks, and learn about how to get around anti-debug code.
- Always remember to only hack things you have permission to hack. Sticking to offline, single player games is a good way to stay safe.