作为一名学生程序员,我对许多消费软件的工作知识非常有限。我希望有一天能够反向工程软件,了解是什么使它运行,并以不同的方式实现它。我真正的问题是,逆向工程所需要的一般过程是什么?我知道这是非常广泛的。我只是想知道人们使用的诸如反编译之类的工具。
发布于 2011-12-10 04:29:57
我建议阅读开源项目的代码,而不是逆向工程封闭源代码,这可能是非法的或不道德的。
没有必要通过逆向工程程序(除非这是你的明确目标),你可以学到很多东西。
有些开源软件是消费者软件,或者可以与消费者软件相媲美。
此外,封闭的源代码商业软件通常是受版权保护的。
至于反工程软件,您没有对源代码的快速访问,您可以使用反编译。这些程序适用于不同的语言。
对于为.Net编译的语言,您可以使用几个软件,即Jetbrains DotPeek、Telerik JustDecompile、RedGate Reflector。
这些软件将采用编译后的.Net动态链接库并显示源代码。
知道软件的作者可能混淆了他们的.Net代码。这是一个旨在使“反射”或“反编译”.Net代码的输出难以阅读和理解的过程。
已为几种语言制作了破译器。不同的语言比其他语言更容易反编译,因此结果会有所不同。
https://softwareengineering.stackexchange.com/questions/124348
复制相似问题