Question pas simple: comment coder un spyware.
Je vais tenter (sans savoir si le message sera censuré) d'apporter des éléments de réponse, sans donner trop de détails, mais aussi sans être trop vague.
Dans mon jeune temps, on commençait l'apprentissage de la sécurité informatique par coder un cheval de Troie soi-même. Cela permettait d'apprendre tout ce qu'il fallait en s'amusant.
Le principe des chevaux de Troie étant le même que pour les spywares: collecter des infos sur le poste "client" et les passer à un "serveur", avec pour certains chevaux de Troie des méthodes de contrôle à distance en plus.
La programmation est assez simple et doit répondre à ce quelques critères:
-Partie I: le corps du programme. Quelles fonctionnalités et quels moyens de mise en oeuvre?
*chercher sur le ternet les moyens d'accès à la base de registre: pour piquer les mots de passe enregistrés, l'historique de navigation sur Internet etc...
*chercher comment programmer un keylogger, un révélateur de mots de passe, etc... Ces méthodes sont toujours d'actualité pour certains malwares.
*en fonction de ce que tu sais déjà faire et du matériel collecté, il faut choisir le language de programmation (en général Delphi ou C++).
*l'essentiel du code consiste en l'installation (déclenchement au démarrage), le vol ou surveillance et l'envoi des infos.
Partie II: les derniers détails.
*La collecte des informations étant en principe règlée, il faut maintenant organiser la "fuite". Le plus simple restant de créer une backdoor. En gros il faut créer un "socket" de connexion et transmettre les infos soit sur demande, soit automatiquement (le plus souvent). En gros, c'est un serveur FTP plus ou moins évolué et automatisé.
L'utilisation de pare-feu applicatif, d'antivirus et d'outils de surveillance de plus en plus répandue reste le gros problème. Mais si c'était si simple, les companies de spywares n'offriraient pas des ponts d'or aux programmeurs de tels engins.
L'idée de regarder vers les chevaux de Troie reste ici d'autant plus d'actualité, que les créateurs de chevaux de Troie rivalisent d'imagination et de trésors d'ingéniosité pour ouvrir une porte dérobée. Pas de conseil là dessus, la lecture des "advisories" est la plus belle source d'inspiration.
*Il faut maintenant penser à installer le programme pour qu'il se lance au démarrage de Windows (chercher le fichier "auto start methods"). C'est le point faible, là où la détection reste simple et facile aux utilisateurs avancés de Windows.
*Il faut aussi que le programme travaille en "tâche de fond", tout en restant discret: il faut donc qu'il soit indétectable (stealth process) et ne s'affiche pas dans la liste des processus en cours. Cela est assez facile.
*il faut enfin tester le programme final pour qu'il ne fasse pas hurler les antivirus, optimiser le code, le crypter ou le hex-éditer le cas échéant. C'est le travail de peaufinage qui coûte le plus de temps.
L'essentiel du travail est fait, le spyware est normalement prêt à l'emploi. Un petit tour sur les forums de développeurs permet de résoudre les quelques questions techniques qui se posent.
À ce stade tu n'as fait que réinventer la roue et sûrement en moins bien... Mais les connaissances acquises lors de ce projet de dévelopement te seront très précieuses. Ayant bien compris que le but étant de sécuriser et non-infecter, la compréhension du travail de programmation de malwares apporte des éclaircissements sur les points faibles d'une telle entreprise:
-le démarrage automatique: réclame très souvent l'écriture dans la base de registre et en général il est facile de situer le lancement du spyware.
-la transmission des données: via une connexion http est le plus discret. Restent beaucoup d'autres méthodes, comme l'envoi par mail, par connexion directe de poste à poste, etc...
-le processus de "pillage" des données: plus ou moins discret, il reste néanmoins facile de détecter un programme trop curieux. Détection heuristique (des intentions du programme).
Pour bien contrer la mise en place de tels programmes, il est également conseillé de connaître les bases du cracking et en particulier le "low-level debugging", surtout les "calls" de lecture/écriture de fichiers sur le disque et de lecture/écriture de la base de registre. Un tutoriel sur l'excellent SoftIce est un bon début.
Pour résumer ce qu'il te faut chercher et éventuellement apprendre (tu te présentes comme codeur, j'imagine que certaines de ces bases sont acquises

:
-quelques exemple de codes de chevaux de Troie, programmation de sockets, de démarrage automatique et de programmes "furtifs". Les bases quoi!
-un bon tutoriel sur base de registre Windows, toujours bon à connaître de manière générale.
-le guide de référence des API's windows (il existe en anglais, mais pour déboguer c'est suffisant).
-une bonne connaissance au moins du C/C++ ou Delphi (plus de VB à ce niveau) et de l'assembleur sur processeur x86
-ne pas être totalement manchot avec un hex-éditeur et un débogueur de type Softice ou Ollydbg.
-connaître le principe des failles "à la mode" sous Windows, s'abonner aux listes de sécurité et visiter les sites fournissant des "proofs of concept" des trous de Windows.
-visiter les sites d'éditeurs de logiciels antivirus ou antispyware, ils ont des bases de données avec l'analyse de beaucoup de ce type de programmes.
-reste enfin à étudier les méthodes comme les plug-ins Active X d'Internet Exlorer hostiles, les processus lancés via d'autres programmes, les languages scripts Windows (VBA/VBS/batch) qui sont aussi largement suffisants pour 80% du travail à faire.
Pour finir et pour la beauté du métier de la sécurité informatique:
-lire le code du Worm Iloveyou. Juste pour voir comment le premier "hit" mondial a pu faire autant de dégâts en quelques lignes seulement.
-voir le code du cheval de Troie "GodMessage": c'est un trésor de précision et de combinaison de méthodes: exploitation d'une faille JavaScript permettant de charger un webdownloader, qui en loucedé téléchargeait une backdoor au choix (the Thing à la base, je crois). Tout y est! Et bien fait en plus! Un exemple type d'opportunisme et de codage parfait. (Je deviens un peu lyrique, mais même venant du "côté obscure", ce n'est que justice de rendre hommage aux programmeurs de génie).
-à l'opposé, l'analyse même rapide de DIRT (commande des fédéraux aux USA pour surveiller les méchants) montre le type même de ce qu'il ne faut pas faire: programme titanesque, manque de discrétion, style et fonctionnalités surprenants de lourdeur. En plus il prend les gens pour des cons... Que du bonheur!
-analyser des "vieux de la vieille" comme Subseven ou BackOrifice est aussi intéressant pour la culture malware.
J'ai essayé de donner une méthode de base, je ne mets pas exprès de liens directs, mais une bonne recherche de 15 min sur google n'a jamais fait de mal à personne.
Je rappelle qu'il n'est pas bien de se faire voyeur sur les ordis des autres, ceci n'est évidemment expliqué qu'à but éducatif et pour faire avancer la sécurité etc...