Trouver Les Paramètres De La Fonction De La Dll
Comment puis-je trouver les paramètres d'un sans-papiers fonction de Dll?
J'ai cherché partout sur internet et finit par trouver un moyen: il s'agit décorées fonctions. Cependant, je ne peux pas trouver un moyen d'obtenir ces.
Toute aide serait appréciée.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de démonter l'application à l'aide, comme Paul l'a noté, quelque chose comme IDA Pro (ou la version gratuite de de même).
Une bonne introduction ressource est le Wikibook, x86 Démontage. Plus précisément, jetez un oeil à la section sur les les fonctions et la pile d'images. En déduire les paramètres de la fonction peut être simple pour les fonctions simples de prendre un peu de paramètres de type standard.
Probablement la meilleure façon de commencer avec ce genre de chose est de créer un petit test de DLL, créer quelques fonctions avec des paramètres connus, et puis démonter votre fichier DLL pour voir les modèles. Apprendre le démontage de vos propres fonctions (pour lequel vous avez le code source et de savoir la signature complète) plutôt que de plonger dans le démontage tiers des trucs.
J'ai fait une assez approfondie réponse ici, ReactOS est votre meilleur pari, car il semble de nouveau, tout le monde ici est un peu hors de la base.
Je fortement décourager de tenter de démonter le système DLL.
Un BEAUCOUP plus adventagious (et je ne crois pas discuté jusqu'à présent à partir de l'apparence des choses), la technique consiste à énumérer le contenu de l'APB de l'.
Fichiers PDB sont les symboles de débogage comme vous le savez peut-être, cependant, Microsoft est nécessaire, en raison de l'action de l'anti-trust, les affaires de la cour, afin de libérer de grands volumes, d'ailleurs-de l'information documentaire.
Parfaitement fiables, faciles à utiliser et mis à jour des informations pour le massif du montant de l'API Windows est seulement documentés à l'aide de fichier PDB est. La convention d'appel, l'argument de comptage et même argument, les types et les noms sont documentés leur (cependant pas les détails concernant l'utilisation des cours:).
Révision de la lmi, SDK, dia2dump est un bon exemple distribué avec Visual Studio, de poursuivre l'enquête, il fournit également une solution pour undecorate de la fonction, pour parler précisément à votre question.
Aussi, kernel32 fournit UnDecorateSymbolName, donc vous pouvez l'utiliser aussi, si vous ne voulez pas de lien pour le débogage bibliothèques du sdk.
La seule façon de le faire est par le démontage de la fonction et de voir comment il utilise les registres et de la pile. IDA Pro est le meilleur outil pour ce faire, mais ce n'est pas quelque chose qui est trivial.
Est-il COM Dll? Si c'est une Dll COM, puis de l'enregistrer, utilisez OLE vue de connaître les Interafaces et les paramètres.
Tout d'abord, téléchargez Dependency Walker et ouvrir votre fichier DLL dans il. Vous verrez les symboles exportés et importés. Si votre nom de fonction ressemble _MyFunction: c'est le "C" de style (non décoré) et vous n'avez pas trop de choses à faire avec elle (peut-être démonter comme l'a dit avant)
Si c'est plus comme ?_MyFunction@LoNgSetOfSome@_StrangeChAracTers c'est le C++, décorés avec goût et vous pouvez essayer de "undecorate" à l'aide de {officieux} info de ici
Si la seule information que vous avez est la nudité nom de la fonction, puis, malheureusement, il n'est pas possible d'en déduire les paramètres de la fonction de cela seul.
Si vous êtes doué avec le montage, il pourrait être possible de démonter la machine, le code de la fonction et de la recréer. Mais qui est assez difficile à faire pour tous, mais le plus simple des fonctions.
Je ne suis pas vraiment familier avec le format PE que Windows utilise, mais je suis assez sûr il n'y a pas de véritable moyen facile de le faire. Si le symbole de la table n'a pas été enlevée, vous pourriez être en mesure de trouver des informations (pas sûr de la façon dont Windows stocke les informations de débogage dans PE), mais il est presque certainement ne serait pas vous aider avec des types de paramètres. La meilleure chose à faire est de charger la DLL dans un débogueur et d'expérimenter avec elle... surveiller la crue de la mémoire sur la pile d'images, envoyer des différents types de variables, etc.
Même si vous trouvez un bon de ressources sur les informations de débogage dans un fichier PE, il ya presque certainement ne serez pas toute l'information pour une fonction privée.