首页
社区
课程
招聘
[求助]请问怎么用Mono.Cecil向目录程序集插入大量代码
发表于: 2010-5-25 11:23 5090

[求助]请问怎么用Mono.Cecil向目录程序集插入大量代码

2010-5-25 11:23
5090
如果是少量代码,直接构造Instruction就行了,代码多了,就不太好办了

所以我想这样做:

在自己的程序中写一个函数:
void Inject()
{
   int a=2;...
for(...)..
GetValue()....
}

然后把这个函数的Instructions集合插入到目标,或者把这个函数整个插进去,然后在目标位置调用这个函数。但是我这里总是报错

//获得当前程序的AssemblyDefinition还有更简单的方法吗?
AssemblyDefinition ad = AssemblyFactory.GetAssembly(System.Reflection.Assembly.GetExecutingAssembly().Location);
                        foreach (TypeDefinition td in ad.MainModule.Types)
                        {
                            foreach (MethodDefinition md in td.Methods)
                            {
                                if (md.Name == "Inject")
                                {
                                  //把md整个导入,或者导入所有的md.Body.Instructions

                                    foreach (Instruction ins in md.Body.Instructions)
                                    {
                                       
                                    }
                                }
                            }
                        }

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 7072
活跃值: (4010)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以,
用wk.Append(ins);
用ad.Modules[i].Import(inj);调用函数
2010-5-25 12:33
0
游客
登录 | 注册 方可回帖
返回
//