Bloquer l'espion spy++ [ttygrab, consolewindowclass, #32768, #32769]

Contenu du snippet

J'ai découvert ce qui suit par hasard, et il faut bien avouer que techniquement, ça apporte quelque chose de très intéressant.

Spy++ est un utilitaire très pratique pour espionner les flux de messages avec Windows et entre applications. Il permet également de détecter les styles, les threads... un logiciel très efficace en somme. Ses concurrents sont WinSight (fourni avec Delphi) et WinSpector (voir site Web du même nom).

Je propose donc ici une manière pour bloquer Spy++, la version 6.00.8168.0 étant utilisée pour les tests. Ainsi, il est fort probable de pouvoir sécuriser des transferts de données, même si dans l'absolu, c'est impossible.

A l'occasion de manipulations sur des fenêtres MS-Dos, j'ai pu constater que toute classe nommée "ttyGrab" ne pouvait pas être espionnée (cf. capture d'écran). J'en déduit donc deux principes:

1) En profitant de la syntaxe de Delphi (càd que les types sont précédés de la lettre "T"), nommez simplement votre fenêtre principale "tyGrab" avec un seul "T": propriété NAME. Ainsi, votre fenêtre est déclarée en tant que classe TNomDeLaFenêtre, soit TtyGrab.

L'expérience montre que la fenêtre n'est pas espionnable (cf. capture d'écran). En revanche, si on place un TEdit dans la fenêtre, lui est espionnable... Alors à quoi sert mon idée ?

2) Déjà, c'est la fenêtre qu'on bloque, pas ce qu'elle contient. Pour résoudre ce détail, développons un composant sur le modèle suivant :

unit MsDos;
interface
uses Classes, Controls;
type
ttyGrab = class(TWinControl) //TCustomControl si vous voulez ensuite dessiner dedans
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Win32', [ttyGrab]);
end;
end.

J'ai deux remarques.

Premièrement: le composant est d'une basicité effrayante. Je voulais simplement montrer le squelette de base, car rien n'empêche ensuite de construire des choses dedans. Ce dedans devant être nécessaire des composants non fenêtrés, càd TGraphicControl par exemple.

Deuxièmement: on est a priori limité en nombre de classes. Mais en fait, la technique marche également sur trois autres classes: "ConsoleWindowClass" (console), "#32768" et "#32769" (tous deux étant relatifs au bureau général de Windows). Je pense qu'il devrait y en avoir d'autres...

Au final, c'est Spy++ qui se bloque lui-même... sûrement pour une bonne raison ! Pour nous en tout cas, c'est déjà pas mal.

Conclusion :


Vous pouvez toujours aller visiter http://altert.family.free.fr/

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.