我是个程序员。我已经大约5年经验的编程在不同种类的语言。我是担心我的代码速度,有关优化存储器,使用我的代码,以及有关良好的编码式等等。但从来没有想到如何安全的我的代码。所以我必须拆开我的代码看看有什么可以做一个黑客。会是很容易破解我的代码?我看到了,是!这是非常容易的,因为我是储存

  1. 序列号为一个字符串
  2. 加密的密码

因此,如果一个人具有最小的知识汇编,他/她可能只是简单的dissembler和后10-20分钟的调试我的代码被破解!!!甚至它可以通过开exe带记事本,我猜!:-)

那么我要求如下:

  1. 我应该商店那种安全的信息?
  2. 什么是共同的战略提供一个安全代码?
有帮助吗?

解决方案

第一件事你必须知道的是,你永远不止一个确定的反向破裂的任何保护计划,因为任何代码可以做的,反最终将找出如何以复制。只有这样,你可以实现的任何排序的可靠保护是有运输程序不过是一个愚蠢的客户和有首当其冲的软件上的一些服务器的转换器没有访问。

用这种方式,可以肯定使它 更难的 对于将转换器来打破你的保护。 混淆 是的排序的第一步,在实现这一目标。我有没有使用经验obfuscators但我敢肯定你可以找到一些建议对一些在如此。如果你使用了低级语言等C/C++、简单的编码与充分优化并剥离的所有调试的符号让你一个体面的混淆。

我读 这篇文章 几年前,但我仍然认为这是技术保持了今天。它是一个开发商的一个视频游戏叫斯普谈论设置的技术,它们用于防止海盗行为。他们要求它不是直到3个月之后发布的一个破裂的版本,这是相当令人印象深刻。

其他提示

如果你感到关切海盗行为,然后还有许多途径可以采取。使码的安全更严格(模糊处理,许可代码,结合软件的一个特别的电脑硬件/软件狗保护,等等)是其中之一,但这是值得铭记 软件可以被破解,如果有人充分的人才能被打扰。

另一种办法是考虑到定价模型软件。如果你收费1000美元的副本,然后有一个很大的激励对于人有一个去破裂。如果你只收取5美元然后为什么有人打扰到裂缝吗?

所以我们需要的是一个平衡。甚至最基本的保护会阻止普通人做的休闲的副本。除此之外,简单的技术(混淆和许可代码)和合理的定价战略将举行最想要饼干在海湾通过它不值得打扰的破裂。在那之后,你开始进入更加复杂的技术(转换器/CDs需要将运行该软件,只有能够运行该软件后登录到网上许可证制度),采取了很多努力的成本实现和明显加大的风险恼人的真正的客户(记得怎么惹恼了每个人都得到了当时他们买了一半的生活,但它不会让他们玩的游戏吗?) -除非你有一个受欢迎的主流产品(即一个巨大的收入流,以保护),有可能不能多点去,很多努力。

使它的网应用程序。

它通常不会很好的保护,除非有一个外部服务做检查那你是在控制和服务仍然可以被欺骗的那些人真的想要"裂缝"。相反,信任的客户和提供的唯一最小版权的保护。我肯定有一篇文章或播关于这个由Joel Spolsky的地方...这里是另一个 有关这样的问题.

我不知道它是否会帮助,但是Windows提供(自2000年以来)一个机制,以检索和储存加密信息而且你还可以盐的这种存储每个应用程序的基础,如果需要的话:数据保护API(DPAPI)

这是一台机器上或者一个用户一级,但存储连续剧也许有些钥匙使用它可能是更好的比让他们隐藏在应用程序?

什么样的安全是你在说什么?安全从这个角度说你守着你的用户的数据呢?如果是这样,研究一些实际加密和利用 现有的 图书馆的加密数据。Win32API是漂亮的好。

但如果你在谈论停止裂偷你的应用程序?有许多方法,但只是放弃。他们缓慢的饼干,他们不阻止他们。

首先,你必须定义什么代码应该是安全的反对是安全的,因为这样毫无意义。

你似乎是担心反向工程和用户产生的许可代码没有支付,不过你不这样说。要为难你可以混淆你的代码的关键信息的各种方式。有区技术使用的调试器的难度,防止反向工程师,从逐步通过代码和看到的信息清楚。但是这只能使用逆向工程有点困难,不是不可能的

另一个共同安全的威胁,是执行不必要的代码,例如通过缓冲区溢出。

一个简单的技术,这样做是异或超过你所有的代码和异或回来的,当你需要它...但是,这需要一种与生俱来的知识的会...我不知道,但你可以试试这个:

void (*encryptionFunctn)(void);
void hideEncryptnFunctn(void)
{
    volatile char * i;
    while(*i!=0xC0) // 0xC0 is the opcode for ret
    {
        *i++^=0x45; // or any other code
    }
}

来防止黑客观看你的代码,则应使用混淆。一个混淆将使用各种技术,这使得极其难以有意义的模糊的代码。一些技术使用的字符串密、符号重新命名,控制流模糊处理的,等等。检查了 密码混淆 它另外还有外部的呼叫的方法躲藏,抗反射器,反调试,等等

我们的目标是设立许多障碍,尽可能在路径的一个可能的黑客。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top