首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教怎么防破解呢

2012-04-15 
请问如何防破解呢?在程序里大致这样写:if a1 thenMainForm.showelsebeginshowmessage(非法版本)exite

请问如何防破解呢?
在程序里大致这样写:
 if a=1 then
  MainForm.show
 else
 begin
  showmessage('非法版本');
  exit;
 end;

以上程序很容易被破解者跳转破解,请问大家有什么好的方法防破解吗?

[解决办法]
这个话长了,防止破解方法
(前6条属于可选操作)
1 函数名和变量名要求无意义
2 代码里不要写备注
3 适当增加一些无用代码的调用,例如没事找事计算下日期,但是无用代码的结果值并不是扔在一边不用,而是偶尔也会传入某个函数进行判断,此方法特别适用在有加密锁的程序
4 与普通代码规范相反,适当进行goto等跳转以增加程序破解难度
5 可以将关键信息写入注册表或者配置文件用来教研程序过期或者是否激活等
(后4条为必须遵循)
6 涉及密钥,密码的变量不能以明文的形式出现在程序代码中,那人说怎么办咧?数据库,加密锁,总之尽量在外部保存,程序内部只进行加密校验
7 加壳
8 对于有加密锁的软件,将部分代码或运算内嵌加密锁,8过需要一点c和汇编的功底
9 同样对于加密所软件,程序中绝对不能出现加密所的adm key以及可以操作锁内数据段以外写入读取的代码

估计公司老总看到前4条会晕死
[解决办法]
加壳会被脱壳,反调试还是会被调试。防止被破解还是需要花心思的。

这里我建议个加壳工具 VMPROTECT ,就是常说的虚拟机,如果你的软件是商业化产品,请一定

使用正版的VMProtect进行加壳,1个是保证安全性,同时正版的Vmprotect里的数字水印是独有的,

不会造成杀毒软件误报。

热点排行