microsoft / microsoft/SizeBench

Provide a "reference list" for a symbol

Open
#25 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
175
Forks
20
PR merge metrics
No merged PRs in 30d

Description

While tracking down mysterious binary bloat, I found a bunch of new .rdata in my DLL. They are all strings that look like symbols of code, but my binary has RTTI turned off.

It took a bit of digging:

  • Use the RVA from sizebench
  • Use link -dump -disasm -all -bytes thedll.dll > myfile.asm
  • Search for the RVA in the asm file to get a symbolic name
  • Search for the symbol in the asm file to find references

So two features in one:

Show the RVA symbolic name if it exists

In the view for the item, show both the gross-name and the decoded name if possible.

Provide a clickable link of functions that reference the symbol

This might be very costly to produce, but it would have made my life very easy. If the RVA is referenced in code, provide a link to the function disassembly that uses it. Bonus points for scrolling the listing and highlighting HERE IT IS for easy finding.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Reproduce the SizeBench workflow using the RVA and DLL disassembly, then trace how an item view could expose a decoded symbolic name and references; done means both links are available and the relevant disassembly location can be found easily.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
devtools, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.