Question

Quelqu'un connaît-il un désassembleur pour ARMV4i exécutables et DLL ?

J'ai une DLL de plug-in que j'écris avec un fichier très rare data abort (<5 % du temps) que j'ai limité à une fonction spécifique (via dumpbin et l'adresse sortie par le data abort).Cependant, il s’agit d’une fonction assez vaste et j’aimerais la préciser un peu.Je sais que ça se passe dans un memset() appel, mais cette fonction particulière en a environ 35, donc j'espérais qu'en regardant le démontage, je pourrais comprendre où se situe réellement le problème.

Était-ce utile?

La solution

IDA Pro effectuera certainement le démontage d'ARM.Et ils (Datarescue) m'ont déjà arrangé une licence vers 23 heures, heure locale, donc j'aime les recommander...

je vois de http://www.datarescue.com/idabase/ qu'il y a eu une certaine réorganisation de l'entreprise, mais je suppose que c'est toujours un bon produit.

Voici le lien vers le nouvel éditeur : http://www.hex-rays.com/idapro/

Autres conseils

Je crois que IDA Pro tu feras ce que tu veux.Il a été mentionné dans le livre O'Reilly Security Warrior et je l'ai vu recommandé sur les forums de développeurs Windows Mobile.

Charmé est un désassembleur et un désassembleur Windows Mobile / Pocket PC / Win CE (pour les processeurs ARM)

Vous pouvez également consulter BDASM, un désassembleur de shareware - les versions ultérieures ont des plugins ARM.Le site Web semble être en panne, mais si vous le recherchez, vous trouverez la distribution shareware.

Le code source du simple désassembleur ARM, DÉSARMER, est également disponible.

L'objdump de binutils (outils du compilateur Linux) peut être utilisé pour produire un désassemblage, "objdump -b binaire -m arm7tdmi -D nom_fichier"

-Adam

Il y a quelques années, j'ai trouvé un désassembleur ARM que j'utilisais lors d'un travail intégré.Cependant, je ne me souviens pas de son nom – même si je pense qu'il faisait partie d'un package plus vaste comme un émulateur ou quelque chose du genre.

Dans votre cas, pourriez-vous demander à votre compilateur de générer une liste d'assemblys du code compilé ?Cela pourrait vous donner une certaine marge de manœuvre.

À défaut, vous pouvez diviser votre fonction en une ou plusieurs nouvelles fonctions, si tout ce que vous pouvez obtenir est la trace de la pile.Divisez ensuite la nouvelle fonction en une ou plusieurs à nouveau.Il s’agit de la méthode éprouvée « diviser pour mieux régner ».Et si vous avez 35 appels à memset() dans une fonction, cela pourrait également être une bonne idée du point de vue de la conception !

Mise à jour:J'ai trouvé le package que j'ai utilisé : ARMphétamine.Cela a fonctionné pour le code ARM9 que je développais, mais il semble qu'il n'ait pas été mis à jour depuis un certain temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top