Frage

Kennt jemand einen Disassembler dafür? ARMV4i ausführbare Dateien und DLLs?

Ich habe eine Plug-in-DLL, mit der ich sehr selten schreibe data abort (<5 % der Zeit), die ich auf eine bestimmte Funktion eingegrenzt habe (über Dumpbin und die von der Adresse ausgegebene Adresse). data abort).Allerdings handelt es sich um eine ziemlich große Funktion und ich würde sie gerne etwas eingrenzen.Ich weiß, dass es in einem passiert memset() Aufruf, aber diese spezielle Funktion hat ungefähr 35 davon, also hatte ich gehofft, dass ich durch einen Blick auf die Demontage herausfinden könnte, wo das Problem tatsächlich liegt.

War es hilfreich?

Lösung

IDA Pro wird auf jeden Fall die ARM-Demontage durchführen.Und sie (Datarescue) haben mir einmal gegen 23 Uhr Ortszeit eine Lizenz besorgt, also empfehle ich sie gerne weiter ...

Ich sehe aus http://www.datarescue.com/idabase/ dass es einige Umstrukturierungen im Unternehmen gegeben hat, aber ich denke, es ist immer noch ein gutes Produkt.

Hier ist der Link zum neuen Verlag: http://www.hex-rays.com/idapro/

Andere Tipps

Ich glaube das IDA Pro werde tun, was du willst.Es wurde im O'Reilly Security Warrior-Buch erwähnt und ich habe gesehen, dass es in Windows Mobile-Entwicklerforen empfohlen wurde.

Fasziniert ist ein Disassembler und Assembler für Windows Mobile / Pocket PC / Win CE (für ARM-CPUs).

Sie können sich auch BDASM ansehen, einen Shareware-Disassembler – spätere Versionen verfügen über ARM-Plugins.Die Website scheint nicht erreichbar zu sein, aber wenn Sie danach suchen, finden Sie die Shareware-Distribution.

Der Quellcode für den einfachen ARM-Disassembler, ENTWAFFNEN, ist ebenfalls verfügbar.

Die Binutils (Linux-Compiler-Tools) objdump können zur Disassemblierung verwendet werden: „objdump -b binär -m arm7tdmi -D Dateiname“

-Adam

Vor ein paar Jahren habe ich einen ARM-Disassembler gefunden, den ich bei einigen eingebetteten Arbeiten verwendet habe.Allerdings erinnere ich mich nicht an den Namen – obwohl ich denke, dass es Teil eines größeren Pakets wie eines Emulators oder so etwas war.

Könnten Sie in Ihrem Fall Ihren Compiler bitten, eine Assemblyliste des kompilierten Codes zu erstellen?Das könnte Ihnen helfen, etwas Spielraum zu schaffen.

Andernfalls könnten Sie Ihre Funktion in eine oder mehrere neue Funktionen aufteilen, wenn Sie nur den Stack-Trace erhalten.Teilen Sie die neue Funktion dann wieder in eine oder mehrere auf.Dies ist die bewährte „Teile und herrsche“-Methode.Und wenn Sie 35 Aufrufe von memset() in einer Funktion haben, könnte das auch aus Design-Sicht eine gute Idee sein!

Aktualisieren:Ich habe das Paket gefunden, das ich verwendet habe: ARMphetamin.Es hat für den ARM9-Code funktioniert, den ich entwickelt habe, aber es sieht so aus, als wäre er schon seit einiger Zeit nicht mehr aktualisiert worden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top