Getting Started with Reverse Engineering

Reverse engineering binary code is a core skill for software security engineers, malware analysts and penetration testers. This course will teach you techniques for reversing binary code to identify program characteristics and behavior.
Course info
Rating
(15)
Level
Beginner
Updated
Aug 29, 2018
Duration
3h 40m
Table of contents
Course Overview
Introduction
Assembly Basics
Working with Native Code
Using Debuggers
Practical Assembly
Reverse Engineering
Conclusion
Description
Course info
Rating
(15)
Level
Beginner
Updated
Aug 29, 2018
Duration
3h 40m
Description

The ability to reverse engineer binary code is an essential skill for anyone responsible for software security or performing malware analysis, and it even plays a significant role in performing penetration tests and incident response. In this course, Getting Started with Reverse Engineering, you will gain the skills necessary to reverse engineer native code and determine program behavior. First, you will discover the basic elements of modern CPU architecture and the essentials of assembly language. Next, you will learn about native code, the portable executable file format and techniques to enrich your reverse engineering efforts. Finally, you will explore proficiency in the tools and techniques associated with performing static and dynamic reverse engineering to include IDA Pro and WinDbg. Throughout this course you will be able to follow along through comprehensive demonstrations and apply yourself through hands-on labs. By the end of this course, you will have the knowledge and skills necessary to reverse engineer native code binaries.

About the author
About the author

Dr. Josh Stroschein is an Assistant Professor at Dakota State University where he teaches malware analysis, software exploitation, reverse engineering, and penetration testing. Josh also works as a malware analyst for Bromium, an end-point security company and is the Director of Training for the Open Information Security Foundation (OISF).

More from the author
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone! My name is Dr. Josh Stroschein, and I want to welcome you to Getting Started with Reverse Engineering. I am an assistant professor in cybersecurity at Dakota State University, senior security researcher at VDA Labs, and a malware analyst for Bromium. The ability to reverse engineer binary code is an essential skill for anyone responsible for software security, performing malware analysis, and even plays a significant role at performing penetration tests and incidence response. In this course, we are going to learn how to quickly and effectively reverse engineer this binary code to determine program characteristics and behaviors. Some of the major topics that we will cover include the essential elements of modern CPU architecture and assembly language, native code and binary file formats, such as the portable executable file format, and techniques to enrich your reverse engineering efforts, and, finally, to gain proficiency and the tools and techniques associated performing both static and dynamic analysis. This will include both IDA Pro and WinDbg. Throughout this course, you'll be able to follow along through comprehensive demonstrations and apply yourself through hands-on labs. And by the end of this course, you will have the knowledge and skills necessary to reverse engineer native code binaries. Before beginning the course, some basic familiarization with assembly language will be helpful but certainly not required. I hope you'll join me on this journey to learn how to reverse engineer with Getting Started with Reverse Engineering at Pluralsight.