-
Автор темы
- #1
Йоу!
Пробую реализовать скрытие своего процесса из системы на основе syscall (системных вызовов).
Проблема заключается в том, что я ловлю синий экран. Ранее подобную функцию реализовывал в среде KM - все работало.
Функция syscall - работает./ Все заполняемые буферы передаются корректно.
Прошу помощи у ребят кто шарит в данной тематике.
Прикладываю исходный код (текст/пикча).
using pNtSetInformationProcess = NTSTATUS(WINAPI*)(HANDLE, DWORD, PVOID, ULONG);
bool MemoryRV::Testing(HANDLE proc)
{
pNtSetInformationProcess NtSetInformationProcess;
HMODULE hNtdll = LoadLibraryA("ntdll.dll");
if (hNtdll != NULL)
NtSetInformationProcess = (pNtSetInformationProcess)GetProcAddress(hNtdll, "NtSetInformationProcess");
std::cout << "GetProcAddress NtSetInformationProcess - " << NtSetInformationProcess << std::endl;
if (!Syscall<pNtSetInformationProcess>(NtSetInformationProcess, (HANDLE)proc, (DWORD)0x1D, (PVOID)NULL, (ULONG)0))
return false;
return true;
}
Пробую реализовать скрытие своего процесса из системы на основе syscall (системных вызовов).
Проблема заключается в том, что я ловлю синий экран. Ранее подобную функцию реализовывал в среде KM - все работало.
Функция syscall - работает./ Все заполняемые буферы передаются корректно.
Прошу помощи у ребят кто шарит в данной тематике.
Прикладываю исходный код (текст/пикча).
using pNtSetInformationProcess = NTSTATUS(WINAPI*)(HANDLE, DWORD, PVOID, ULONG);
bool MemoryRV::Testing(HANDLE proc)
{
pNtSetInformationProcess NtSetInformationProcess;
HMODULE hNtdll = LoadLibraryA("ntdll.dll");
if (hNtdll != NULL)
NtSetInformationProcess = (pNtSetInformationProcess)GetProcAddress(hNtdll, "NtSetInformationProcess");
std::cout << "GetProcAddress NtSetInformationProcess - " << NtSetInformationProcess << std::endl;
if (!Syscall<pNtSetInformationProcess>(NtSetInformationProcess, (HANDLE)proc, (DWORD)0x1D, (PVOID)NULL, (ULONG)0))
return false;
return true;
}