Skip to content

Choose a tag to compare

@dragokas dragokas released this 17 Sep 10:30
Add symbol-server download, simple reports, and version banner

- PE input detection now uses MZ/PE magic instead of file extension, so
  .ocx/.sys/etc. (not just .exe/.dll) go through the binary-loading path.
- New PdbSymbolDownloader class: for a PE input, locates and downloads its
  matching PDB from a symbol server before falling back to DIA's own
  loadDataForExe(). Tries, in order, an optional -srv= override, every
  srv*/symsrv* entry in _NT_SYMBOL_PATH, then the default Microsoft public
  symbol server; logs each URL it tries. Reuses an already-present PDB next
  to ObfSymbolsEx.exe or the input file if its GUID (parsed directly from
  the PDB's MSF header) matches -- Age is deliberately not compared, since
  it's an MSF rewrite counter, not a timestamp, and commonly differs for an
  otherwise-correct symbol-server PDB.
- New _simple_sort_by_class.sym / _simple_sort_by_name.sym reports: a bare
  "Name(Signature) -> ReturnType" line per symbol, sorted by the
  fully-qualified name or by just the bare method name respectively; both
  still honor -fc/-fm filtering.
- Console banner now prints the tool's own version (Version.h, 1.2).

README.md, UNIT_TESTS.md, and unit-tests.ps1 (14 new assertions) updated
to match. Full 74-test suite passes.