• 标 题:Visual CHM2.x的加密算法 (1千字)
  • 时 间:2001-10-13 22:58:02
  • 链 接:http://bbs.pediy.com

____Visual CHM 推出已经2个月了,2.0版后我见过几个破解版本,但是到现在都没有一个成功的破解版本,很多朋友问我是怎么加密的,我现在决定公布一下2.X(每个版本的加密方法都是一致的)采用了什么方法防破解。算是对中国共享软件作的一点点微小贡献吧!
 
_
___首先要防止被写出注册机, 你的软件的注册机一旦被发表, 那你完全有理由做成免费软件了。防止被写出注册机 最简单的方法就是保护你的校验算法,具体的做法就是千万别使用校验函数,把你的校验算法嵌入功能代码里是比较 保险的,这样破解者至少要花很多精力去研究那一部分是校验算法。当然这还不够,你还可以把检验算法分散到2个地 方。 我想如果不是象WinZIP、ACDsee这样的大牌软件,很少会有人去找出检验算法了(太头疼了)。做完了这些, 你还可以用Aspack,upx之类的压缩执行文件工具做进一步的保护。完了吗?还没有,我这里还有一些更用的东西。 现在的脱壳工具太多了,可以说是没有脱不掉的壳。那怎么办?我这里有一段Delphi5代码更进一步的保护你的软件:
procedure TForm1.FormCreate(Sender: TObject);
Var
  exefile :file of byte;
  ConstStr:byte;
begin
  AssignFile(exefile, Application.ExeName);
  reset(exefile);
  filemode := 0;        //读写属性设置为只读,这样才不会出错!
  seek(exefile,5);      //exe文件的第5+1个位置(自己设要查找的位置)
  Read(exefile,ConstStr);
  //showmessage(inttostr(ord(constmi)));//看看实际是多少(假定为56)
  closefile(exefile);
  if ConstStr <> chr(56) then exit;//如果第5+1个位置的值不是56退出(说明你的软件被改动了)
end;

____这段代码随时随地都可以加入,真的非常方便。 不过你要注意的是,万一用户的机器染上了病毒怎么办。 保护了检验算法,还要保护什么呢?其实还是校验算法,不过是最关键的判断注册成功与否那段代码。我想应该 是没有太好的方法,只是千万不要用明文比较。再想保护深一点就加入一些冗余代码,让Cracker在这堆代码里转的头 晕脑涨,你的目的就达到了。
____最后,有些话不吐不快。1.(引用别人:)加密是救不了共享软件业的!在好的加密技术也有人能解开的!与其花费时间去加密,不如把自己软件的功能增强些! 这样可能会有更多的人支持您的!!(整天跳出窗口是谁也烦了)! 我认为Cracker们其实挺可爱。 2. 此MM非彼MM,大家别误会!