-
Notifications
You must be signed in to change notification settings - Fork 0
/
RpcMonitor.cpp
50 lines (40 loc) · 1.33 KB
/
RpcMonitor.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// RpcMonitor.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "RpcCore/RpcCore.h"
#ifdef __cplusplus
extern "C" {
#endif
extern RpcCore_T RpcCoreHelper;
#ifdef __cplusplus
}
#endif
typedef struct _EnumCtxt_T {
void* pRpcCoreCtxt;
RpcCore_T* pRpcCore;
}EnumCtxt_T;
static BOOL __fastcall EnumInterfaces(RpcInterfaceInfo_T* pRpcInterfaceInfo, EnumCtxt_T* pEnumCtxt, BOOL* pbContinue)
{
return TRUE;
}
int main()
{
/*
void* pRpcCoreCtxt, DWORD Pid, DWORD Ppid,ULONG ProcessInfoMask
*/
void* pRpcCoreCtxt;
pRpcCoreCtxt = RpcCoreHelper.RpcCoreInitFn(true);
DWORD Pid = 33084;
// DWORD Ppid = 22112;
DWORD Ppid = 0;
ULONG ProcessInfoMask = RPC_PROCESS_INFO_ALL;
RpcProcessInfo_T* pRpcProcessInfo;
EnumCtxt_T EnumCtxt = { 0 };
EnumCtxt.pRpcCore = &RpcCoreHelper;
EnumCtxt.pRpcCoreCtxt = RpcCoreHelper.RpcCoreInitFn(FALSE);
pRpcProcessInfo = RpcCoreHelper.RpcCoreGetProcessInfoFn(pRpcCoreCtxt, Pid, Ppid, ProcessInfoMask);
RpcCoreHelper.RpcCoreFreeProcessInfoFn(pRpcCoreCtxt, pRpcProcessInfo);
RpcCoreHelper.RpcCoreEnumProcessInterfacesFn(pRpcCoreCtxt, Pid, (RpcCoreEnumProcessInterfacesCallbackFn_T)&EnumInterfaces, &EnumCtxt, RPC_INTERFACE_INFO_ALL);
std::cout << "Hello World!\n";
getchar();
}