从RE保护我的程序

时间:2015-12-27 12:39:40

标签: c++ security authentication

我创建了一个程序,我想制作一个Rent选项,并且需要从RE中获取它, 我希望租用我创建的程序的用户将拥有任何身份验证,即使用户撤消它,该软件也无法正常工作,

我该怎么办?我应该添加什么? 寻找有关如何确保我的程序可以选择租用

的建议

编辑: 将它从c#更改为c ++ 有可能吗?

EDIT2:

我认为这是不可能的,我该怎样做才能让RE变得更难?

我有可用于身份验证的网站。

1 个答案:

答案 0 :(得分:2)

这是一个共同的愿望。首先,要了解您永远不能真正制作出无法逆向设计的程序。大多数“反逆向工程”技术旨在使逆向工程师的工作更加困难,并且可能只对业余爱好者非常有效。我将列出我从逆向工程恶意软件中接触过的两种流行技术。这是一个逆向工程领域,可能会看到反RE方法中最复杂的一些,因为恶意软件作者不断改进技术,使其原始代码不易访问和可读性低。

  1. 反调试&防反汇编。这包括在程序中包含代码,这些代码会导致已知(常见)调试或反汇编软件出现故障或在程序运行时崩溃。或者,如果在程序运行时发现在计算机上安装了反汇编程序或调试程序,则阻止代码运行,禁用自身甚至崩溃操作系统的能力。请参阅:IsDebuggerPresent function (msdn)"Stack Necromancy: Defeating Debuggers By Raising the Dead""Anti-Disassembly techniques used by malware (a primer)"

  2. 代码含糊不清。这涉及以令人困惑和分散注意力的方式编写原始代码(spaghetti code),以使得难以确定程序的意图和行为。请记住,如果执行不正确,这可能适得其反,因为使您的代码很难做出正面或反面显然会影响双方。请参阅:"Obfuscation (software)""Cryptographic obfuscation and 'unhackable' software"

  3. 有关这些技术的实际实施指南,请参阅:"An Anti-Reverse Engineering Guide"

    请注意,在合法软件上使用反RE技术(尽管很常见)是一种糟糕的安全措施,安全社会不赞成这种做法。更不用说如果某些事情难以闯入,它通常会成为一种挑战。请参阅:"Security through obscurity""Hacker ethic"