Cyber Training Guide
IronForgeCyberHow-To: Radare2How-To: GDB
  • Cyber Training Guide
  • 0x0: Introduction
    • git-good
    • root-1
    • root-2
    • intro
  • Binary Exploitation (pwn)
    • What is Binary Exploitation?
    • 0x1: ret2win
      • win32
      • win64
      • args
    • 0x2: shellcodes
      • location
      • shell
      • constrained
    • 0x3: format strings
      • format
      • chase
      • bbpwn
    • 0x4: stack canaries
      • canary
      • findme
    • 0x5: ROP
      • rop2win
      • split
      • callme
      • write4
      • badchars
    • 0x6: PIE
      • gimme
      • leak32
      • leak64
    • 0x7: ASLR
      • groundzero
      • stepup
      • ret2plt
    • 0x8: GOT overwrites
      • gotem
      • gotem64
  • Programming
    • What is the Programming Section?
    • 0x9: Data Serialization
      • LinkedOps
      • Tree
      • TeLeVision
    • 0xA: Programming
      • Calorie Counting
      • Hash
      • Rock Paper Scissors
      • Watch the Register
      • Supply Stacks
      • Rope Bridge
      • Mountain Climbers
  • Reverse Engineering (RE)
    • What is Reverse Engineering?
    • 0xB: Ghidra
      • hardcode
      • undo
      • snake
  • Toolkit
    • Using Pwntools
      • Establishing Connection
      • Context
      • Sending/Receiving Data
      • The ELF Class
    • My Workflow
      • Tmux
      • Vim
Powered by GitBook
On this page

Was this helpful?

  1. Reverse Engineering (RE)

What is Reverse Engineering?

PreviousMountain ClimbersNext0xB: Ghidra

Last updated 1 year ago

Was this helpful?

Reverse Engineering, also written as RE and sometimes shorted to rev, decomposes a binary to a C-level to understand how it works. This skill is very important to have and works hand-in-hand with binary exploitation.

In reverse engineering challenges, software is used to decompile the binary into C code. The most common software to use is:

  • - Free, open-source, and super popular

  • - Paid, but has a free version

  • - Paid, but has a free version

Once you have the C code, it's a lot easier to understand what is happening.

The primary challenge behind reverse engineering challenges is that the program intentionally obfuscates the flag and then validates your input against the obfuscated code. Solving this involves reversing this obfuscation process, which results in the flag in raw bytes.

This can often be a challenging process and is hard to study for. Many techniques undergo various reversing challenges, and covering them all is impossible. To this day, I find myself struggling at the more advanced CTF reversing challenges because they're just hard.

This section will cover the basics of reverse engineering to provide an expectation of your base knowledge, plus how to use various decompiler software.

Ghidra
IDA Pro
Binary Ninja