"Dead Store Elimination" is unable to eliminate built-in memset functions
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- reverse-engineering
Rechercherichtung
Open the attached class_test.zip binary and reproduce the issue at 00401223 by applying Dead Store Elimination to the s variable. Inspect why the built-in memset remains as typeless var_30_51, and verify that the elimination can remove it without affecting the surrounding decompilation.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Version and Platform (required):
- Binary Ninja Version: 3.6.4802-dev, 87e27dc3
- OS: Windows
- OS Version: 11
- CPU Architecture: x86_64
Bug Description:
In the example below, s is actually a class that is being initialized but not used afterward due to compiler optimizations applied to the binary. IDA automatically removes that code block. However, I like the ability to view that code initially and then eliminate it myself, as it might helps me notice other code present in the binary.
However, when I try to eliminate it myself, this is the result I got:
Notice the typeless var_30_51 variable. So, while I successfully removed much of the unused code, this built-in memset function stubbornly remains.
Steps To Reproduce:
- Download and open attached binary
- Go to
00401223 - Try to eliminate the
svariable
Expected Behavior:
Personally, I don't care much if this code isn't automatically eliminated (although having the option would be nice 😄), but I would like the ability to remove the built-in memset with dead store elimination.
Additional Information:
class_test.zip
- 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
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Vector35/binaryninja-api
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Vector35/binaryninja-api#8540 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Vector35/binaryninja-api#8516 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
Vector35/binaryninja-api#8503 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Vector35/binaryninja-api#8446 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Vector35/binaryninja-api#8444 ·
Alle Issues in Vector35/binaryninja-api
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
gazebosim/gz-sensors#662 · 1 Kommentar ·
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
comp-datalake
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
ClickHouse/ClickHouse#121222 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
LadybirdBrowser/ladybird#12123 ·