-
-
[讨论]关于Clr v4.0 的Dlsplay calls程序的FindMethod方法
-
发表于:
2015-7-6 17:46
4880
-
[讨论]关于Clr v4.0 的Dlsplay calls程序的FindMethod方法
下面这段代码是Display Calls里面的意思是如果opcode==28(即CALL的调用)就截获其方法名称
for (UINT x = 0; x < nDisasmedInstr; x++)
{
if (info->ILCode[ilopar[x].Offset] == ILOPCODE_CALL)
{
DWORD dwToken = *((DWORD *) &info->ILCode[ilopar[x].Offset + 1]);
CORINFO_METHOD_HANDLE hCallHandle =comp->findMethod(info->scope, dwToken, info->ftn);
szMethodName = comp->getMethodName(hCallHandle, &szClassName);
//szMethodName = comp->getMethodName(info->ftn, &szClassName);
strcat_s(Calls, 0x1000, szClassName);
strcat_s(Calls, 0x1000, "::");
strcat_s(Calls, 0x1000, szMethodName);
strcat_s(Calls, 0x1000, "\r\n");
}
}
然而.Net 2.0可以调用因为mscorwks.dll有findMethod这个函数,而.Net 4.0里面没有findMethod函数,这个函数有没有其它可以代替的函数呢?它的目的就是通过TokenId获取方法的句柄。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课