Getting Started with Reverse Engineering

Getting Started with Reverse Engineering

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 3h 40m | 618 MB

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.

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.

Table of Contents

Course Overview
1 Course Overview

Introduction
2 Course Introduction
3 Why Learn to Reverse Engineer
4 Module Introduction
5 The Reverse Engineering Process
6 Conclusion

Assembly Basics
7 Module Introduction
8 CPU Architecture Registers, Memory, and Machine Code
9 The Assembler and Program Segments
10 Instruction Set Architecture Mnemonics, Operands, and Opcodes
11 Essential Instructions
12 Bitwise Operations, Endianness, and Size
13 Module Conclusion

Working with Native Code
14 Module Introduction
15 The Portable Executable (PE) File Format
16 An Introduction to the Windows API
17 Demo Parsing PE Files
18 Lab Analyzing PE Files
19 Module Conclusion

Using Debuggers
20 Module Introduction
21 Debugger Functionality
22 Debugger Commands
23 Using WinDbg Under Windows
24 Demo Using a Debugger Part 1
25 Demo Using a Debugger Part 2
26 Lab Debug a Problem Program
27 Conclusion

Practical Assembly
28 Introduction
29 Functions and the Stack Frame
30 Calling Conventions
31 Demo The Call Stack and Stack Frames
32 Conditionals and Control Structures
33 Demo Tracing Branching Logic
34 Arrays
35 Lab Tracing a More Complex Program
36 Conclusion

Reverse Engineering
37 Introduction
38 Getting Started with IDA Pro
39 Demo Loading Your First Binary
40 Leveraging Strings and APIs
41 Demo Following Strings and APIs
42 Strategies for Tracing Program Behavior
43 Lab Reversing an Unknown Binary Part 1
44 Lab Reversing an Unknown Binary Part 2
45 Conclusion

Conclusion
46 Introduction
47 What You Learned
48 Leveling up Your Skills
49 Conclusion