2010-04-15 39 views
2

Je débogue à distance une machine Windows XP. Un de mes pilotes est chargé à l'adresse 0xb2c4c000 jusqu'à 0xb2cb9680.Windbg + IDA: calculer une adresse dans un module

Maintenant, quand j'ouvre mon chauffeur à l'IDA, le décalage que je veux mettre un point d'arrêt sur est à 00017619.

Comment puis-je répondre efficacement mon adresse IDA en windbg?

J'ai essayé l'évidence qui consiste à additionner 0xb2c4c000 + 00017619 = 0xB2C635F7 et à démonter cette adresse en utilisant la commande 'u' dans windbg. Mais les résultats ne correspondaient pas à l'assemblage dans IDA. Sur la question de côté: existe-t-il un moyen d'annuler une commande qui s'exécute dans windbg? Plusieurs fois j'ai couru des commandes qui ont pris des âges à traiter, je voudrais pouvoir les annuler si nécessaire. Donc je peux continuer à travailler.

Merci pour votre temps.

+1

au sujet de votre 2ème question - gérer ctrl-break extensions bien comportés (alt ctrl-c.) (Ce qui est la façon d'annuler une commande prend trop de temps) – deemok

+0

Quelle compensation avez-vous regardée à l'IDA? Je suppose que vous n'avez pas regardé le décalage de fichier ... vous devez jeter un coup d'œil à l'adresse de base de votre module de pilote, puis soustraire cela de l'offset. –

Répondre

1

Les versions récentes d'IDA Pro vous permettent de déboguer les pilotes de périphériques via son plugin de débogage WinDbg. Une autre alternative est que vous pouvez rebaser votre base de données pour correspondre à la base du module chargé et que vous ayez un mappage un à un entre les sessions idb et windbg.

1

Vous ajoutez incorrectement. Depuis l'IDA suppose 10000 comme point d'entrée de manière correcte à ajouter est

0xb2c4c000 + 00.007.619 (10000 est soustrait)