How to learn Reverse-Engineering Fast in 2023(A Practical Approach)

Zuber Kariye
3 min readMar 12, 2023

--

CONTENT

  • Intro
  • What to Learn
  • Best way to learn it
  • Extra Resources
  • Outro

Intro

  • Reverse engineering in cybersecurity refers to the process of analyzing malicious software or other digital artifacts to understand how they operate and to identify potential security vulnerabilities. This can involve decompiling, disassembling, or otherwise reverse engineering software code to gain insights into its behavior or to uncover hidden features. By reverse engineering malware or other cyber threats, cybersecurity experts can better understand the methods used by attackers and develop more effective defenses to protect against them. Reverse engineering is an essential tool for cybersecurity professionals, enabling them to stay one step ahead of cybercriminals and keep sensitive data and systems safe from harm.

What to Learn

  • There are lots of things to learn if you want to get into the field of reverse engineering in cybersecurity. Here are some of them:
  1. Assembly language: Understanding assembly language is essential for reverse engineering, as it allows you to read and analyze the low-level instructions that make up a program.
  2. Debugging: Debugging tools are used to analyze code and identify bugs or other issues. Learning how to use debugging tools is crucial for reverse engineering and can help you identify vulnerabilities in software.
  3. Malware analysis: Malware analysis involves reverse engineering malicious software to understand how it operates, how it infects systems, and how it can be detected and removed.
  4. Network protocols: Understanding network protocols and how they are implemented can help you identify and analyze network traffic, which is important for reverse engineering network-based attacks.
  5. Cryptography: Cryptography is often used to protect sensitive data and communications. Understanding how cryptography works and how to break it is an important skill for reverse engineering in cybersecurity.
  6. Operating systems: Knowledge of operating systems, including their structure and functions, is important for understanding how software interacts with the underlying system and how it can be exploited.
  7. File formats: Reverse engineering often involves analyzing file formats, such as executable files or document files, to understand how they work and how they can be manipulated.
  8. Programming languages: Understanding programming languages, including high-level languages like C and Python, is essential for reverse engineering and can help you understand how code is written and executed.

Best Way to Learn It

  • The best way to learn anything in cybersecurity or tech is through labs and doing practical stuff which enhances your technical skills, although it's important to learn the theory as well.
  • Here are some of the best places anyone could practice their skills:
  1. Go to https://www.crackmes.one/ and start playing with the challenges there.
  2. Study from the book “Reverse Engineering for Beginners”. You can do it for free at: https://www.beginners.re
  3. Do the super practical workshop at https://www.begin.re

Extra Resources

  1. Reverse Engineering for Beginners (RE4B): https://beginners.re/
  2. Malware Unicorn: https://www.malwareunicorn.org/
  3. Open Security Training: https://opensecuritytraining.info/
  4. RPISEC Modern Binary Exploitation: https://github.com/RPISEC/MBE

Outro

This is for today’s article! I want to keep it short and useful to avoid information being overwhelming. We have covered the important stuff, skills to learn, and where and how to learn them as well. I hope this helps you in your career even in the slightest way and that’s why I am writing these blogs. See ya next time!

--

--

Zuber Kariye

Cybersecurity analyst | Red Teaming | Interested in CS and low level stuff!