Vector35 / Vector35/binaryninja-api

BN does not use field of the structure if structure have only one field

Offen
#3,937 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Component: UI Effort: Low Impact: Low UI: Linear
Vorherrschende Sprache
C++
Sterne
1.3k
Forks
298
Ø Merge
5 T. 5 Std.
Gemergte PRs (30 T.)
19

Beschreibung

Binary Ninja Version: 3.4.4090-dev
Platform: Windows 11 Version 22H2

Structure:

struct SERVICE_DESCRIPTIONA
{
    char* lpDescription;
};

HLIL:

Info = "My description"
ChangeServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, &Info)

I expect it to be like this:

Info.lpDescription = "My description"

I've tried it with integer field, it's same.

Test code:

#include <stdio.h>

struct test {
    int sy;
};

int main() {
    struct test t;
    t.sy = 42;
    printf("%d", t.sy);

    t.sy = 40;

    return 0;
}

HLIL:

14001187c  struct test var_f4 = 0x2a
14001188d  j_printf("%d", 0x2a)
140011892  struct test var_f4_1 = 0x28

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduce the supplied C++ structure example and inspect its HLIL output, including the SERVICE_DESCRIPTIONA case and the integer-field case. The work is done when a single-field structure is represented through its named field rather than as a scalar value in HLIL.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
reverse-engineering
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.