Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[API Windows] Récupérer données d'un autre processus

5 réponses
Avatar
REMY Thomas
Bonjour,

J'ai un programme boursier très fermé sans api exterieure permettant d'y
accéder.

Ce que j'aimerait faire, c'est récupérer les données qui sont affichées sur
un controle à l'aide de son handle.

Le gros problème c'est que la classe de l'instance du controle référencé par
ce handle n'est pas un controle standard tel que ListView32, etc... il n'a
aucun nom de classe, et si il descend d'une classe standard, je ne sait pas
comment la détecter pour pouvoir envoyer les bons messages à cette instance.

J'ai vu quelques arcticles permettant d'injecter du code dans le process
étranger, permettant de capter les messages envoyés au dit-controle mais
bon...

Si l'un des lecteurs de ce message a une idée, n'hesitez pas ! je vous en
serait extremement reconnaissant, j'essaye de trouver un moyen de prendre
les données d'un controle à partir de son handle depuis très longtemps lol

Thomas

5 réponses

Avatar
Arnold McDonald \(AMcD\)
Ben c'est pas vraiment compliqué. Des techniques, il y en a des tas. Hook,
injection, rerouting, remote-subclassing, monitoring, etc. Je donne plus
d'exemple concret, j'en ai marre de me faire insulter ensuite paske je
favorise les méchants overlordselitehackers, gnagnagna.

Sinon, le basique, tu prends un outil comme spy++, tu espionnes ton contrôle
et les échanges de messages dessus. Ensuite, le plus simple, hook global sur
ce message et test sur le contrôle pour voir l'owner des messages. Et tu
garde ce qui t'interesse :-).

--
Arnold McDonald (AMcD) - Help #11 /2006

http://arnold.mcdonald.free.fr/
Avatar
Paul Bacelar
Vous allez au devant de gros problèmes de sécurité et de maintenance.

Essayez de trouver une API.
--
Paul Bacelar


"REMY Thomas" wrote in message
news:43cb924a$0$20168$
Bonjour,

J'ai un programme boursier très fermé sans api exterieure permettant d'y
accéder.

Ce que j'aimerait faire, c'est récupérer les données qui sont affichées
sur un controle à l'aide de son handle.

Le gros problème c'est que la classe de l'instance du controle référencé
par ce handle n'est pas un controle standard tel que ListView32, etc... il
n'a aucun nom de classe, et si il descend d'une classe standard, je ne
sait pas comment la détecter pour pouvoir envoyer les bons messages à
cette instance.

J'ai vu quelques arcticles permettant d'injecter du code dans le process
étranger, permettant de capter les messages envoyés au dit-controle mais
bon...

Si l'un des lecteurs de ce message a une idée, n'hesitez pas ! je vous en
serait extremement reconnaissant, j'essaye de trouver un moyen de prendre
les données d'un controle à partir de son handle depuis très longtemps lol

Thomas



Avatar
Arnold McDonald \(AMcD\)
Paul Bacelar wrote:
Vous allez au devant de gros problèmes de sécurité et de maintenance.



Pourquoi donc ? Je fais ce genre de choses quasiment tous les jours, ça ne
me pose aucun problème. Le sous-classement, le hooking, l'injection, le
monitoring, etc., cela s'apprend. Bien fait, cela ne pose aucun souci de
maintenance, sauf, peut-être que le code change suivant les OS. Mais bon, le
code portable parfait n'existant pas...

Essayez de trouver une API.



On dit une fonction d'API, une API c'est un ensemble de constantes,
variables, fonctions, etc. De toute façon, il n'en existe pas. Il lui suffit
de suivre les pistes que j'ai donné (oui, Google...), de regarder dans des
bouquins comme le Richter, ou des articles traitant de virus, malware,
patchers de jeux, etc. Évidemment, c'est un peu plus difficile que de
cliquer sur 3 boutons dans un Windev, c'est sûr...

--
Arnold McDonald (AMcD) - Help #12 /2006

http://arnold.mcdonald.free.fr/
Avatar
Christian ASTOR
REMY Thomas wrote:

Ce que j'aimerait faire, c'est récupérer les données qui sont affichées sur
un controle à l'aide de son handle.

Le gros problème c'est que la classe de l'instance du controle référencé par
ce handle n'est pas un controle standard tel que ListView32, etc... il n'a
aucun nom de classe, et si il descend d'une classe standard, je ne sait pas
comment la détecter pour pouvoir envoyer les bons messages à cette instance.



"handle", "aucun nom de classe" : incompatible (windowless sinon) (même
les Afx:xxx sont des noms de classe)
S'il dérive d'une classe standard et pas themed, RealGetWindowClass()
Et comme a dit AMcD, le 1er réflexe est Spy++...
Avatar
REMY Thomas
Merci pour le RealGetWindowClass(), Spy++ est d'un grand secours, et je
pense qu'avec l'injection de code je vais pouvoir faire quelque chose.

De toute facon pour l'api, y'en a pas et y'en aura jamais, je suis obligé de
faire à ma méthode d'injection.

Merci pour l'aide,

Thomas

"Christian ASTOR" a écrit dans le message de
news: 43cc9bb0$0$26402$
REMY Thomas wrote:

Ce que j'aimerait faire, c'est récupérer les données qui sont affichées
sur un controle à l'aide de son handle.

Le gros problème c'est que la classe de l'instance du controle référencé
par ce handle n'est pas un controle standard tel que ListView32, etc...
il n'a aucun nom de classe, et si il descend d'une classe standard, je ne
sait pas comment la détecter pour pouvoir envoyer les bons messages à
cette instance.



"handle", "aucun nom de classe" : incompatible (windowless sinon) (même
les Afx:xxx sont des noms de classe)
S'il dérive d'une classe standard et pas themed, RealGetWindowClass()
Et comme a dit AMcD, le 1er réflexe est Spy++...