首页
社区
课程
招聘
[讨论]关于Clr v4.0 的Dlsplay calls程序的FindMethod方法
发表于: 2015-7-6 17:46 4880

[讨论]关于Clr v4.0 的Dlsplay calls程序的FindMethod方法

2015-7-6 17:46
4880
下面这段代码是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直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 229
活跃值: (94)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
有没有  大神指教一下
2015-7-6 17:47
0
雪    币: 229
活跃值: (94)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
搞.Net的人 就是少哦
2015-7-7 10:06
0
游客
登录 | 注册 方可回帖
返回
//