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

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

2010-5-25 11:23
4582
如果是少量代码,直接构造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)
                                    {
                                       
                                    }
                                }
                            }
                        }

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

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