ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Load driver
  #1  
Старый 28.04.2010, 19:14
n3ls0n
Новичок
Регистрация: 12.04.2010
Сообщений: 11
Провел на форуме:
25380

Репутация: 0
По умолчанию Load driver

какие есть варианты загрузки дров
помимо :

- NtloadDriver
- NtSetSystemInformation (старый без реестра
SYSTEM_LOAD_AND_CALL_IMAGE )
- SCM (стандартных)
юзаю след.
Код:
    

// some my services
#define KERNEL_MEM_DRIVER_FILENAME_EX      L"direct.sys"
#define KERNEL_MEM_DRIVER_FILENAME_EXA     "direct.sys"
#define KERNEL_MEM_SERVICE_NAME_EX         L"KrlSysData"

#define KERNEL_MEM_DRIVER_SERVICE_NAME_EX  L"KernelMemDriver Service"

#define MAGIC_IOCTL 0x00088004

typedef struct _tagLOAD
{
  WORD Len;
  WCHAR ServiceName[512];
} LOAD ,*PLOAD;

BOOL InstallRegKeys4Driver()
{
  BOOL bRet = FALSE;
  WCHAR szDriverPath[MAX_PATH] = {'\0'};
  GetModuleFileNameW(GetModuleHandle(0),szDriverPath,sizeof(szDriverPath));
  PathRemoveFileSpecW(szDriverPath);
  PathAppendW(szDriverPath,KERNEL_MEM_DRIVER_FILENAME_EX);
  WCHAR szImgPath[MAX_PATH] = {'\0'};
  wsprintfW(szImgPath,L"%s%s",L"\\??\\",szDriverPath);
  HKEY hKey;
  WCHAR szRegPath[MAX_PATH] = {0};
  wsprintfW(szRegPath,L"%s%s",L"SYSTEM\\CurrentControlSet\\Services\\",KERNEL_MEM_SERVICE_NAME_EX);
  if( RegCreateKeyExW(HKEY_LOCAL_MACHINE,szRegPath,0,NULL,0,KEY_READ | KEY_WRITE,NULL,&hKey,NULL) == ERROR_SUCCESS )
  {
     RegSetValueExW(hKey,L"DisplayName",0,REG_SZ,(LPBYTE)KERNEL_MEM_DRIVER_SERVICE_NAME_EX,(DWORD)lstrlenW(KERNEL_MEM_DRIVER_SERVICE_NAME_EX)*2);
     RegSetValueExW(hKey,L"ImagePath",0,REG_EXPAND_SZ,(LPBYTE)szImgPath,(DWORD)lstrlenW(szImgPath)*2);
     DWORD dwType = SERVICE_KERNEL_DRIVER; 
     DWORD dwStart = SERVICE_DEMAND_START;   
     RegSetValueExW(hKey,L"Type",0,REG_DWORD,(LPBYTE)&dwType,(DWORD)sizeof(dwType));
     RegSetValueExW(hKey,L"Start",0,REG_DWORD,(LPBYTE)&dwStart,(DWORD)sizeof(dwStart) );
	 bRet = TRUE;
  }   
  return bRet;
}

BOOL GetPrivilege (PCHAR pPrivilegeName)
{
  HANDLE hToken;
  LUID Luid;
  BOOL bReturn = FALSE;
  TOKEN_PRIVILEGES TokenPrivileges;
  ZeroMemory(&TokenPrivileges,sizeof(TokenPrivileges));
  if (OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
  {
	if (LookupPrivilegeValue(NULL,pPrivilegeName,&Luid))
	{
 	   TokenPrivileges.PrivilegeCount = 0x01;
 	   TokenPrivileges.Privileges[0x00].Luid = Luid;
 	   TokenPrivileges.Privileges[0x00].Attributes = SE_PRIVILEGE_ENABLED;
 	   if (AdjustTokenPrivileges(hToken,0x00,&TokenPrivileges,sizeof(TokenPrivileges),NULL,NULL))
	   {
	     bReturn = TRUE;
	   }
	}
  }
  CloseHandle(hToken);
  return bReturn;
}

BOOL LoadKernelMemDriverEx()
{ 
 BOOL bRet = FALSE;
 if (InstallRegKeys4Driver())
 {
   HANDLE hDevice = CreateFile ("\\\\.\\FltMgr" , GENERIC_READ | GENERIC_WRITE , FILE_SHARE_READ | FILE_SHARE_WRITE , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL );
   if( hDevice != INVALID_HANDLE_VALUE )
   {
      LOAD service_to_load;
      DWORD dwRet=0;
	  lstrcpyW(service_to_load.ServiceName ,KERNEL_MEM_SERVICE_NAME_EX);
      service_to_load.Len = wcslen( service_to_load.ServiceName )*sizeof(WCHAR);
	  if (GetPrivilege(SE_LOAD_DRIVER_NAME)) 
	  {
		 if (DeviceIoControl( hDevice , MAGIC_IOCTL , &service_to_load , sizeof(service_to_load) , NULL , 0 , &dwRet , NULL ))
	     {
		  bRet = TRUE;
         }
	  }
   }
 }
 return bRet;
}
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Uniblue Driver Detective 2009 Fristail Soft - Windows 0 05.04.2010 19:08
Проблемы со звуком? Звуковой картой? Драйверами? ) spy-prof Аппаратное обеспечение 24 18.04.2009 02:35
NVidia Binary Graphics Driver For Linux Buffer Overflow Exploit Goudini Защита ОС: вирусы, антивирусы, файрволы. 0 18.10.2006 14:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ