Visual CHM2.x的加密演算法 (1千字)

看雪資料發表於2001-10-13

____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,大家別誤會!

相關文章