Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé Cauwelier
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
-- Hervé Cauwelier http://www.oursours.net/
Salut,
je me rend compte que je pose beaucoups de questions sur le forum, mais
ce langage me plais tellement que je veux en savoir le plus possible.
ma question.
Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser
ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python
par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal
documenté (!), tu peux utiliser la fonction dir() pour introspecter son
contenu.
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
-- Hervé Cauwelier http://www.oursours.net/
Andréï
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas les fichiers sources.
Salut,
je me rend compte que je pose beaucoups de questions sur le forum, mais ce
langage me plais tellement que je veux en savoir le plus possible.
ma question.
Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser
ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python
par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté
(!), tu peux utiliser la fonction dir() pour introspecter son contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas
les fichiers sources.
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas les fichiers sources.
nico
Andréï wrote:
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas les fichiers sources.
ca ne t'empeches pas de faire un wrapper...
-- nico
Andréï wrote:
Salut,
je me rend compte que je pose beaucoups de questions sur le forum, mais
ce langage me plais tellement que je veux en savoir le plus possible.
ma question.
Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser
ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python
par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal
documenté (!), tu peux utiliser la fonction dir() pour introspecter son
contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas
les fichiers sources.
Salut, je me rend compte que je pose beaucoups de questions sur le forum, mais ce langage me plais tellement que je veux en savoir le plus possible.
ma question. Est il possible de lire l'interface d'une dll afin de pouvoir l'utiliser ultérieurement depuis python?
Tu ne peux pas utiliser les DLL tel quel, il faut un « wrapper » Python par-dessus, souvent écrit en C. Mais s'il existe, et s'il est mal documenté (!), tu peux utiliser la fonction dir() pour introspecter son contenu.
les dll que je voudrais attaquer sont des dll de windev et je n'ai pas les fichiers sources.
ca ne t'empeches pas de faire un wrapper...
-- nico
Do Re Mi chel La Si Do
Bonsoir !
Voici un petit exemple d'utilisation de ctypes, pour appeler une DLL :
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi, pouvoir boucler l'information : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
@-salutations
Michel Claveau
Bonsoir !
Voici un petit exemple d'utilisation de ctypes, pour appeler une DLL :
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi,
pouvoir boucler l'information :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi, pouvoir boucler l'information : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
@-salutations
Michel Claveau
Andréï
Bonsoir !
Voici un petit exemple d'utilisation de ctypes, pour appeler une DLL :
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi, pouvoir boucler l'information : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
@-salutations
Michel Claveau bonsoir,
Le prob par rapport à ton exemple c'est que tu connais l'interface de la dll. Je voudrais justement connaitre l'interface d'une dll (méthodes, propriétes, ...) bye
Bonsoir !
Voici un petit exemple d'utilisation de ctypes, pour appeler une DLL :
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi,
pouvoir boucler l'information :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
@-salutations
Michel Claveau
bonsoir,
Le prob par rapport à ton exemple c'est que tu connais l'interface de
la dll. Je voudrais justement connaitre l'interface d'une dll
(méthodes, propriétes, ...)
bye
Et voici un lien chez MS, pour avoir des infos sur MessageBoxW ; et, ainsi, pouvoir boucler l'information : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconcharsetobjectfield.asp
@-salutations
Michel Claveau bonsoir,
Le prob par rapport à ton exemple c'est que tu connais l'interface de la dll. Je voudrais justement connaitre l'interface d'une dll (méthodes, propriétes, ...) bye
Do Re Mi chel La Si Do
Re
Le problème, c'est qu'il existe de multiples formes de DLL. Si une DLL recouvre un serveur COM/OLE-automation, il est possible de retrouver les fonctions, paramètres et propriétés. Dans d'autres cas, on ne verra rien du tout.
Sinon, tu peux essayer : OLE-Viewer (gratuit), PE/Explorer-DLL-Export-Viewer (payant), ICON viewer (pour les icones), DLL explorer (payant) ; ou regarder ce site : http://www.windll.com/
@-salutations
Michel Claveau
Re
Le problème, c'est qu'il existe de multiples formes de DLL. Si une DLL
recouvre un serveur COM/OLE-automation, il est possible de retrouver les
fonctions, paramètres et propriétés. Dans d'autres cas, on ne verra rien du
tout.
Sinon, tu peux essayer : OLE-Viewer (gratuit),
PE/Explorer-DLL-Export-Viewer (payant), ICON viewer (pour les icones), DLL
explorer (payant) ; ou regarder ce site : http://www.windll.com/
Le problème, c'est qu'il existe de multiples formes de DLL. Si une DLL recouvre un serveur COM/OLE-automation, il est possible de retrouver les fonctions, paramètres et propriétés. Dans d'autres cas, on ne verra rien du tout.
Sinon, tu peux essayer : OLE-Viewer (gratuit), PE/Explorer-DLL-Export-Viewer (payant), ICON viewer (pour les icones), DLL explorer (payant) ; ou regarder ce site : http://www.windll.com/
@-salutations
Michel Claveau
Amaury
Le prob par rapport à ton exemple c'est que tu connais l'interface de la dll. Je voudrais justement connaitre l'interface d'une dll (méthodes, propriétes, ...) bye
Il est possible de connaître l'interface d'une dll, c'est-à-dire les fonctions et les variables qu'elle exporte. Depends.exe, par exemple, fait cela très bien : http://www.dependencywalker.com/
Mais ça ne suffira pas pour utiliser la DLL: - pour les fonctions qui utilisent la convention "C", on n'a que le nom de la fonction, sans les paramètres. - pour les fonctions de type "C++", le nom listé par dependencywalker est "décoré" avec le type des arguments (du genre @@@4ABDDE42), mais ce n'est pas du tout évident de décoder, et en plus ça dépend du compilateur utilisé, et en plus pour pouvoir l'appeler il faut vraiment utiliser le fichier .h officiel, et en plus il faut utiliser les mêmes options...
Bref, sans la doc et les .h, c'est presque mission impossible.
Pour importer ses modules dynamiques (ex: _socket.pyd), Python a choisi la facilité : la dll exporte une fonction, dont le nom dérive de celui du module, et qui ne prend pas d'argument (ex: init_socket() ).
Bonne chance quand même...
-- Amaury
Le prob par rapport à ton exemple c'est que tu connais l'interface de la
dll. Je voudrais justement connaitre l'interface d'une dll (méthodes,
propriétes, ...)
bye
Il est possible de connaître l'interface d'une dll, c'est-à-dire les
fonctions et les variables qu'elle exporte.
Depends.exe, par exemple, fait cela très bien :
http://www.dependencywalker.com/
Mais ça ne suffira pas pour utiliser la DLL:
- pour les fonctions qui utilisent la convention "C", on n'a que le nom
de la fonction, sans les paramètres.
- pour les fonctions de type "C++", le nom listé par dependencywalker
est "décoré" avec le type des arguments (du genre
@@Window@SetTitle@4ABDDE42), mais ce n'est pas du tout évident de
décoder, et en plus ça dépend du compilateur utilisé, et en plus pour
pouvoir l'appeler il faut vraiment utiliser le fichier .h officiel, et
en plus il faut utiliser les mêmes options...
Bref, sans la doc et les .h, c'est presque mission impossible.
Pour importer ses modules dynamiques (ex: _socket.pyd), Python a choisi
la facilité : la dll exporte une fonction, dont le nom dérive de celui
du module, et qui ne prend pas d'argument (ex: init_socket() ).
Le prob par rapport à ton exemple c'est que tu connais l'interface de la dll. Je voudrais justement connaitre l'interface d'une dll (méthodes, propriétes, ...) bye
Il est possible de connaître l'interface d'une dll, c'est-à-dire les fonctions et les variables qu'elle exporte. Depends.exe, par exemple, fait cela très bien : http://www.dependencywalker.com/
Mais ça ne suffira pas pour utiliser la DLL: - pour les fonctions qui utilisent la convention "C", on n'a que le nom de la fonction, sans les paramètres. - pour les fonctions de type "C++", le nom listé par dependencywalker est "décoré" avec le type des arguments (du genre @@@4ABDDE42), mais ce n'est pas du tout évident de décoder, et en plus ça dépend du compilateur utilisé, et en plus pour pouvoir l'appeler il faut vraiment utiliser le fichier .h officiel, et en plus il faut utiliser les mêmes options...
Bref, sans la doc et les .h, c'est presque mission impossible.
Pour importer ses modules dynamiques (ex: _socket.pyd), Python a choisi la facilité : la dll exporte une fonction, dont le nom dérive de celui du module, et qui ne prend pas d'argument (ex: init_socket() ).