Question:
Comment obtenir IDA Pro Free pour changer automatiquement de segment sur retf?
Milind R
2014-01-27 03:42:17 UTC
view on stackexchange narkive permalink

Je n'ai pas pu demander à IDA pro de faire un simple démontage d'un fichier binaire plat 16 bits (chargeur de démarrage). Je ne fais que commencer, et cela semble être plus difficile que cela ne devrait l'être.

Il y a un ensemble d'instructions simples, qui font

  seg000: 7C5D push 7C0hseg000: 7C60 pop dsseg000: 7C61 suppose ds: rienseg000: 7C61 push dsseg000: 7C62 push (décalage unk_7C66 - décalage loc_7C00) seg000: 7C65 retfseg000: 7C65; -------------------------------------------------- ------------------------ seg000: 7C66 unk_7C66 db 88h; ê; DATA XREF: seg000: 7C62o  

Juste sous appuyez sur 7c0h; pop ds il dit suppose ds: rien . retf utilise en fait les valeurs de la pile pour définir le segment et le décalage. Existe-t-il un moyen d'activer manuellement une telle analyse? Existe-t-il des désassembleurs plus intelligents? J'ai du mal à suivre le flux et l'IDA ne m'aide pas du tout.

Un répondre:
Dmitry Janushkevich
2014-06-27 17:57:47 UTC
view on stackexchange narkive permalink

Toutes mes excuses pour avoir soulevé cette question après six mois; J'espère que la question est toujours d'actualité.

Si cela se produit à plusieurs endroits, je suggère d'écrire un simple script IDC pour résoudre le problème. Le script:

  • Faire correspondre la séquence d'instructions push / pop / push / push / retf;
  • Configurer une référence croisée de code entre l'instruction retf et l'adresse calculée ;
  • Placez un commentaire;
  • Marquez la destination pour l'analyse par l'IDA (facultatif, je pense que l'IDA devrait automatiquement commencer l'exploration après la création de la xréf).

Cela devrait résoudre le problème en question. Malheureusement, l'IDA n'est pas aussi intelligente que nous le souhaiterions.

Merci. J'essaierai d'écrire moi-même le script IDC; si cela ne fonctionne pas, je serai de retour sur RE.SE! :)


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...