Deviare v2 C# Hook API 调用并读取参数
Deviare v2 C# Hook API Call and read param
我正在尝试弄清楚如何读取参数。我让钩子工作了,唯一的问题是每当我这样做时,它都会崩溃:
private void onFuncCall(NktHook hook, NktProcess process, NktHookCallInfo hookCallInfo)
var paramsEnum = hookCallInfo.Params();
if (hook.FunctionName.Equals("getPlayerPtr"))
{
INktParam p;
p = paramsEnum.First();
Debug.WriteLine(p.Value);//This line cause a crash
return;
}
}
getPlayerPtr 定义:
UINT64 *getPlayerPtr(int Id);
此代码应打印所有参数值:
private void OnFunctionCalled(NktHook hook, NktProcess process, NktHookCallInfo hookCallInfo)
{
Output(hook.FunctionName + "( ");
bool first = true;
foreach (INktParam param in hookCallInfo.Params())
{
if (first)
first = false;
else
{
Output(", ");
}
Output(param.Name + " = " + param.Value.ToString());
}
Output(" )" + Environment.NewLine);
}
它不起作用意味着钩子函数不在 Deviare 数据库中。如果是这种情况,您应该创建一个自定义数据库:
http://forum.nektra.com/forum/viewtopic.php?f=9&t=7130
我正在尝试弄清楚如何读取参数。我让钩子工作了,唯一的问题是每当我这样做时,它都会崩溃:
private void onFuncCall(NktHook hook, NktProcess process, NktHookCallInfo hookCallInfo)
var paramsEnum = hookCallInfo.Params();
if (hook.FunctionName.Equals("getPlayerPtr"))
{
INktParam p;
p = paramsEnum.First();
Debug.WriteLine(p.Value);//This line cause a crash
return;
}
}
getPlayerPtr 定义:
UINT64 *getPlayerPtr(int Id);
此代码应打印所有参数值:
private void OnFunctionCalled(NktHook hook, NktProcess process, NktHookCallInfo hookCallInfo)
{
Output(hook.FunctionName + "( ");
bool first = true;
foreach (INktParam param in hookCallInfo.Params())
{
if (first)
first = false;
else
{
Output(", ");
}
Output(param.Name + " = " + param.Value.ToString());
}
Output(" )" + Environment.NewLine);
}
它不起作用意味着钩子函数不在 Deviare 数据库中。如果是这种情况,您应该创建一个自定义数据库: http://forum.nektra.com/forum/viewtopic.php?f=9&t=7130