我需要我的程序是安全的,因为它的内容包括个人信息,如 IP(如果你必须知道,一个私人 IRC 聊天)。我的计划是读取程序的字节,然后创建一个像 AES 这样的对称加密算法来加密字节数组,为了提高安全性,我添加了其他可以处理调试和仿真器的小东西。然后我将使用 codedom 创建我的存根来“携带”这些加密字节。我知道有两种方法可以“携带”代码:
- 将加密字节附加到存根,以便它解密、写入和运行。(称为掉落)
- 将它添加到存根的资源中,以便它可以解密并加载它,以便它能够在内存中运行它。
通过添加到资源然后解密、写入和运行或附加然后解密、加载和在内存中运行,我可以有 4 种方法。我也可以在代码中做一些自己的小混淆,但我怀疑它会产生很大的不同。
方法2似乎被人滥用了,被杀毒软件检测到了,每次调试时让你的项目被杀毒软件屏蔽真的很烦人。当所有程序所做的只是保护自己不被 Red Gate Reflector 等程序轻易拆卸时,这些借口对用户来说只是一个误报。包括数据库信息,例如SQL登录方法,如果反汇编仍然会被分析:
还有更多方法可以做到这一点吗?