shareware的作者們,你們可以使用微軟的CRYPTOAPI來加密註冊碼或者關鍵的程式程式碼! (911字)

看雪資料發表於2000-09-05

Cryptography API在MSDN中有簡單介紹。

如果用CRYPTOAPI來生成註冊碼,則你的註冊碼在目前根本無人能夠破解,即不知道加密金鑰的人是無法得出一個正確的註冊碼的,就象The BAT!一樣。但是隻這樣做的話別人還是可以強行修改程式中的JNZ、JZ指令使得軟體成為註冊版本。

如果釋出軟體之前將關鍵的指令程式碼(比如只有註冊使用者才能使用的那段程式碼)用CRYPTOAPI加密,加密金鑰和解密金鑰都不在軟體的發行版中出現(即使使用偵錯程式也無法在程式的發行包中得到)。用註冊碼作為解密金鑰,即當使用者輸入註冊碼之後,程式用該註冊碼(或該註冊碼的一部分)作為解密金鑰試圖去解開事先加密好的那段程式碼,如果是註冊使用者,則解開的程式碼是可以執行的,否則解開後得到的只是一堆垃圾,只要一執行就必然出非法操作。這樣該軟體可以說是無法破解的了。

為了使得不同的註冊使用者都可以解開同一個發行包,解密金鑰應該是固定的一個串,即註冊碼是個常數串,不包含註冊使用者的資訊。這樣一旦已註冊使用者得到該註冊碼,就可以任意傳播,這是該方法的缺陷。沒有好的方法可以在註冊碼中嵌入使用者名稱。

相關文章