Software Reverse Engineering Techniques – Level 1 (W19)

(1 customer review)


Out of stock

Product Description

The access to this course is restricted to eForensics Premium or IT Pack Premium Subscription

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. 


What will you learn about? 

In this first approach to reverse engineering, 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.

What skills will you gain? 

  • Emulating an architecture to understand how opcodes work;
  • Understanding how a program works and modifying it;
  • Removing small parts of a binary program;
  • Adding new code to a binary program;
  • Using a hexadecimal editor to change a binary on the hard drive;

What tools will you use? 

  • a debugger
  • a hex editor

Included in this course: 

Workshop eBook all materials from the course in one handy pdf for you to download and reference when you need it. 

Reverse Engineering Guidea full premium edition of our magazine, with a huge guide that will take you one step further once you finish the course. With this guide, you will develop your new skills more, on another hands-on example! 







DURATION: 12 hours

CPE POINTS: On completion you get a certificate granting you 12 CPE points. 

Course eBook included! 

Course format:

  • Self-paced
  • Pre-recorded
  • Accessible even after you finish the course
  • No preset deadlines
  • Materials are video, labs, and text
  • All videos captioned

To join this course you need basic skills in computer operation and a workstation with internet connection. 



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. Also worked as programmer in public and private companies for almost fifteen years.
You can find more information about me on Linkedin and ResearchGate.


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 a 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, please contact us at [email protected].


1 review for Software Reverse Engineering Techniques – Level 1 (W19)

  1. D@em0n (verified owner)

    I took this course to review some assembly fundamentals towards my mastery of more complex RE techniques. Playing with an 8086 emulator was handy in learning assembly and opcodes and seeing how the program gets executed in the machine. The opcode work was handy for modifying small binary files in a hex editor or OllyDbg; the most valuable part of the course was taking small C programs, disassembling them to see what the high-level language constructs boil down to: example, while loops, if statements, etc. The exercises were perfect for practicing what you just learned in the lectures.

Only logged in customers who have purchased this product may leave a review.

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