2009-04-27 7 views
1

J'ai désassemblé une application VB6 qui appelle une fonction dans une bibliothèque DLL, mais je ne trouve aucune référence à la DLL dans le désassemblage. Comment le code appelant peut-il charger cette DLL? Il est lié dynamiquement, car je peux observer les effets de la suppression et du remplacement de la DLL. J'utilise IDA Pro Free, l'application appelante est une application VB6 et la DLL est une simple DLL Win32 que je suspecte d'avoir été créée en C ou C++.Comment une application peut-elle charger une DLL sans son nom?

Répondre

0

Ouvrez votre application dans PE Explorer, il va vous montrer toutes les DLLs liées.

1

Qu'entendez-vous par "ne peut pas trouver de référence"? vous ne voyez pas la chaîne du nom de la DLL? vous ne voyez pas le code qui appelle la DLL?
Vous pouvez mettre un point d'arrêt dans la DLL et voir la pile d'appels qui mène à l'application VB6.

+0

Oui, je veux dire que je ne trouve pas de code qui fait référence à la DLL, c'est-à-dire que je ne vois pas la chaîne du nom de la DLL ou le code qui appelle la DLL. – ProfK

+0

à quoi ressemble la stacktrace (quand la DLL est dans un point d'arrêt)? –

+0

Je suis toujours là, je n'ai pas encore de configuration de débogage correcte. – ProfK

1

S'il s'agit d'une DLL COM, il se peut qu'elle soit recherchée via le GUID au lieu du nom.

0

Avez-vous cherché la version Unicode du nom de la DLL aussi? L'application qui charge la DLL peut être générée à l'aide de caractères larges.

Questions connexes