Shared Libraries in Windows and Linux - Linking and Loading Deep Dive
Offered By: cpponsea via YouTube
Course Description
Overview
Explore the intricacies of shared libraries in Windows and Linux operating systems in this comprehensive conference talk from C++ on Sea 2023. Dive deep into linking and loading operations, examining binary structures, clarifying static vs dynamic linkage, and highlighting the differences between Linux and Windows. Learn how to decipher complex linker error messages and gain a thorough understanding of import data sections, library interfaces, resolution timing, and symbol visibility. Discover solutions for process-wide singletons, circular library dependencies, and symbol overriding. Investigate the Procedure Linkage Table (PLT) and its absence in Windows, compare function pointers, and explore the relationship between C++ and shared libraries. Ideal for developers seeking to enhance their knowledge of low-level programming concepts and troubleshoot linking issues effectively.
Syllabus
Intro
Intro to Linking in 3 slides, #1
Import data section
idata section layout
Import Library
Windows Schematic Interface
Linux import sections
Linux Schematic Interface
Resolution Time
Linux: Intermediate Summary
How to form a process-wide singleton?
Can you have circular library dependencies?
Can a shared-library symbol be overridden from an executable?
Procedure Linkage Table (PLT)
Comparing Func Ptrs
Windows .idata section
No analogue mechanism in Windows
Symbol Visibility - Windows
Symbol Visibility - Linux
Component Map
C++ and Shared Libs
Resources
Taught by
cpponsea
Related Courses
Threat Hunting with YaraPluralsight Reverse Engineering 3201: Symbolic Analysis
OpenSecurityTraining2 via Independent Firing Rounds at the Analysis Shooting Gallery - CSAW'16 Security Workshop
New York University (NYU) via YouTube angr: Binary Analysis Framework - Demonstration and Analysis
New York University (NYU) via YouTube Debin: Predicting Debug Information in Stripped Binaries
Association for Computing Machinery (ACM) via YouTube