Optimization of struct variable assignation

Offen
#3,744 1 Kommentar 1 Reaktion 1 zugewiesene Person Auf GitHub ansehen

@rssor arbeitet bereits daran.

Seit 06.2.2023.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

Component: Core Effort: Medium Impact: Low

rdi is pointer to structure, rsi is zero.

Disassembly:

163e0af9  mov     qword [rdi+0x768], rsi  {0x0}
163e0b00  lea     rbx, [rdi+0x1d0]
163e0b07  mov     dword [rbx], esi  {0x0}

LLIL:

36 @ 163e0af9  [rdi + 0x768 {_struct_a::field_768}].q = rsi
37 @ 163e0b00  rbx = rdi + 0x1d0
38 @ 163e0b07  [rbx {_struct_a::field_1d0}].d = esi

HLIL:

163e0af9  struct_a->field_768 = 0
163e0b00  int32_t* rbx_1 = &struct_a->field_1d0
163e0c00  (rbx_1 - 0x1d0)->field_1d0 = 0

It would be nice if BN just uses struct_a->field_1d0 = 0. If necessary, I can share the BNDB via PM in slack.

Vorherrschende Sprache
C++
Sterne
1.3k
Forks
298
Ø Merge
5 T. 5 Std.
Gemergte PRs (30 T.)
19

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Vector35/binaryninja-api

Alle Issues in Vector35/binaryninja-api

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

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