Télécharger le zip
C'est pour faire un virus ?
Plutot protéger un processus sensible d'une interruption inopinée.
C'est quand même vachement limite... Pourquoi Windows laisse faire ça ? A mon avis la plupart des progs qui se cachent sont plutôt des virus non ?
On peut obtenir la liste des processus ainsi cachés ? dans ce cas cela pourrait se faire passer pour un utilitaire anti-virus.Une autre question : Est-ce que le processus caché apparait dans les tâches en cours listées par l'utilitaire "Informations système" ?
Il ne sort pas dans la liste si on lance l'interception driver avant le listage, rien que du normal puisque c'est le driver qui sert cette liste à ceux qui la demandent.Il est clair que ceci est à titre uniquement pédagogique, tout pourrait être détourné et mal employé par quelque malfaisant mais ce n'est pas le but ici.
Oublié de préciser: clic sur "Supprimer" avant de quitter pour bien enlever le driver du système.
Bien sûr que c'est a but pédagogique. Ma remarque était plus d'ordre disons éthique, pas du tout une critique sur le bien fondé de poster cette source.Mais c'est quand même fort étonnant que le système puisse ainsi cacher n'importe quel processus. Cacher un processus sensible, fort bien, mais logiquement ces processus sont par défaut cachés par Windows, puisque logiquement ces même processus font partie intégrante de Windows (en espérant être clair...). Enfin bref, c'est vrai que ça peut être fort utile dans beaucoup de cas.
salut a touscomment peut on compiler le .sys ?merco
Installer d'abord le DDK, se mettre sur la console free pour win2k ou XP ou Server 2003, se placer au niveau du dossier bnhide et entrer 'build cZg'.
ok merci vai essayer
bonjour a vous quand je telecharge le zip j'ai pas l'exe. serais t'il possible de me l'envoyer s'il vous plait. sephiroth14@hotmail.fr. d'avance merci
C'est maintenant dans le zip.
Bonjour à tous,Je suis nouvelle et je débute dans la programmation windows.Ces sources sont très bien écrites et très utiles.Est-il possible de récupérer tous les processus commençant par svchost?J'ai essayé en rajoutant dans le code du driver bnhide cette ligne:if(RtlCompareMemory((PVOID)&pprcss->ProcessName.Buffer[0],(PVOID)&dts.name[0], dts.len*2)==dts.len*2){ len = pprcss->NextEntryDelta; if(len) { pdst->NextEntryDelta += pprcss->NextEntryDelta; goto goNEXT; }}à la place de celle-ci:if(RtlCompareUnicodeString(&pprcss->ProcessName, &uncExclude, 1)) goto noFOUND;Cependant je n'obtiens aucun résultat! Plus aucun processus n'est dissimulé!Si vous avez des conseils à me donner, je vous en serais très reconnaissante!
En inversant simplement:if(!RtlCompareUnicodeString(&pprcss->ProcessName, &uncExclude, 1)) goto noFOUND;A tester, pas le temps en ce moment.
merci de ta réponse rapide.Par contre cette ligne de code fait planter le taskmanager. En fait elle ne retrouve pas les processus demandés, puisqu'elle cache TOUS les processus et c'est pour cette raison que le taskmanager plante.Mon but est de cacher une liste de processus que je peux identifier en les nommant d'une façon particulière.Je cherche un moyen de repérer un début de chaine dans les processus.Merci pour ton aide.
Bonjour, j'essaye de compiler le programme sous dev C++ 4.9.9.2 et je tourne un peu en rond.Quelqu'un c'est il penché sur la question ?
J'essaie de comprendre le code, mais j'ai un peu de mal a me mettre dedans. Je pense qu'il faut sans doute un peu bouquiner sur les drivers avant.Je voudrais donc savoir si Programming the Microsoft Windows Driver Mode de Walter Oney était un bon ouvrage?
C'est un excellent ouvrage mais il suppose déjà pas mal de concepts connus.Il faut récupérer aussi sur le net tout ce que tu peux trouver sur les drivers et l'API native, le tout combiné devrait aller.
OK, dans ce cas je m'y mets, on verra bien ce que ca donne
n'empeche.... un mec qui voudrai pondre un virus trouverai tout ce qu'il faut sur ce site !existe t'il un outil permettant de lister les processus, y compris ceux caché par ce type de programme ??
Je ne connais pas d'outil qui le fasse mais sait-on jamais...Serait surement possible de lister (uniquement depuis le kernel mode) mais sans les sources Windows faut pas y songer, même avec serait un gros boulot.
une solution utilisée par un outil anti rootkit est de bruteforcer tous les pid
Petit outil permettant d'afficher tous les processus, même ceux qui sont cachés:http://www.security.org.sg/code/kproccheck
Tu mets ce code en niveau debutant toi ?!Une question: comment tu les debug tes drivers ?[Sen3]
Je n'ai jamais fait de debug et donc jamais utilisé non plus debugger de compilo.Pour ce genre de petit driver, on n'en a vraiment aucun besoin si on fait bien gaffe de respecter les specs MS.Il est clair que si c'était du driver matériel devant gérer tous les aléas possibles, il faudrait faire le traçage réseau comme indiqué dans le DDK.
Bonjour,je viens d'essayer ton source qui fonctionne très bien, je dois le reconnaitre. Mais juste une petite question, tu efface bien l'executable de la liste des processus dans le taskmanager mais pas dans la liste des applications, donc ta protection d'un arrêt utilisateur d'un processus n'est pas complète. As tu une solution pour retirer les processus aussi de la liste des applications ???
SHOW / HIDE DANS TASKBAR (WIN32, ASM)http://www.cppfrance.com/code.aspx?id=21205Sinon suffit de faire une fenetre non affichée tout au début et ensuite de mettre la 1ere fenetre du prog en fille de celle ci, ainsi rien dans la taskbar.
Je suis quand même surpris qu'un tel code fonctionne sous Vista, ça n'augure rien de bon niveau sécurité tout ça...En tout cas c'est du bon boulot, bien vu BruNews !
A ZIBO3 et BruNews:Euh FreeConsole() ne suffirait-il pas à cacher la fenêtre (dans la barre des taches, et dans la liste des appli) ?
Oui surement quand on fait de la console mais je n'en fais plus des lustres.Dans tous les cas, je ne verrais pas l'utilité de faire une console si c'est pour la masquer, autant faire un prog Win App GUI commençant en WinMain qui ne créera pas de fenêtre.
"Dans tous les cas, je ne verrais pas l'utilité de faire une console si c'est pour la masquer." BruNewsNormal il n'y a aucune utilité à cela, le but de la chose étant de cacher la fenetre en 5 lignes.void main(){FreeConsole();return;}"autant faire un prog Win App GUI commençant en WinMain qui ne créera pas de fenêtre".Ca c'est parce que j'ai mes petites habitudes (faire un void main()) :-)
Il y a aussi une autre facon de cacher un proccess c'est de le detacher de ActiveProcessList (qui est une double liste chainée des process (structure : EPROCESS) qui sont en cours d executions)
HeavenForsaker , le code ne marchera pas sous vista a cause de patchguard qui verifie tt le temps la SSDT :\ (du moins en X64) voila la raison du caca nerveux de norton :)
"Il y a aussi une autre facon de cacher un proccess c'est de le detacher de ActiveProcessList"Oui c'est la méthode utilisée par le FU rootkit il me semble, à voir si ça fonctionne sous vista...Ben si ça marche sous vista 32 c'est deja pas si mal, voila donc une bonne raison pour prendre la version 64 :-)
Le prob avec la version 64 c'est qu'on est seul et que tous les progs sont en 32, personne n'en veut à commencer par les gros éditeurs et avec raison, ça n'apporte strictement rien en perfs.
Salut.Comment génères-tu le fichier "makefile" et le fichier "source" ?Et aussi, le .vcproj, .sln et .suo ont-ils une utilité dans la compilation (peut-on compiler à partir de là) ou c'est simplement pour le "confort" de l'IDE ?Merci.
"makefile" est repris du DDK, "source" idem sauf qu'il faut l'éditer pour modifs. Je ne compile donc pas avec VC++, simple histoire de confort d'éditeur.
Hello.J'ai un gros probleme avec le driver: sur 2 PC différents Win XP Pro SP2, je me retrouve avec un écran bleu qui survient pendant l'installation du driver, exactement à la ligne où on met en place le hook :(NTQUERYSYSTEMINFORMATION)(SYSTEMSERVICE(ZwQuerySystemInformation)) = bnQuerySysInfo;De manière générale, cette erreur semble survenir chaque fois qu'on essaie d'assigner cette adresse (même problème dans la fonction UnHook lorsqu'on reinitialize le pointeur).Plus de détails : - l'installation du driver tel quel provoque un BSOD avec comme message DRIVER_IRQL_LESS_OR_EQUAL - si l'on supprime les directives _asm cli et _asm sti, BSOD avec le message "Tentative d'écriture dans la mémoire en lecture seule" - si l'on commente la ligne en question, le programme n'a pas d'effet (normal) mais pas de BSODC'est tout ce que je peux fournir comme indices.Je vous serais très reconnaissant si je pouvais avoir un pti coup de pouce !Merci :)
Je vais faire les derniers Win Update sur un XP SP2 et je testerai ensuite, peut-être il y a eu protection de zone sensible d'ajoutée.
Ce fut un peu long la MAJ de 6 mois...Va toujours impec ainsi que sur Vista, je ne sais quoi te dire et je n'ai pas le temps d'enquêter davantage.
Merci quand même ;)J'ai trouvé le solution à mon problème, en passant par un code assembleur que j'ai trouvé en fouillant le web :Pour la fonction HookServices() : unsigned long OldCr0; _asm{ cli; mov eax,cr0 mov OldCr0,eax and eax,0fffeffffh mov cr0,eax mov ecx, dword ptr [ZwQuerySystemInformation]; mov edx, [ecx+1]; mov eax, dword ptr [KeServiceDescriptorTable]; mov esi, [eax]; mov edx, [esi+edx*4]; mov dword ptr [OldNtQuerySystemInformation], edx mov ecx, [ecx+1] mov eax, [eax] mov dword ptr [eax+ecx*4], offset bnQuerySysInfo; mov eax,OldCr0 mov cr0,eax sti; }Pour la fonction UnHookServices() : unsigned long OldCr0; _asm{ cli; mov eax,cr0 mov OldCr0,eax and eax,0fffeffffh mov cr0,eax mov ecx, dword ptr [ZwQuerySystemInformation]; mov edx, [ecx+1]; mov eax, dword ptr [KeServiceDescriptorTable]; mov esi, [eax]; mov ebx, dword ptr [OldNtQuerySystemInformation]; mov [esi+edx*4],ebx; mov eax,OldCr0 mov cr0,eax sti; }Pour info, l'adresse où j'ai trouvé ce code : http://aliwy.77169.com/archives/2007/91263.htmlSi y'en a qui se sentent de tester sur d'autres OS que windows XP avec ce code ... ;)Merci BruNews !nutz
ça fait quoi de plus ce code asm ?
Le registres CR0 (0 to 5) contient différents flags qui régissent le mode de fonctionnement (PE, alignement exception, etc....).Faudrait fouiller dans les manuels Intel pour savoir lequel c'est.
Resume (bit 16) — Controls the processor’s response to instruction-breakpoint conditions.When set, this flag temporarily disables debug exceptions (#DB) from being generated for instruction breakpoints (although other exception conditions can cause an exception to be generated). When clear, instruction breakpoints will generate debug exceptions.The primary function of the RF flag is to allow the restarting of an instruction following a debug exception that was caused by an instruction breakpoint condition. Here, debug software must set this flag in the EFLAGS image on the stack just prior to returning to the interrupted program with IRETD (to prevent the instruction breakpoint from causing another debug exception). The processor then automatically clears this flag after the instruction returned to has been successfully executed, enabling instruction breakpoint faults again.
ok, thx BNétrange cette histoire de BOSD, j'ai testé le code sous 2000/XP/Vista 32bits ça marche impec.
ben oui, faudrait voir ce qui pouvait tourner au même moment sur les PCs incriminés, surtout en kernel mode pour générer une exception.
Salut! Trés bon sources , mais pour-quoi avast me dit que le fichier bnhide.sys et infécté par Win32:Trojan-gen
Parce que BruNews est sournois...il a planqué un ptit virus ASM dedans :-)
Je n'ai pas d'antivirus, ça évite d'avoir ce genre de message crétin.A part si on va sur grossecoche.com, ne sert strictement à rien.
Ca sert a réchauffer la pièce quand le PC ne chauffe pas assez. Je l'ai aussi mis à la poubelle, et aucun problème
si on sais ou on va et ce qu'on lance ...
Bonjour, c'est exactement ce que je recherchais pour essayer de lancer un programme en double sur mon ordi ! Hèlas je suis une.... dans ce domaine, la seule chose que j'ai reussi a faire c'est de faire le build, et au final j'ai un fichier sys dont je ne sais que faire, dommage, si il y a un exe disponible je suis preneur, ou bien meme une maniere de les creer je trouve ca tres interressant, preneur aussi de tutoriaux ! ..voila merci !
Bonjour à tous,ce programme m'interresse mais je n'ai pas le .exe dans le zip c'est normal ? ou alors il faut que je compile moi même cette source ? mais comment ?Merci d'avance
.ex a renommer en .exe
Salut !Tr?s beau travail !N?anmoins j' ai un petit probl?me assez g?nant :Le programme ne marche pas normalement.- Je lance MngHide.exe ( pas de probl?me ?a marche )- Je click Installer et l? malheur reboot sans avertissement ni message. ( c' est normal ? )- Essaie n?2 : je lance et je rentre le nom de mon prog ( prog.exe ) et je click envoyer.R?sultat, un message d' erreur : ERR OPEN DEVICEJ' ai pas d' id?e l? :SDe plus quel compilateur utilises tu ? Perso j' ai GCC et j' ai plein d' erreurs.@+
J'utilise VC++ pour l'exe et le DDK pour le sys. J'avais test? sur XP et Vista (sans UAC), jamais not? ce reboot intempestif.
Salut !J' ai Win SP1 ( XD ) donc pas d' UAC.SP1 serait il immunise ? ^^Sinon j' ai essaye : http://dev.winsysdev.com/src_Cacher-un-processus_9.aspxet meme probleme :'(Apres quelque recherche, Cheat Engine ( programme d' edition d' une application en memoire ) utilise un systeme similaire et ?a ne me fait pas planter le systeme.Une id?e ?@+PS: Normal que je vois pas les caracteres avec des accents de mon post et du tien ?PS 2: J' ai pas mit d' accents pour que se soit lisible.
Les accents, c'est une erreur d'un dernier patch sur CS, j'ai signal? et nos webistes vont s'en occuper.Pour l'exception g?n?r?e, teste en modifiant le registre CR0 comme indiqu? par NUTZ007.
Je viens de corriger le problème d'accent, désolé une modif sur le site hier semble avoir provoquer ce problème dans les dépôts de commentaires :/
Il me semble que j'ai toujours le probl?me...
Vecchio, vides ton cache, car mon post au dessus a bien fonctionné, tu as peut-être un javascript en cache qui n'est pas à jour.
Je n'avais pas pensé a ça, merci
Salut !"Pour l'exception générée, teste en modifiant le registre CR0 comme indiqué par NUTZ007.">> Je teste ça ;) ( 236 Mo à télécharger XD c' est des fous chez microsoft )Merci Nix pour la réparation :D@+
Salut,ce code est parfait pour un petit utilitaire auquel je pense :DMerciPar contre si ça tombe entre de mauvaises mains, l'utilisateur lambda risque de s'arracher les cheveux :s
Excellent, merci à toi ;)Ce que tu as programmé est également utilisé par la plupart des bons programmes de protection de la mémoire, comme ceux qu'on voit sur les jeux en ligne.Citons par exemple HackShield, GameGuard, XTrap... etc.Il est toutefois possible d'accéder au processus avec openprocess.Encore bravo :)
Est-ce normal que mon anti-virus détecte un trojan dans cette source ?je ne pense pas que se soit normal.Et pas très cool de la pars de la personne qui l'a mit.
je n'arrive pas non plus a extraire le fichier .sys
ton "antivirus" detecte l'utilisation d'APIs que peu de gens approchent. génerallement exploitées pour les trojans et autres virus.mais notre bon ami BruNews est une pointure du bon coté de la barrière.pas de risque a utiliser le zip, vraiment.
je voudrais supprimer la textbox, pour cacher uniquement un processus "norton.exe" en appuyant sur ok. quelle variable changer dans le code?sinon ba je pige pas tout mais ca marche bien sur vista :)
lut , merci pour le programe, exellent, par contre y a possiblité de cacher plusieur processus ,voir 2 ou 3 ? car la on peut le faire que sur 1 .exe .merci
En étudiant le code, tu devrais trouver les parties à modifier.
merci , je vais essayer , si c est bon je le posterai pour tout le monde .+++
ouep je viens de matter , compliqué tout ca, chui bien meilleur en php lol , ya pas une ame généreuse pour la compile pour plusieur exe .merci .a++++
Salut.Je voudrais savoir c'est quoi TR/Bckdr.QIQ stp ?( c'est dans le rar )
Il n'y a psa de ça dans le ZIP.
ok merci je le supprime. Sinon bon travail !
salut les gars je suis debutan en language c svp quelqun m'explique ces ligne#define IOCTL_NAME_PRCSS CTL_CODE(40000, 0x900, METHOD_BUFFERED, FILE_ANY_ACCESS);la fonction bntrimfai qoi justeaussi la function MyPathSys(){ char *c, *d; d = szflsys + GetModuleFileName(0, szflsys, 300); while(*d != '\\') d--; c = sznamesys; d++; // LAISSER LE '\\' while(*d = *c) {c++; d++;} *d = '.'; *(d+1) = 's'; *(d+2) = 'y'; *(d+3) = 's'; *(d+4) = 0;}
Excellent code félicitation, congratulation.Prions que ça ne tombe entre de mauvaise main.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 169 membres 7 nouveaux aujourd'hui 16 151 membres club