Vector35 / Vector35/binaryninja-api

Tags don't associate correctly with ArchitectureHook after save and load

Open
#3,021 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: API Effort: Trivial Impact: Low
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: stable & dev
  • OS: OSX at least
  • OS Version: Catalina

Bug Description:
I've only tested this in c++ but I assume it exists in python as well.
(function instance)->CreateUserAddressTag() will accept an ArchitectureHook as the first argument and it works as expected.

When the database is saved and reopened, the tag(s) will not show up in (function instance)->GetAdressTagsOfType() if you give the ArchitectureHook as the first argument. The tag(s) still exist but they seem to be associated with the base architecture instead of the ArchitectureHook.

Expected Behavior:
Either don't allow an ArchitectureHook to be passed in or have it use the base Architecture under the hood automatically.

Contributor guide

No contributing guide indexed for this repository

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

Reproduce the behavior with CreateUserAddressTag() and GetAdressTagsOfType() using an ArchitectureHook, then save and reopen the database to confirm the association changes. Trace how ArchitectureHook and the base architecture are represented during tag persistence; done means the hook is rejected or tags are consistently resolved through the base architecture after reload.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api, reverse-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.