Драйвер ядра для чтения памяти
поэтому я не могу прочитать целое число из моего IDK usermode, почему я поделюсь кодом, потому что я нашел его и его публичную надежду, что кто-то может помочь мне в этом :D
в пространстве ядра
<pre>typedef struct { DWORD64 proccessId; DWORD64 address; DWORD64 Read; } MEMDATA; UINT64 ReadMem(MEMDATA *data) { NTSTATUS ntStatus; PEPROCESS targetProc; UINT64 readBuff; ntStatus = PsLookupProcessByProcessId((HANDLE)(*data).proccessId, &targetProc); if (ntStatus != STATUS_SUCCESS || !targetProc) return; __try { KeAttachProcess((PKPROCESS)targetProc); if (MmIsAddressValid((void*)(*data).address)) RtlCopyMemory(&readBuff, (const void*)(*data).address, sizeof(readBuff)); KeDetachProcess(); } __except (GetExceptionCode()) { return; } return(readBuff); }
<pre> case(READ): { MEMDATA *userCom = pBuf; DWORD64 retVal = ReadMem(userCom); RtlCopyMemory(pBuf, &retVal, sizeof(retVal)); size = sizeof(retVal); break; }
также использую метод buffered
#define READ CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0701 /* Our Custom Code */, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
а вот и мой шаблон для чтения целого числа
<pre> int Readint(DWORD64 pid, DWORD64 addr, DWORD64 len) { MEMDATA toSend; DWORD64 dwBytesRead = 0; DWORD64 readBuffer; toSend.proccessId = pid; toSend.address = addr; toSend.Read = len; DeviceIoControl(hDriver, READ, &toSend, sizeof(MEMDATA), &readBuffer, len, 0, 0); CloseHandle(hDriver); return(readBuffer); }
но это не работает я пытаюсь читать (
123456) но он читает его вот так (
-1676839616) я думаю, что драйвер читает его, но это проблема с буфером idk .
Что я уже пробовал:
я пробовал это читать
<pre> int PID; cout << "give PID" << endl; cin >> PID; int test; test = Driver.Readint(PID, 0xB33B92FD88,sizeof(test)); if (test) { cout <<"working boi" << test <<endl; } else { cout << "nope not working" << endl; }
но он не работает, а также pls, если вы знаете исправление этой проблемы, не просто скажите мне, что это или что просто pls дайте мне или покажите мне код, чтобы исправить это, а также я новичок в ядре извините, если я выгляжу как нуб, но мы учимся каждый день !