Wir befassen uns mit zwei zentralen Herausforderungen von Binäranalyse. Erstens ist es nicht portabel, eine Analyse für eine bestimmte CPU zu entwickeln. Stattdessen muss das Programm in eine IR übersetzt werden. Wir bieten eine DSL dar, die eingebaute Syntax für Dekodierer mitbringt und zeigen, wie wir sie in natürlich aussehenden C-Code übersetzen. Zweitens muss eine Binäranalyse skalierbar sein, was durch Modularität möglich ist. Allerdings kann Modularität zu Präzisionsverlust führen. Als Abhilfe präsentieren wir ein Verfahren, das Funktionen für bestimmte Eigenschaften der Aufrufkontexte bedarfsorientiert tabelliert.
«
Wir befassen uns mit zwei zentralen Herausforderungen von Binäranalyse. Erstens ist es nicht portabel, eine Analyse für eine bestimmte CPU zu entwickeln. Stattdessen muss das Programm in eine IR übersetzt werden. Wir bieten eine DSL dar, die eingebaute Syntax für Dekodierer mitbringt und zeigen, wie wir sie in natürlich aussehenden C-Code übersetzen. Zweitens muss eine Binäranalyse skalierbar sein, was durch Modularität möglich ist. Allerdings kann Modularität zu Präzisionsverlust führen. Als Ab...
»