Перехват GetVolumeInformation для возврата пользовательского типа файловой системы.

Я пытался (и с треском провалился!) Научиться использовать Easyhook. Я пытаюсь перехватить и вернуть имя пользовательской файловой системы для всех вызовов GetVolumeInformation. Следующий код перехватывает, и я получаю имя файловой системы в debugview, но оно вылетает в приложение, которое его загружает.

Любая помощь будет высоко ценится

#include "stdafx.h"#include <string>
#include <iostream>
#include <Windows.h>
#include <easyhook.h>BOOL WINAPI myhook(LPCTSTR lpRootPathName, LPTSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPTSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize);

BOOL WINAPI myhook(LPCTSTR lpRootPathName, LPTSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPTSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize)
{

BOOL retval = GetVolumeInformationW(lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize);
if (retval) {

wcscpy_s(lpFileSystemNameBuffer, 8, L"NOTNTFS");

OutputDebugString(lpFileSystemNameBuffer);}
return retval;
}BOOL APIENTRY DllMain( HMODULE hModule,
DWORD  ul_reason_for_call,
LPVOID lpReserved
)
{

HOOK_TRACE_INFO hHook = { NULL }; // keep track of our hookswitch (ul_reason_for_call)
{

case DLL_PROCESS_ATTACH:
{

NTSTATUS result = LhInstallHook(
GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetVolumeInformationW"),
myhook,
NULL,
&hHook);
if (FAILED(result))
{
OutputDebugStringA("FAILED TO HOOK");
}
else {
OutputDebugStringA("HOOKED");

ULONG ACLEntries[1] = { 0 };
LhSetInclusiveACL(ACLEntries, 1, &hHook);

}

}case DLL_THREAD_DETACH:
{}
case DLL_PROCESS_DETACH:

{

}
break;
}
return TRUE;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector