示例#1
0
EASYHOOK_NT_EXPORT LhBarrierGetCallingModule(MODULE_INFORMATION* OutModule)
{
/*
Description:

    The given storage will receive the calling unmanaged module.

Returns:

    STATUS_NOT_FOUND
            
        No matching module could be found.

*/
    NTSTATUS        NtStatus;
    UCHAR*          ReturnAddress;

    FORCE(LhBarrierGetReturnAddress((PVOID*)&ReturnAddress));

    FORCE(LhBarrierPointerToModule(ReturnAddress, OutModule));

    RETURN;

THROW_OUTRO:
FINALLY_OUTRO:
	return NtStatus;
}
示例#2
0
BOOL WINAPI MessageBeepHook(__in UINT uType)
{
    /*
        Test barrier methods...
    */
	PVOID					CallStack[64];
	MODULE_INFORMATION		Mod;
	ULONG					MethodCount;

	LhUpdateModuleInformation();

	LhEnumModules((HMODULE*)CallStack, 64, &MethodCount);

	for(ULONG i = 0; i < MethodCount; i++)
	{
		LhBarrierPointerToModule(CallStack[i], &Mod);
	}

	LhBarrierCallStackTrace(CallStack, 64, &MethodCount);

	LhBarrierGetCallingModule(&Mod);

    return TRUE;
}