2010-10-22 22 views
2

Voici mon problème. J'essaie d'apprendre à faire du débogage dans l'assemblage avec OllyDBG. Habituellement, quand une chaîne est littéralement dans l'application, je peux trouver quelque chose qui pointe vers elle, cependant, cette chaîne provient du fichier de ressources (lors de la programmation WinAPI, une ressource, .rc, est utilisée). Par conséquent, étant donné qu'il est dans les données de ressources, comment puis-je savoir où cette chaîne est appelée dans le désassemblage?Mise au point de la chaîne à partir de la ressource avec l'assembly

Merci

Répondre

2

Put point d'arrêt pour LoadStringW et attendre cette chaîne. (Bien sûr, le BP conditionnel est préférable à la pression répétée [F9])

Mais il vaut mieux d'abord effectuer une analyse statique (désassembler le fichier), puis utiliser OllyDbg pour le déboguer, si nécessaire. Par exemple, pendant l'analyse statique, vous pouvez trouver tous les appels LoadStringW, et trouver qui charge la chaîne par son ID.

1

Vous devez vérifier la table de chaînes à l'aide d'un éditeur de ressources (par exemple ResEdit) et trouver l'ID de la chaîne que vous recherchez. Ensuite, vous devriez mettre la pause sur les appels de fonction LoadString et vérifier quel ID il charge.