Mit Binary Ninja auf Analysetour

Hohe Kampfkunst

Die Analyse von Binärprogrammen gilt als die hohe Kunst der Aufarbeitung von Cyberangriffen und Schadsoftware-Befall. Für das als Reverse Engineering bezeichnete Verfahren gibt es aber auch andere Gründe. Der Security-Tipp in diesem Monat zeigt Ihnen, wie Sie mit "Binary Ninja" Binärprogramme statisch analysieren.
Als zentrale Informationsablage sind sie unabdingbar: Datenbanken. Sie kommen in den unterschiedlichsten Ausprägungen daher und wollen freilich sorgsam ... (mehr)

Wenn Sie genau wissen möchten, welche Operationen ein Programm auf Ihrem Computer tatsächlich ausführt, gibt es mehrere Möglichkeiten. Eine offensichtlich einfache ist, in den zur Verfügung stehenden Quellcode der Datei zu schauen. Bei Skriptsprachen wie Python oder quelloffener Software ist das ohne weiteres möglich. Wenn Programme vor der Auslieferung jedoch in Bytecode übersetzt werden, ist die Arbeit eines Analysten etwas komplizierter.

Beim Übersetzen von Code in ein lauffähiges Programm sind verschiedene Werkzeuge involviert, in den meisten Fällen mindestens ein Compiler (Übersetzer) und ein Linker (oder Binder). Ausgehend von den Befehlen einer Programmiersprache erstellt der Compiler die Maschinensprache. Dabei optimiert er die Ausführungsreihenfolge beziehungsweise einzelne Operationen je nach Konfiguration mal mehr und mal weniger, was am Ende durchaus große Auswirkungen auf den resultierenden Maschinencode haben kann. Beim Linken werden genutzte Bibliotheken statisch oder dynamisch mit dem Programm verbunden. Beim statischen Linken wird der verwendete Code aus den Bibliotheken dem resultierenden Programm hinzugefügt. Werden Bibliotheken dynamisch gelinkt, liegt der Code in anderen Dateien und wird erst beim Start des Programms in den Arbeitsspeicher des Prozesses eingebunden.

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023