使用DLL .NET内部方法

时间:2013-03-20 11:40:52

标签: .net windows reverse-engineering

是否可以使用一个DLL的内部方法?
我使用Reflector和dotPeek对.net dll进行了反编译,找到了我需要的,方法的名称和参数。
我已经制作了一个简单的程序来呼叫公共的程序,所以我对此很好 CFF Explorer(here)允许将一些内容更改为public / private / static / etc ...
有人试过这个成功吗?感谢。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用Reflection。考虑以下课程:

public class A
{
    internal void Method(string val) { }
}

要使用该方法,您需要执行以下操作:

var a = new A();
var methodInfo = a.GetType().GetMethod("Method", BindingFlags.Instance | BindingFlags.NonPublic);
if (methodInfo == null) { return; }  // the method wasn't found on the type

methodInfo.Invoke(a, new object[] { "parameter value" });

如果方法返回值:

var result = methodInfo.Invoke(a, new object[] { "parameter value" });