我一直试图通过使用ASP .Net和反射(?)编写程序来找到有关dll技术和exe发现的更多信息。我找不到任何东西。
我知道有反汇编程序,但我对运行其他工具和反汇编代码不感兴趣,我更感兴趣的是了解如何编写一个程序,该程序采用未知文件或可执行文件,并确定其中的属性和方法是上市。
我刚刚开始寻找这个,并且想知道有什么好的资源来启动学习过程。
答案 0 :(得分:0)
我更感兴趣的是了解如何编写一个带有未知文件或可执行文件的程序,并确定其中的属性和方法是公开的。
反思是一种很好的方法。如果您不想要完整的代码说明,可以参考以下几个提示。
您可以使用Assembly.ReflectionOnlyLoad
加载现有的程序集。这仅适用于.NET程序集。 Load
和ReflectionOnlyLoad
之间的区别在于Load
加载允许您使用它的程序集,就像在该程序集中的类型上执行方法一样。当您只想查看程序集中的内容而不执行任何代码时,ReflectionOnlyLoad
非常有用。 ReflectionOnlyLoad
的另一个优点是它不关心汇编汇编的平台。
获得程序集后,可以使用GetExportedTypes
之类的方法获取所有公共类型的列表。如果您想要公开和非公开,您可以只使用GetTypes
()。
现在我们已经加载了程序集,并列出了所有类型。 Type
类有几个成员用于处理该类型。想到GetMethods和GetProperties。
您可以参考this MSDN文章,了解反思的更一般概述。