Trouver l'adresse d'une méthode C++ en assembleur - C++ - Programmation
MarshPosté le 10-04-2010 à 20:33:31
Salut à tous, j'ai une question un tantinet technique. Connaissez vous une méthode générale pour trouver l'adresse d'une méthode C++ en assembleur ?
Quand la méthode n'est pas virtuelle je suppose que c'est assez simple, il suffit de posséder le nom décoré de la méthode, mais comment y faire référence ensuite en asm ?
Quand elle est virtuelle, par contre, il faut aller fouiller dans la VMT à la main, et c'est là mon autre problème : connaissez vous un moyen de dire en assembleur : "je veux récupérer l'offset correspondant à telle méthode dans la VMT" ? En inspectant le dissassembly d'un appel de méthode virtuelle sous visual studio, je vois qu'il affiche des offsets en dur, pas d'aide de ce côté donc. Je n'ai pas trouvé de réponse sur le web non plus.
Je suppose que la réponse dépend du compilateur asm utilisé, mais n'importe lequel fera l'affaire.
Des idées ?
--------------- Any sufficiently complex bug is indistinguishable from magic.
Marsh Posté le 10-04-2010 à 20:33:31
Salut à tous, j'ai une question un tantinet technique.
Connaissez vous une méthode générale pour trouver l'adresse d'une méthode C++ en assembleur ?
Quand la méthode n'est pas virtuelle je suppose que c'est assez simple, il suffit de posséder le nom décoré de la méthode, mais comment y faire référence ensuite en asm ?
Quand elle est virtuelle, par contre, il faut aller fouiller dans la VMT à la main, et c'est là mon autre problème : connaissez vous un moyen de dire en assembleur : "je veux récupérer l'offset correspondant à telle méthode dans la VMT" ? En inspectant le dissassembly d'un appel de méthode virtuelle sous visual studio, je vois qu'il affiche des offsets en dur, pas d'aide de ce côté donc. Je n'ai pas trouvé de réponse sur le web non plus.
Je suppose que la réponse dépend du compilateur asm utilisé, mais n'importe lequel fera l'affaire.
Des idées ?
---------------
Any sufficiently complex bug is indistinguishable from magic.