0

我有一个非常有趣的问题。这是一种沙盒逃逸。

目的:获取类的私有方法

我能做什么:
1)按长名称的程序集加载标准程序集
2)使用 GetType 和 Type 的方法

我不能:
1)在代码中使用 2)在代码中使用系统字。当我加载程序集时,我使用这样的 hack Load("Sys" + "tem....")

看起来我可以加载私有方法

myType.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance);

但我的代码中没有导入 BindingFlags。

好的,我可以创建 BindingFlags 的实例并使用它的 GetField,但它再次返回 Object,我不能将它转换为 BindingFlags。

var value = bindingFlagsType.GetField("NonPublic").GetValue(null); //it's Object not BindingFlags

我尝试了 Convert.ChangeType 方法,但 Invoke 返回 Object :)

我该如何解决这个问题?

4

0 回答 0