經常大家辛辛苦苦寫個軟體,得到部分人的認同後,想回收點辛苦費,限制些功能,
主要的防破解方式也就加殼,但是別人的殼大部分都是公開的,高手早就有脫殼辦法
所以還是得自己考慮防破解方式
工具/原料
自己的驗證伺服器(資料庫伺服器等)
方法/步驟
破解方式主要是跳過驗證和欺騙驗證
跳過驗證:找到軟體的入口地址,也就是驗證通過以後執行的函式位置
欺騙驗證:另外構建(或虛擬)一個假的伺服器,當你軟體要通過網路驗證時,將地址轉到假伺服器,然後返回驗證通過的資訊
跳過驗證的防破解主要考慮軟體入口防護
防破解方式:
1、將軟體執行需要的資料加密後儲存在伺服器,驗證的同時獲取該資料
2、設定多個入口+隨機入口,入口引數從伺服器獲取
3、多次驗證,軟體執行過程中也可增加驗證
欺騙驗證的防破解主要考慮伺服器驗證後的返回資訊
一般網路遊戲會將封包加密,每次傳送加密封包(同樣的操作傳送不同的封包),然後在伺服器解密處理後返回加密的封包,達到防封包外掛的目的
借鑑一下,我們可以考慮每次驗證過程的加密,然後從伺服器獲取解密後的資訊
例如資料庫伺服器,建立解密對應表,軟體啟動後生成隨機祕鑰,每次驗證同上次驗證的祕鑰作對比,祕鑰相同則重新生成驗證祕鑰
還可以定期修改維護解密對應表,解密對應表越大越難破解
注意事項
防破解加殼只是一種比較通用的方法,自己增強驗證機制心中有數