This curated list of reverse engineering resources started as awesome-reversing forked from @tylerha97. I have updated some of the resources and will continue to curate into the future. Thanks, for visiting.
- Contents:
Welcome to reverse engineering!
- Learn Assembly - Learing assembly will be necessary to become proficient. This is a great primer to set you up for further study.
- Assembly Language Step-by-Step - An excellent starting point point to learn Intel based 32 bit architecture x86 assembly language. Wiley has released the 4th edition based on x64 architecture.
- Reverse Engineering for Beginners
- Introducing the Arm architecture
- Apple Silicon Developer Documentation
- Intel® 64 and IA-32 Architectures Software Developer Manuals - The go to reference for Intel architecture based assembly
- Learn The Architecture - A64 instruction set architecture
Creating a safe space to hone your skills
Not every file is safe to run in your environment take steps to ensure your machine and network are protected.
What is this thing?
Become accustomed to trying to determine something about the file before you run it.
Peeking in the medicine cabinet
Be cautious to learn as much as you can before running an unknown executable on your machine.
- HxD
- 010 Editor
- Hex Workshop
- HexFiend
- Hiew
- ImHex
- CFF Explorer
- Cerbero Profiler
- Detect It Easy
- PeStudio
- PEiD
- PPEE
- Android Developer Studio
- APKtool
- dex2jar
- yarGen
- yabin
- ollvm
- movfuscator
- Tigress
- AD_1DA (metamorphism)
- MachoView
- AppEncryptor - Tool for decrypting
- Class-Dump - use deprotect option
- readmem - OS X Reverser's process dumping tool
Poking the bear
- Ghidra
- IDA Pro
- Binary Ninja
- JEB
- Radare
- Hopper
- Capstone
- objdump
- fREedom
- Retdec
- dnSpy
- Bytecode Viewer
- JPEXS Flash Decompiler
- Snowman
- dotPeek
- Mobius Resources
- bap
- angr
- Scylla
- ProcessHacker
- Process Explorer
- Process Monitor
- Autoruns
- Noriben
- API Monitor
- iNetSim
- Wireshark
- netzob
- Volatility
- Dumpit
- LiME
- Cuckoo
- Objective-See Utilities
- dtrace - sudo dtruss = strace dtrace recipes
- Frida
- BluePill - Analysis and debugging of evasive malware and protected executables
- Dexcalibur
- GDB step by step introduction - A solid intro to the GNU De Bugger tool aimed at total beginners.
- WinDbg
- x64dbg
- gdb
- vdb
- lldb
- qira
- Ole Tools
- Didier's PDF Tools
- Origami
- unicorn
- Jadx
- Smali
- Triton
- The IDA Pro Book
- The Ghidra Book
- The Beginner's Guide to IDA Python
- Assembly Language for Intel-Based Computers (5th Edition)
- Hacker Disassembly Uncovered
- BugProve Jaw dropping tool to highlight vulnerabilities in binaries. I dare you to upload your router firmware.
Do or do not, there is no try
- Dr. Fu's Malware Analysis Tutorials
- Lena's Reversing for Newbies
- Open Security Training
- Binary Auditing Training
- Practical Malware Analysis
- Modern Binary Exploitation
- RPISEC Malware Analysis Course
- Reverse Engineering for Beginners
- RE101
- RE102
- ARM Assembly Basics
- Binary Auditing Course
Teach a student to fish
- Crackmes.one - Binaries of different types and difficulties to practice, along with excellent write-ups.
- OSX Crackmes
- Github CTF Archives
- Reverse Engineering Challenges
- xorpd Advanced Assembly Exercises
- Virusshare.com
- Contagio
- Malware-Traffic-Analysis
- Malshare
- malwr.com
- vxvault
- Root Me Challenges
- theZoo
- IDA Python Src
- IDC Functions Doc
- Using IDAPython to Make your Life Easier
- IDA Plugin Contest
- onehawt IDA Plugin List
- pefile Python Libray
- ghidra ninja
- USB reversing
Better practice means better gains
- Write your own programs in C or C++ then reverse engineer them. This practice has the added effect of making you a better programmer.
- Compiler Explorer - This nifty tool lets you write out some code in a variety of higher level languages and see them in various compilers in a side-by-side view.
- Decompiler Explorer - This gem lets you upload a binary and view it side-by-side in multiple decompilers to compare the results.
Take your experience to the next level
- Use a tool from a company like 1BitSquared and pull the firmware off of an embedded device and reverse engineer that.
- 1BitSquared - Tools to read JTAGs and interface with embedded devices.
Where to go for more information
- Practical Reverse Engineering
- Reversing: Secrets of Reverse Engineering
- Gray Hat Hacking
- The Art of Memory Forensics
- Hacking: The Art of Exploitation - This book has a section on assembly language which I found extremely helpful to understand the basics.
- Fuzzing for Software Security
- Art of Software Security Assessment
- The Antivirus Hacker's Handbook
- The Rootkit Arsenal
- The Shellcoders Handbook
- A Guide to Kernel Exploitation
- Yara docs
- Agner's software optimization resources
- Binary Analysis
- Rootkits and Bootkits
- Serious Cryptography
- Attacking Network Protocols
- radare2book