The Life of Binaries (OST)

Offered by OpenSecurityTraining,
The Life of Binaries (OST)

A very detailed dive into how binary executable formats work. In particular the PE format used by Windows.

A very detailed dive into how binary executable formats work. In particular the PE format used by Windows.

Topics include but are not limited to:
•Scanning and tokenizing source code.
•Parsing a grammar.
•Different targets for x86 assembly object files generation. (E.g. relocatable vs. position independent code).
•Linking object files together to create a well-formed binary.
•Detailed descriptions of the high level similarities and low level differences between the Windows PE and Linux ELF binary formats. (NOTE: we didn't get to this in the class where the video was recorded, but the materials are in the slides)
•How an OS loads a binary into memory and links it on the fly before executing it.

Along the way we discuss the relevance of security at different stages of a binary’s life, from the tricks that can be played by a malicious compiler, to how viruses really work, to the way which malware “packers” duplicate OS process execution functionality, to the benefit of a security-enhanced OS loader which implements address space layout randomization (ASLR).

Lab work includes:
•Manipulating compiler options to change the type of assembly which is output
•Manipulating linker options to change the structure of binary formats
•Reading and understanding PE files with PEView
•Reading and understanding ELF files with Readelf (NOTE: we didn't get to this in the class where the video was recorded, but the materials are in the slides)
•Using WinDbg and/or GDB to watch the loader dynamically link an executable
•Using Thread Local Storage (TLS) to obfuscate control flow and serve as a basic anti-debug mechanism
•Creating a simple example virus for PE
•Analyze the changes made to the binary format when a file is packed with UPX
•Using the rootkit technique of Import Address Table (IAT) hooking to subvert the integrity of a program’s calls to external libraries, allowing files to be hidden.

Knowledge of this material is recommended, but not required, for future classes such as Rootkits, but is required for Reverse Engineering Malware.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration (OST) OpenSecurityTraining
OpenSecurityTraining

Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration (OST)

Intel processors have been a major force in personal computing for more than 30 years. An understanding of low level computing mechanisms used in Intel chips as taught in this course serves as a foundation upon which to better understand other hardware, as well as many technical specialties such as reverse engineering, compiler design, operating system design, code optimization, and vulnerability exploitation.

Self Paced
Self-Paced
IBM Data Privacy for Information Architecture (Coursera) Coursera
IBM

IBM Data Privacy for Information Architecture (Coursera)

Data privacy controls how information is collected, used, shared, and disposed of, in accordance with policies or external laws and regulations. In this course, students will gain an understanding of what data privacy is along with how to identify and understand typical data protection and privatization objectives that an enterprise may have, and how to choose a data protection approach.

Nov 9th 2026
5-12 Weeks
COBOL Programming with VSCode (Coursera) Coursera
IBM

COBOL Programming with VSCode (Coursera)

Professor Tak Auyeung of American River College, said it beautifully, “A programming language is not a fashion statement” it is used for a purpose. Whether it is to add new features, modify logic, create APIs to integrate it into other applications, or implement modern development practices, businesses around the world need application developers who know COBOL.

Nov 9th 2026
3 Weeks
Laboratório de Programação Orientada a Objetos - Parte 2 (Coursera) Coursera
Universidade de São Paulo, Brasil

Laboratório de Programação Orientada a Objetos - Parte 2 (Coursera)

Esta é a segunda parte do curso avançado de Programação Orientada a Objetos oferecido pelo Departamento de Ciência da Computação do IME-USP. O curso é voltado para profissionais ou estudantes interessados em Desenvolvimento de Software Avançado e que já dominam uma linguagem de programação e já conhecem os fundamentos básicos da orientação a objetos.

Nov 9th 2026
5-12 Weeks
Introduction to Complex Analysis (Coursera) Coursera
Wesleyan University

Introduction to Complex Analysis (Coursera)

This course provides an introduction to complex analysis which is the theory of complex functions of a complex variable. We will start by introducing the complex plane, along with the algebra and geometry of complex numbers, and then we will make our way via differentiation, integration, complex dynamics, power series representation and Laurent series into territories at the edge of what is known today.

Nov 9th 2026
5-12 Weeks
Uso de bases de datos con Python (Coursera) Coursera
University of Michigan

Uso de bases de datos con Python (Coursera)

Este curso presentará a los estudiantes los conceptos básicos del lenguaje de consulta estructurado (Structured Query Language, SQL), así como el diseño básico de bases de datos para almacenar datos como parte de una iniciativa de varios pasos para recopilar, analizar y procesar datos. El curso utilizará SQLite3 como base de datos. También crearemos rastreadores web y procesos de visualización y recopilación de datos de varios pasos. Utilizaremos la biblioteca D3.js para realizar la visualización básica de datos.

Nov 9th 2026
5-12 Weeks
Introduction to Software, Programming, and Databases (Coursera) Coursera
IBM

Introduction to Software, Programming, and Databases (Coursera)

There are many types of software and understanding software can be overwhelming. This course aims to help you understand more about the types of software and how to manage software from an information technology (IT) perspective. This course will help you understand the basics of software, cloud computing, web browsers, development and concepts of software, programming languages, and database basics.

Nov 9th 2026
5-12 Weeks
Kotlin for Java Developers (Coursera) Coursera
JetBrains

Kotlin for Java Developers (Coursera)

The Kotlin programming language is a modern language that gives you more power for your everyday tasks. Kotlin is concise, safe, pragmatic, and focused on interoperability with Java code. It can be used almost everywhere Java is used today: for server-side development, Android apps, and much more. This course aims to share with you the power and the beauty of Kotlin.

Nov 9th 2026
5-12 Weeks
Programming and Application Foundations (Coursera) Coursera
Illinois Tech

Programming and Application Foundations (Coursera)

This course introduces the students to the creation and deployment of modern, standards-compliant web pages written in HTML, CSS, and JavaScript in the context of the client-server architecture of the web. The course also covers the fundamentals of programming in a modern programming language, basic data modeling, database design, implementation, and administration of single-user and shared multi-user database applications using a contemporary relational database management system.

Nov 9th 2026
5-12 Weeks