軟件防破解技巧

  孰不知再好的盾也有矛可以刺破一樣,世界上很多nb的軟件用了好多nb的防破解技術,結果還是被強大的黑客一一攻破,那對於我們這樣的小程序員或小公司來說,既然nb的技術沒有用,我們也沒有那nb的防破解技術,何不如化有形爲無形,不去用技術問題解決軟件的防破解。

  個人總結:軟件防破解其實不是技術問題,而是一個社會工程學問題。

  現在就給大家幾條在開發軟件的過程中幾招百試不爽的軟件防破解技巧,這些非技術的技巧實現起來很容易,但是防破解的效果是大大的。以我的軟件爲例(http://www.boneb.com/)

  1、試用版就是試用版

我前幾年開發過一款叫做網絡信息採集專家的軟件,分爲正式版和試用版,這個軟件最主要的目的就是採集數據,試用版和正式版的區別就在於試用版不能保存採集下來的數據。在這種情況下,很多做軟件產品的程序員,在軟件裏區別正式版和試用版就僅僅是靠註冊碼驗證而已,這種情況下,只要試用版被破解,那正式版就到手了,而我做的時候思路就是,正式版不提供公開下載,只有用戶付費後才提供下載地址,公開發布的試用版裏徹底不放提供保存數據的代碼,造成的結果是,很多破解者得到試用版後就破解,令他們高興的是,軟件很容易破解(我的加密算法本身就不想寫得太複雜),但令他們沮喪的是,破解成功後,試用版還是試用版,改有的功能還是沒有。這個招式適合軟件使用量不是特別大的用戶,依我的看法,95%的軟件使用量都不算大,所以這招其實大家皆可用之。

  2、開發“破解版”

  呵呵,大家是不是不理解這一點,以爲我打錯了呢,對,沒錯,就是自己製作自己軟件的破解版,在軟件正式版發佈後,你可以同時製作一個假的“破解版”,也就是從軟件表面上讓大家認爲這是個破解版,實際上用了一小段時間後,就發現這個破解版是不可用的,或不好用的,這個時候你的“破解版”再適時彈出“破解失效,請到××處購買正式版”等宣傳話語。然後你把這個假的破解版找幾個有名的破解站上傳,這個時候真的破解版還沒出假的破解版就已經滿天飛了,這樣的情況下大多數用戶都不可能下載到真的破解版,並且上了你的當用了假的破解版後,定會對破解版大失所望,認爲網上流傳的破解版都不可用,這樣就更有可能購買你的正式版軟件。

  3、讓簡單的算法不簡單

  你可能用來以防止破解的算法比較簡單,但這並意味着你就不能有效的阻止破解,我們照樣可以用簡單的算法把破解者弄奔潰掉,我的軟件用了5種破解算法,每種算法都不是很複雜,估計單個破的話也就10來分鐘的事情,但我的做法是沒有將所有算法全部用於同一時間同一處進行註冊碼的驗證,而是分散到軟件的不同功能,不同時間來驗證,有的是軟件啓動,有的是點某個按鈕的時候,有的是當時間達到某個條件的時候,破解者往往是把軟件啓動時候的驗證給破掉,但是他在使用過程中又會經常隨機的遇到很多驗證失敗的提示,而且這些過程隨機,可能除了作者,沒人知道這背後有多少處驗證,這些驗證又是什麼時候觸發,所以這種做法能讓破解者抓狂的說。另外很多破解者僅僅是爲了破解而破解,自己本身又不用被破解的軟件,往往是啓動階段的驗證一破解掉,就認爲大功告成的開始發佈“成功”破解版。

  4、聯網驗證

  如果你的軟件是基於互聯網提供服務的,你可以在軟件中寫一段代碼到你的網絡數據庫中取信息,取到這些信息軟件纔可正常使用,當然這些數據必須是軟件必須的,而且是不可僞造的,否則破解者把你聯網驗證的這段代碼給爆破掉照樣可以正確破解。

  5、服務爲本

  儘量讓你的軟件提供的是一種服務,而不是某項技術本身,如果僅僅是某項技術,軟件一被破解,用戶拿到破解版的軟件就不再需要你了;如果是服務,即使用戶得到了可用的破解版,他可能還是需要轉而尋求你獲得技術支持,通過這種策略也可以避免破解帶來的巨大損失。

  好,就寫這麼多,這些辦法一用上破解者就很難破解你的軟件了,而且你完成這些工作也不需要太多時間,更不需要money,以我的網絡信息採集專家爲例,從2003年發佈至今,我還沒有遇到過真正的破解版,倒是經常看到一些破解論壇上對於我軟件的破解感到非常困惑,無技可施。

本文轉自http://www.boneb.com/,轉載請註明出處,並保持鏈接,謝謝!

發佈了28 篇原創文章 · 獲贊 8 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章