我如何在不重新加载整个模块的情况下解析我注入的方法的RVA?
我总是得到0作为添加的方法的RVA。有没有什么方法可以在不编写和重新加载程序集的情况下检索RVA?谢谢!
AssemblyDefinition asm = AssemblyDefinition.ReadAssembly("hello.exe");
ModuleDefinition mod = asm.MainModule;
TypeDefinition modType= mod.GetType("PrintClass"); //get class found in hello.exe
MethodDefinition MethodToInject= new MethodDefinition("PrintMethod", ..., ...); //filled
modType.Methods.Add(MethodToInject);
int InjectedRVA = MethodToInject.RVA; //Always get 0
InjectedRVA = modType.Methods.FirstOrDefault(mtd => mtd.Name == "PrintMethod").RVA; //Also get 0
asm.MainModule.Write("output.exe"); //write output发布于 2012-11-02 18:14:10
新方法RVA是在写入时计算的,但模型不会更新。我想我们可以认为这是一个bug。
现在,您必须分析生成的程序集。
https://stackoverflow.com/questions/13190427
复制相似问题