18 CPE CREDITS; SELF-PACED, ON DEMAND, This course will introduce you to software reverse engineering at binary level.



Software Reverse Engineering Techniques is a field of work where you can have a binary file and revert it into a programming language (usually Assembly). It is very useful when you do not have the original source code (e.g. legacy code) and need to change something in the program or even debug it. In this first approach (Level 1), you will learn the things that you should know about Computer Organization, Machine Language, Assembly Language and the techniques related to these topics used to understand a program without having the original source code. The course was developed considering x86 32 and 64 bits architecture.

 Your instructor


Phd. in Engineering by University of Sao Paulo (USP), teaches Operating Systems, Computer Organization, Computer Networks and Software Reverse Engineering since 2006.
Published papers in the following areas: operating systems and computational mechanics.

I have worked as programmer in public and private companies for almost fifteen years. You can find more information about me on Linkedin and ResearchGate.

Course format

    • The course is self-paced – you can visit the training whenever you want and your content will be there.

    • Once you’re in, you keep access forever, even when you finish the course.

    • There are no deadlines, except for the ones you set for yourself.

    • We designed the course so that a diligent student will need about 18 hours of work to complete the training.


Course Syllabus

Module I: Computer Organization and Machine Language (Opcodes)

    • Von Neumann Architecture and the x86;

    • Arithmetic Logic Unit, Memory, Registers and the relationship with the Operating System;

    • Opcodes - Binary and Hexadecimal approach;

    • The differences between 32 and 64 bits (Registers and Flags).

      - Emulating an architecture to understand how opcodes work.

Module II: Assembly Language - x86 32 and 64 bits

    • Opcodes x Assembly Language

    • Arithmetic and Logic Commands

    • Memory Access Commands

    • Writing programs in Assembly (using the Assembler)

      - Writing different types of programs (using the commands learned).

Module III: Debugging and Changing a Binary (Real Time)

    • What is a debugger and how to use it?

    • Understanding how a program works and modifying it;

    • Removing small parts of a binary program;

    • Adding new code to a binary program;

      - Using a Debugger to understand the behaviour of a binary program;
      - Changing the behaviour of a binary program in real time;

Module IV: Debugging Changing a Binary (Permanently)

    • Using a hexadecimal editor to change a binary on hard disk;

    • Case Study: Removing Advertisement;

    • Case Study: Removing Unwanted Warnings.

      - Using a Hexadecimal Editor to make a permanent change in a binary program;
      - Removing advertisement, password checking and other stuff of a binary program.

If you have any questions about this course, feel free to contact our training coordinator Marta at [email protected]

Course Reviews


1 ratings
  • 5 stars0
  • 4 stars0
  • 3 stars0
  • 2 stars0
  • 1 stars0

No Reviews found for this course.

  • $189.00
  • Course Certificate

Certificate Validation

© HAKIN9 MEDIA SP. Z O.O. SP. K. 2013