Vector35 / Vector35/binaryninja-api

namespace abstraction for functions

Aperta
#3,476 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Component: API Effort: High Impact: Medium
Lingua principale
C++
Stelle
1.3k
Fork
298
Merge medio
5g 5h
PR unite (30g)
19

Descrizione

What is the feature you'd like to have?
Please provide a clear and concise description of what you want.

Ability to give function namespace. For example if I name function A::B::Func , test::hello and test::world i should be able to query new api bv.find_function_by_name("hello" , namespace::test) or `bv.find_function_by_name("Func", namespace::A::B)

This will be cool because of three things

  1. When #2693 gets implemented. it would be cool to have a folder section called namespace which shows all the grouping of same namespace
  2. It gives ability for us to add some abstraction to implement class and inheritance.
  3. ability to condense name. yes im looking at you c++
    image
    std::filesystem::__cxx11...ator<<<char, std::char_traits<char> >(std::operator<<<std::char_traits<char> >(__out: std::cout, __s: "[+] Cound't find output director…"), &var_d0)

can become alot shorter by making ui to not show std::. you get this ability now without losing info.

Is your feature request related to a problem?
Whenever I reverse program language that has OOP concept (C++, Obj-C, Swift, etc), only way to find function related to that class is by searching the class in function search like Classname:: which kills a lot of workflow. Another problem is when you are trying to create plugin or workflow that has to parse vtable and things like that.

TLDR

  1. workflow on function search
  2. ability to script instead of doing something like
    a. search for function related to class
    b. string parse the function name Classname::some_func becomes Classname and some_func
    c. do something with it.

I feel like I a lot of that pattern during work.

Are any alternative solutions acceptable?
Please provide a clear and concise description of any alternative solutions or features you've considered.

I don't think this is necessary needed. its more of pattern I see often. You can just create a parser and some kind of UI that can do this seperatly but I feel like this should be a feature in binja since OOP is everywhere :(.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Start by reviewing the public API around the proposed find_function_by_name entry point and how function names are currently represented and searched. Define how namespace-qualified names such as A::B::Func should be parsed, queried, and displayed, then validate the behavior for the C++, Objective-C, and Swift use cases described in the issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
api, reverse-engineering
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.