Microsoft如何通过逆向工程保护Sql Server二进制文件?

时间:2012-10-21 16:52:32

标签: c++ sql-server visual-c++ sql-server-2008-r2 reverse-engineering

我对Microsoft如何保护Sql Server二进制文件免受逆向工程感兴趣? 例如,我也有一些C ++ DLL,我想保护它免受逆向工程。这个合乎逻辑的事情是将dll编译为机器代码吗?

3 个答案:

答案 0 :(得分:4)

对逆向工程没有技术防御。始终可以在在线仿真器中运行代码,以便完全观察和理解其功能。这是非常耗时的工作,但如果收益是值得的话,可以做到这一点。 1990年代的一个着名例子是Andrew Schulman's work,揭示了Windows 95 API的隐藏功能。

虽然这种分析没有技术障碍,但对于该过程的有用性肯定存在法律和实际限制。如果有足够的时间与合格的工程师合作,您可以完全对任何大型软件包进行逆向工程,包括Microsoft Windows,Office或Oracle数据库二进制文件。您对这项工作的回报是能够制作未经许可的非法软件副本。这没有商业或实用价值。

用于.NET或Java应用程序的混淆实用程序解决了这些语言的特定问题:由于它们支持检查方法和属性名称,因此不仅可以对代码的功能进行反向工程,还可以对使用的公共标识符进行反向工程在原始源代码中。尽管C ++使用符号名称进行链接,但它没有相同的丰富命名信息,因此不需要混淆。应该注意的是,即使使用公共标识符对代码进行反向工程,同样的实际和法律限制也适用于该过程。

答案 1 :(得分:1)

对程序集进行模糊处理将为您的DLL提供合理的保护。周围有许多有用的软件。您可以了解更多关于它们的信息,并确定哪一个最适合您。

答案 2 :(得分:0)

dll是机器代码。任何东西都可以逆向设计。他们依靠两件事。所涉及的努力和混淆。

修改

忘记用MS $提到升级,兼容性(为什么你认为他们偶尔会改变Word文档的格式等)