Map explicit and hidden dependencies
| Layer | Evidence |
|---|---|
| PE imports/exports | Named DLLs, required functions and architecture. |
| Runtime/side-by-side | Manifests, VC runtimes, assemblies and activation context. |
| Dynamic loading | LoadLibrary calls, configuration paths and workflow traces. |
| COM/ActiveX | CLSID/ProgID, registered server and interface/type library. |
| Data/environment | ODBC/OLE DB providers, DSNs, PATH, working directory, registry and shares. |
Practical evidence
- Record exact loader/runtime error and process architecture.
- Inspect imports recursively and note missing exports, not only files.
- Trace module searches and actual loaded paths on working/failing machines.
- Check correct 32/64-bit registry, ODBC and COM views.
- Exercise delayed-load workflows and external configuration.
- Produce a versioned deployment manifest and clean-machine test.
A dependency scanner’s static list cannot see every runtime-computed library, COM class, driver or database provider.
Scope boundary
The broader legacy executable analysis covers behavior, resources and environment discovery. Technology-specific failures continue through VB6 DLL, COM or Delphi DLL diagnosis. See reverse engineering for wider recovery decisions.
Provide executable/install set, error, architecture, working/failing inventories, traces and expected external systems.