Vector35 / Vector35/binaryninja-api
PDB Doesn't correct apply calling convention for fastcall
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Version and Platform (required):
- Binary Ninja Version: 4.1 Stable
Bug Description:
Binary Ninja can properly figure out the difference between stdcall and fastcall in x86 windows binaries. However when debug info is applied at least in this particular case the calling convention is not correctly set.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:
- Open the
shcore.dllbinary shared internally with debug info enabled - Open the same binary again without debug info
- View
10024bd0 int32_t __stdcall InlineIsEqualGUID(struct _GUID const& arg1, struct _GUID const& arg2)on both - Observe the calling convention is correct before debug info is applied and incorrect afterward
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the mismatch with shcore.dll by comparing InlineIsEqualGUID with and without debug info enabled. Inspect the debug-info application path and calling-convention handling, then verify that applying the PDB preserves the correct fastcall convention rather than changing it to stdcall.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100