nop
-
Автор темы
- #1
Программа мапит драйвер
А потом использует функцию DeviceIoControl после драйвер "что-то делает"
Я решил написать написать подобие этой программы, но функия DeviceIoControl завершается с ошибкой 998 / неверная попытка доступа к памяти
А потом использует функцию DeviceIoControl после драйвер "что-то делает"
Я решил написать написать подобие этой программы, но функия DeviceIoControl завершается с ошибкой 998 / неверная попытка доступа к памяти
C++:
int main()
{
DWORD RB = 0x0;
HANDLE handle = CreateFileA("\\\\.\\Driver123", GENERIC_READ | GENERIC_WRITE, 0x0, 0x0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0x0);
if (handle == INVALID_HANDLE_VALUE)
cout << "[-] CreateFileA: " << GetLastError() << endl;
else
cout << "[+] CreateFileA: [ OK ]" << endl;
BYTE* inBuffer = (BYTE*)"\xDE\x00\x00\x00\x80\x8F\x03\x00\x78\x63\xC1\xE9\x40\x03\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00";
BOOL DeviceIoControlTest = DeviceIoControl(handle, 0x22E088, inBuffer, 0x18, (LPVOID*)0x000000F869EFFC78, 0x8, &RB, 0);
if (!DeviceIoControlTest)
cout << "[-] DeviceIoControl: " << GetLastError() << endl;
else
cout << "[+] DeviceIoControl: [ OK ]" << endl;
CloseHandle(handle);
}
Код:
Parameter 1 hDevice=0x0000000000002354
Parameter 2 dwIoControlCode=0x0022E088
Parameter 3 +lpInBuffer=0x00007FF6056B8218:{DE 00 00 00 80 8F 03 00 78 63 C1 E9 40 03 00 00 01 00 00 00 00 00 00 00}
Parameter 4 nInBufferSize=0x00000018
Parameter 5 lpOutBuffer=0x000000F869EFFC78
Parameter 6 nOutBufferSize=0x00000008
Parameter 7 lpBytesReturned=0x00000000
Parameter 8 lpOverlapped=0x0000000000000000
Returned Value 0x0000000000000001
Last Error Value 0x00000000 : "Операция успешно завершена."
Last Error Before Call 0x00000000 : "Операция успешно завершена."