-
-
[讨论]关于Clr v4.0 的Dlsplay calls程序的FindMethod方法
-
发表于:
2015-7-6 17:46
4873
-
[讨论]关于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获取方法的句柄。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)