2008-10-07 7 views
0

Je voudrais savoir où commencer, ou comment est-ce possible de se connecter, ou patcher le noyau Windows (XP et plus). Je suis particulièrement intéressé par des logiciels comme McAfee Entercept, ou certains scanners antivirus qui corrigent le noyau. Je voudrais savoir comment il est possible pour un démarrage de créer un logiciel qui ajoute des fonctionnalités au noyau (je suis conscient de KPP, et qu'il peut éventuellement être contourné), et toutes les remises de faire cela. Je n'ai pas pu trouver une description simple, et j'ai seulement une expérience limitée avec Win32. Toute aide est très appréciée,NT Kernel Programming

J

D'autres précisions: Je ne suis pas après un pilote en tant que tel, et serait intéressé s'il était techniquement possible de porter quelque chose comme PaX aux fenêtres par exemple. C'est un mauvais exemple car Windows a déjà une implémentation, mais je suis intéressé si des technologies similaires peuvent être portées sans avoir accès à la source NT.

Répondre

2

Oui, il est très possible de se connecter au noyau. Je suggère fortement les livres Windows Internals et Rootkits.

Ceux-ci devraient vous donner toutes les informations dont vous avez besoin.

2

La bibliothèque Microsoft Detours vous permet d'intercepter les appels d'API à partir de processus et d'insérer ou de remplacer votre propre code. Notez que si vous réussissez ce genre de chose, il vous faudra sans doute un peu plus que l'expérience limitée de Win32. Comme vous pouvez l'imaginer, cela peut être un sujet très complexe.

+0

Remarque: Cela n'aidera pas à patcher le noyau, seulement l'espace utilisateur. –

+0

Ce ne sera pas, mais ce n'est pas clair ce qu'il demande peut être le pilote du noyau (correctif n'est pas une bonne terminologie dans le monde du noyau Windows) n'est pas ce dont il avait besoin et cette bibliothèque sera suffisante. – Ilya

+0

Vous n'entendez pas très souvent les "correctifs", mais Microsoft utilise le terme "Kernel Patching Protection", ce qui n'est pas si étrange dans le monde de Windows. – BobbyShaftoe

2

Le développement du pilote n'est pas une tâche facile du tout. Les logiciels anti-virus nécessitent d'utiliser un système de fichiers (pilote de filtre de système de fichiers) qui rend la vie plus complexe. Il serait utile si vous essayez de décrire ce que vous essayez d'obtenir plus détaillé.

Les ressources les plus recommandées pour le développement de pilotes sont OSR. Il y a 2 listes de diffusion:

  1. ntdev Pour le développement du pilote général
  2. ntfsd pour le développement du lecteur système de fichiers

liste du livre peut être trouvé here.

À moins que le conducteur ne soit votre activité principale (dans ce cas, trouvez la personne ayant l'expérience du noyau), je vous suggérerais fortement d'externaliser ce travail. Sur les listes ci-dessus, vous pouvez trouver beaucoup de consultants.

La source de Windows est fondamentalement inaccessible :) malheureusement. Pour jouer avec le gestionnaire de mémoire virtuelle, vous devez être en mode noyau, si cela est possible.

Essayez de poser cette question sur ntdev, vous demanderez à la plupart des développeurs de noyau dans le monde. Vous aurez besoin de poser une question plus concrète pour obtenir une réponse raisonnable (je regarderai le fil, sujet intéressant).
Si vous comprenez correctement ce que vous voulez faire, c'est impossible sur Windows. Au moins pas sans un travail majeur de rétro-ingénierie, mais je travaille principalement avec des types standard de pilotes donc c'est je ne sais pas assez pour arriver à une conclusion finale.

Réponse au commentaire:

Je ne sais pas exactement ce que Entercept font (n'a rien trouvé dans la description du produit suggérant qu'ils jouant la mémoire ou processus autorisations). Donc, définissant l'objectif final de la technologie plutôt spécifique, comment y parvenir pourrait être plus productif. Réponse au commentaire 2:

1.1. Qu'est-ce que LIDS? LIDS est une amélioration pour le noyau Linux écrit par Xie Huagang et Philippe Biondi. Il implémente plusieurs fonctionnalités de sécurité qui ne sont pas natives dans le noyau Linux. Certains de ceux-ci comprennent:
1. Contrôles d'accès obligatoires (MAC) - Je ne sais pas ce qui est vraiment méchant.
2. Détecteur de balayage de port - C'est certainement faisable regarder sur le site this.
3. Protection contre les piles - Pilote de filtre de système de fichiers expliqué ci-dessus.
4. Protection du processus - Vous pouvez hook process creation dans votre pilote, regardez dans les archives ntdev il ya beaucoup de discussions à ce sujet.

+0

Salut Ilya, Je vais bien sûr externaliser le travail, mais d'abord vouloir établir qu'il est possible, et d'autre part savoir quel type de programmeurs à embaucher. Je devine que ce que je demande doit être possible, parce que des produits comme Entercept le gèrent? –

+0

Entercept est l'interception d'appel système pour Windows, qu'ils doivent avoir accroché dans le noyau d'une manière ou d'une autre. Un objectif spécifique pour ce qui m'intéresse serait, par exemple, le portage de quelque chose comme LIDS, ou une implémentation de ce type pour Windows. est une telle chose possible, peut-être avec le correctif du noyau? –

+0

Juste une note de côté vous ne patcher le noyau, vous écrivez une extension - pilote en mode noyau – Ilya

-1

Vous parlez de patcher le noyau sans expliquer pourquoi vous voulez le faire et pourquoi vous pensez que l'API officielle ne vous mènera pas où vous voulez. En conséquence, nous devons supposer que vous avez l'intention d'écrire une sorte de malware - ne vous attendez pas à ce que quelqu'un sur stackoverflow vous aide avec ça!

Questions connexes