引用 | 編輯
blueprint
2005-01-02 03:40 |
樓主
▼ |
||
x0
顧名思義,寫註冊機來破解軟體註冊的方法,就是模仿你的註冊碼產生算法或者逆向注 冊碼驗證算法而寫出來的和你一模一樣的註冊機。 如果被寫出註冊機,你的軟體只好免費了。或者你必須更換算法,但以前注過冊的合法用戶都得被迫更換註冊碼了。 Cracker要寫註冊機必須詳細研究你軟體的驗證模塊,這必須先將你的軟體脫殼,再反彙編或者用除錯器跟蹤。市面上許多加殼和保護軟體都吹噓不可能被脫殼,但到目前為止沒有一個軟體兌現了自己的諾言。 由於CPU最終執行的都是有效命令,所以等你的程序自解壓完成後再從記憶體中Dump出來就可以實現脫殼。因此不要在殼上面花很多功夫,因為沒有這個必要。 第一招:製造假相 反彙編和除錯器跟蹤都是不可能防止的,因為所有的Win32程序都必須通過API來使用Windows系統中的關鍵DLL的(如Kernel32.dll、無法使用之字串32.dll等),然而API是可以Hook的。我們只能從自己的代碼著手來保護我們的勞動果實了。 為了自己調試和以後維護的方便,我們一般採用有意義的名字給我們的函數命名,可這給了Cracker可乘之機。例如這樣的函數是什麼意思大家應該一目瞭然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……這樣Cracker就可以輕鬆地從數千個函數中找到他的目標——你的註冊碼校驗函數!而且破解Delphi編寫的軟體還有一件TMG小組的破解利器——DeDe。 它可以輕鬆地看到你軟體裡的Form、Unit和函數名,還可以反彙編一部分代碼,更可以和Win32DASM合作反彙編更多的代碼,對Delphi編出的程序威脅極大。 為了不給Cracker創造溫馨舒適的破解環境,要故意混亂(Obfuscate)我們的代碼,將軟體中所有的函數名全部替換成隨機產生的函數名。 例如Func_3dfsa_fs32zlfv這個函數是什麼意思?恐怕只有天知道了。網上有現成的代碼混亂器,按你使用的編程語言的種類可以找到一些。 但要注意,只有當你要發佈軟體時才使用它,而且一定注意備份源程式碼。否則,當你看不懂你自己的代碼時就著急了:) 第二招:用公匙,並改名 另外,一定要使用公開密匙算法保護你的軟體。RSA、DSA和El Gamal之類的算法都可以從網上找到。 但注意 .. 訪客只能看到部份內容,免費 加入會員 x2
|
引用 | 編輯
Pein-pieman
2009-04-10 10:32 |
8樓
▲ ▼ |
wow! this is soo difficult to understand:P
x0 |
引用 | 編輯
hunter_dny
2009-04-16 11:56 |
9樓
▲ ▼ |
有點看不懂
有沒有更 明理的教學呢 還是感謝大大的教學 x0 |
引用 | 編輯
ray1007jp-86
2009-06-13 02:19 |
10樓
▲ ▼ |
哇!的確要深入研究才有辦法完全了解,
向來對這方面還算蠻有興趣,不過這個恐怕還遙遠的呢!! 但還是謝謝樓主貢獻!! x0 |