R&D's R&D
Socials
  • General
    • About Me
    • Some information about the content of this blog
  • MMO
    • So, I'm doing an MMO
    • Weekly updates
      • Weekly update #1
      • Week 2 through 5 updates
      • Weekly update #6
      • Weekly update #7
      • Weekly update #8
      • Weekly update #?
  • Reverse engineering
    • Beginner's guide to reverse engineering
      • Intro to the subject
      • An introduction to x86 assembly
    • HackTheBox Cyber Apocalypse 2024
      • BoxCutter analysis write-up
  • Malware Analysis
    • Intro to the subject
    • Sample Triage Checklist
    • Process of analysis
      • Sample Triage
  • Malware development
    • Beginner's guide to malware development
      • Intro to the subject
    • What I'm learning
      • Bypassing conditional statements.
Powered by GitBook
On this page

Was this helpful?

  1. Reverse engineering
  2. Beginner's guide to reverse engineering

Intro to the subject

So, what exactly is reverse engineering? What's the point of it? How does it work? Who does it? Reverse engineering, in the world of malware analysis, is the process of understanding what a specific software, application, etc ( usually malware ) does, without having the source code for it.

Reverse engineering is usually done by people in the cybersecurity world. When software gets compiled, it gets compiled to . Machine code is what is read and processed by the . Machine code is basically unreadable by humans, and that is where come in clutch. Disassembly converts machine code to its human readable equivalent, assembly. Assembly can be regarded as one language, with multiple different flavors. Think of the assembly language as the concept of ice-cream. There is only one concept for ice-cream, but there are many different flavors of it, In the simplest terms, assembly is any low-level language whose most closely match that flavor's instructions. As we progress through this blog, we'll mostly be working with the x86 flavor, as it is most common in the world of malware.

Before moving on to x86 assembly, an understanding of the of computer science is important.

  • Numeral systems ( Hexadecimal, binary )

  • Basic data units and data types ( bits, bytes, booleans, integers )

  • Bitwise operators

PreviousBeginner's guide to reverse engineeringNextAn introduction to x86 assembly

Last updated 1 year ago

Was this helpful?