2010-07-07 18 views
4

J'ai écrit une belle routine d'assembleur ARM il y a quelques années et il a parfaitement fait son travail au fil des ans sur les systèmes embarqués ARM pour lesquels il a été conçu. Maintenant, il est temps de le porter sur des systèmes non-ARM et je me demandais s'il y avait un outil ou une méthode pour récupérer ma source d'assembleur ARM originale et obtenir un fichier C rudimentaire. Je pourrais probablement le faire moi-même dans quelques jours, mais ce serait bien d'avoir un point de départ. Plus agréable encore si l'application ou la méthode était gratuite :)Décompilation d'un ARM asm retour à C

Des suggestions?

+2

Je doute que vous ayez beaucoup de chance. Les décompilateurs peuvent "tricher" un peu en sachant un peu comment un compilateur génère un assemblage à partir d'un code. Puisque votre code est écrit à la main, il est probable qu'il se comporte au moins un peu différemment de ce que l'on pourrait attendre d'un code généré par le compilateur. – SoapBox

Répondre

2

Je ne connais pas un tel outil malheureusement ... Serait gentil ...; Donc, la seule suggestion que je puisse faire est de me concentrer sur la logique.

Vous avez écrit le code d'assemblage. Donc vous savez ce que le code est supposé faire. La conversion en code C ne devrait pas être si difficile, même avec l'assemblage ARM. Je veux dire que le port C vers l'assemblage ARM peut être une tâche difficile. Mais pour l'option inverse, si vous connaissez la logique de code, et si vous savez comment écrire C, cela devrait être correct ...

Crée des structures C pour faciliter les zones de mémoire avec lesquelles vous travaillez. A propos des algorithmes, ils ne changeront pas. Il suffit de traduire ce que vous faites de l'assemblage à C, avec l'aide de quelques struct, etc ...

Désolé je peux vous donner un tel outil ...

Bonne chance:)

+0

C'est un peu ce que je pensais. Je vais laisser cette question ouverte pour un autre jour et ensuite vous donner du crédit si personne d'autre ne trouve quelque chose de mieux :) –

3

Hex -Ray Decompiler plugin pour IDA Pro peut décompiler ARM. C'est un peu cher, donc probablement pas le meilleur choix si vous avez besoin d'une routine.

+0

Ouais, trop pour ce dont j'ai besoin (ndlr). Je me suis retrouvé en train de taper la balle et de la décompiler à la main. –