逆向工程二进制文件的内容?

时间:2013-11-18 06:27:19

标签: c++ registration reverse-engineering shareware

我正在为我的应用程序的注册用户创建一个二进制文件。 用户已经知道文件中存储了哪些信息,因为他在注册时向我提供了该信息。 每次启动我的应用程序时,都会读取注册文件并将其与从硬件获得的信息进行比较。 因此,我担心“超级用户”是否能够理解信息存储在文件中的逻辑。

长话短说,是否可以对二进制文件的内容进行反向工程? 如果是,那么检查注册申请的更好方法是什么?

1 个答案:

答案 0 :(得分:2)

Binary对任何具有逆向工程经验的人都不会有任何障碍。 “回到我的日子”(90年代)二进制文件是一般的默认选择。

黑客将能够打败您的注册过程,而不是通过伪造注册文件,而是通过更改检查它的指令。 (顺便提一句,指令也是二进制的。)加密是没有用的,因为一切都在一台机器上,黑客可以用程序内的调试器读取RAM中的明文。并不是说他们可能会关心,因为他们会改为设置标志以显示错误并退出的“业务逻辑”。

将注册绑定到特定计算机也会使合法用户在升级或切换计算机时感到沮丧。

这个在线时代的一个好方法是让机器给家里打电话,但它有点突兀。

就在我的脑海中,您可以根据注册哈希码和实时时钟以不规则的间隔访问服务器(确保正确处理时区)。由于它没有在应用程序发布时完成,黑客将很难找到它。如果两个不同的IP地址在同一时间用相同的哈希码打电话回家,请指示他们全部删除注册文件并提示用户重新注册。