Tag: 程序

.NET 程序的保护 – 混淆

几乎所有软件程序都能被破解, 只是时间长短的问题, 国外有一个有名的组织是 ZeroDay 意思就是不用一天就可以破解任何软件. 有两种桌面程序,最常见的就是用 C++/Delphi 编写的 原生 native 代码,这样写出来的软件是不容易看到源代码的,因为编译器做了优化和处理.这样的代码的优点是执行速度快,效率高, 但是关键部分的代码,比如 License 验证,有经验的黑客还是很容易破解的. 俄罗斯有一个很有名的商业软件 VMProtect, 用于保护 native 代码,保护强度非常不错, 加壳,压缩,虚拟指令,防虚拟器,防调试程序等功能,保护出来的文件有时候会被一些杀毒软件认为是恶意的程序.因为用到了一些特殊指令,而杀毒软件无法分析.这种情况下可以通过联系杀毒软件公司将程序加入白名单里. .NET 程序是另一大类别.有点和 Java 类似, .NET 程序编译出来不是 本地代码 (Native),而是中间代码(类似JAVA的 ByteCode). …

程序上的画蛇添足

看到一段代码,差点没笑出来.原来的没法直接贴出来, 但大概意思是这样的.比如我们要顺便检查一个数组里是否有存在 0,那么可以这么写,很简单: bool hasZero = false; for (int i = 0; i < arr.length; i ++) { if (arr == 0) hasZero = true; doStuff(arr); } 但是有人却觉得这样太简单了,很不爽,非得要这样: bool …