Using Procmon Stack Traces to Trace DLL Loads and Call Sites
· 16:35 · Watch on YouTube ↗
Summary
A malware-analysis tutorial shows how Procmon stack traces distinguish an intentionally loaded DLL from dependency noise, connect DLL loads to dynamically resolved APIs, and map captured call sites in IDA.
Key points
- The demonstration uses a compiled sample program that loads URLMON with LoadLibrary and dynamically resolves URLDownloadToFile.
- Procmon's process tree and Load Image filters help isolate events for the sample executable.
- Stack traces distinguish DLL loads initiated by the sample from operating-system loader activity and dependency loads.
- The Dependencies tool displays DLL dependency trees and how API-set entries resolve to underlying libraries.
- A WS2_32.dll load is traced to a URLDownloadToFileW call, revealing an indirect connection between the library load and the sample's activity.
- IDA disassembly maps captured addresses to call sites, including LoadLibrary and the dynamically resolved API call.
Article Details
- Topics
- [00:00] Using Procmon stack traces to filter noisy capture results and identify intentional DLL loads
- [06:17] Inspecting DLL dependency trees with Dependencies and understanding API-set mappings
- [08:40] Comparing stack traces to distinguish operating-system loader activity from calls originating in the sample
- [11:45] Tracing a WS2_32.dll load to URLDownloadToFileW through its call stack
- [13:00] Using IDA to map Procmon addresses to LoadLibrary and dynamically resolved API call sites
