DeviceIoControl

raphui Messages postés 1 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 30 septembre 2009 - 30 sept. 2009 à 19:49
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 1 oct. 2009 à 08:34
Salut a tous !

Je développe un " driver " , permettant de cacher un processus dans le Task Manager.

Mon problème est que je n'arrive pas a envoyer un IOCTL a mon driver , avec la fonction DeviceIoControl. Cette fonction me renvoie une erreur 87,
ceux qui correspond a: ERROR_INVALID_PARAMETER.

J'ai tous vérifier plein de fois et je vois vraiment pas où je me suis trompé... :/

Donc si quelqu'un pourrais m'aider ça serait cool .
J'espère avoir bien expliqué mon problème, sinon dite le moi...

Voila le code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <winioctl.h>


#define SIOCTL_TYPE 40000

#define IOCTL_HIDE_PROCESS\
    CTL_CODE( SIOCTL_TYPE, 0x801, METHOD_BUFFERED, FILE_READ_DATA|FILE_WRITE_DATA)



int main() 
{

char process[50];

//char retBuff[50];

//DWORD retBytes;

HANDLE hDevice;

BOOL test;

printf("\nProcess: ");
scanf_s( "%s" , process , 49 );

hDevice = CreateFile( TEXT(".\\ProcessHide.sys") , GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING ,  FILE_ATTRIBUTE_NORMAL , NULL );

if( hDevice == INVALID_HANDLE_VALUE )
{
printf("\nError Open Device");
printf("\nError %d", GetLastError() );

Sleep( 1000 );
}

test = (BOOL)DeviceIoControl( hDevice , IOCTL_HIDE_PROCESS , process , sizeof( process ) , NULL , 0 , &retBytes , (LPOVERLAPPED)NULL );

if( test == 0 )
{
printf("\nError DeviceIoControl");
printf("\nError %d", GetLastError() );

Sleep( 1000 );
}


CloseHandle( hDevice );


return 0;
}


Merci d'avance !

PS: Je code ce driver avec windows 7

Si vous voulez le code du driver , dite le moi.

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 oct. 2009 à 08:34
Exemple ici:
CACHER PROCESSUS AU CHOIX (DRIVER WIN32)
http://www.cppfrance.com/code.aspx?ID=36941

ciao...
BruNews, MVP VC++
0
Rejoignez-nous