Firmware Reverse Engineering
-
Hallo,
ich habe für meine Festplatte eine neue Firmware(binary) und würde mir diese gerne genauer anssehen. IDA Pro sowie Ollydbg fressen das Ding nicht. Wie komme ich an den ASM Code ran? Jemand eine Ahnung oder eine Strategie um das Teil mal zu zerlegen?
-
Mit einem 0815-Debugger fuer x86 kommst du da ganz sicher nicht weiter.
Da du davon ausgehen kannst, dass der Hersteller seine Toolchain nicht rausruecken wird, musst du dir selbst helfen... und das wird ohne jegliche Hinweise ziemlich kompliziert. Mehr als grobe Anhaltspunkte kann ich dir auch nicht liefern.Zuerst muesstest du grob herausfinden, wie das Dateiformat, in der die Firmware steckt, aussieht. Ist das ein flat binary format oder gibt es header? Ist das Image noch komprimiert oder obfuskiert?
Da kann eine grobe Analyse mit einem Hex-Editor helfen - zB. kannst du nach auffaelligen Mustern, die auf einen Header hindeuten suchen, oder nach lesbaren Debug-Strings, wobei letzteres auf ein direktes ROM-Dump hindeuten wuerde. Sonst bei Update-Tools ansetzen.
Wenn du dann ziemlich sicher den echten Programmcode vor die hast, evtl. auch schon eine Ahnung fuer den Eintrittspunkt, kannst du versuchen herauszufinden, was fuer ein Prozessorkern in dem SOC der Festplatte steckt.
Evtl. hilft dir deine Lieblingssuchmaschine mit der Bezeichnung des Controllers oder mit viel Glueck der Hersteller weiter.
Falls nicht, bleibt nur probieren und schauen, welcher Disassembler fuer eine bestimmte Architektur dir halbwegs sinnvollen Code ausgibt. AFAIK ist die Zahl der tatsaechlich verwendeten Prozessorarchitekturen in diesen Systemen relativ begrenzt. MIPS ist zB. vielleicht nicht ganz unwahrscheinlich.
-
es müsste sich mit ein wenig online recherche (sp?) sicher rausfinden lassen, was für ein prozi dadrin steckt. dann biste schonmal ein gutes stück weiter. irgendwelche nummern stehen auf dem ding sicher drauf. und dann frisst IDA es bestimmt, die frisst doch eigtl alles