Dynamically Loaded Libraries Outside the Standard
summary
Explains practical techniques for using dlopen/LoadLibrary and tools like dumpbin/objdump and Application Verifier to diagnose real problems: delay-loading can make function addresses change at runtime, symbol resolution and casting rules are undefined across languages, plugins are built as drop-in DSOs exposing factory instances (demo finds multiple Python installs via exported instances and works), and live update/unload breaks TLS destructors because vendor no-delete flags and refcounting prevent safe unloading.
AI-written summary · about
chapters (42)
- 0:00Intro
- 0:29Dynamic Link Libraries
- 0:45Dynamic Linking vs Dynamic Loading
- 2:23MacOS Bundles
- 4:07Dynamic Loading Libraries
- 6:00Dynamic Loading APIs
- 7:21Function Pointer Declaration
- 8:35Win32 API Example
- 9:24OBG Dump
- 9:41How to use it
- 9:57Reference Count
- 11:40Use Cases
- 11:56Dependent Libraries
- 12:11Explanation of Dependent Libraries
- 13:20Explanation of Dynamic Linking
- 14:21Dynamic Linking with Delay Loading
- 14:53Crossplatform Delay Loading
- 16:44Surprise of Daily Loading
- 18:45Dynamic Loading API
- 19:07Short Answer
- 19:38A Pointer
- 20:06Dynamic Entities
- 20:38Function Interface
- 22:35Dynamic Loading
- 23:00Declaration
- 23:37Two Loadable Libraries
- 24:16API Compatible
- 24:48Example
- 27:24Plugin System
- 30:51Plugin
- 32:26Open Plugins
- 32:43Map Function
- 32:57Demo
- 33:30Questions
- 36:51Unloading
- 38:51Object Model
- 40:33Threat Local Storage
- 42:09Memory Locker
- 47:18Question
- 48:49Application Verifier
- 49:25Application Verifier UI
- 50:39Summary
related talks
01h 00mLinkers, Loaders and Shared Libraries in Windows, Linux, and C++
01h 02mC++ Shared Libraries and Where To Find Them
19mLuci: Loader-based Dynamic Software Updates for Off-the-shelf Shared Objects
52mApplication-Level Debugging and Profiling: Gaps in the Tool Ecosystem
16mMind the Gap (Between Your Code and Your Toolchain)
06mRpath and binary reuse
01h 00mThe Power and Pain of Hidden Symbols in C++ Programming
01h 02mDeep CMake for Library Authors
