網際網路軟體如何防破解

2022-09-04 03:12:12 字數 1690 閱讀 4207

國內推廣軟體,你要面對的最大問題莫過於軟體被破解了。很多軟體作者反映說,原來軟體在被破解前交費註冊的人還不少,但被破解後收入就直線下降,連成本都收不回來。您想,有了免費的東西人們還交那個錢幹什麼?

在這裡,我借鑑了乙個軟體作者的防破解經驗:發行1.0版時2.0版已經寫的差不多的。發行1.0版時要把1.0版的防破解或者註冊演算法寫的簡單些等著別人去破解。一但出現1.0的破解,等待幾周,這幾周的時間足以使網上1.0的破解版遍天下。

然後,分析破解過程更改2.0版演算法(層層加密,複雜再複雜),雖無法**破解但可以浪費破解者的時間和耐力!一般情況下,在網上一搜你的軟體已經有破解版了(1.0的)新的破解者很少會再去破解,何況2.0版本更複雜些。我的乙個軟體用了此法,

推出一月後被破解組織破解,公開破解過程及註冊演算法,並做成破解教程。其實破解從某種意義上說是幫我宣傳了軟體。我在乙個月後推出早已經寫好的新版本,還註冊成了「特別版」以迷惑想要破解版的人。使用上述方法後至少在我更新了幾次軟體後的今天仍沒出現破解。

但在網上搜破解版、特別版、註冊版到處都是,可沒乙個是真的。其實一些破解高手只是想試探自己的能力,破解乙個軟體後,一般會把目標定在下乙個軟體上。不過如果你的軟體成為人手必備的工具,此法怕是不靈了。

另外,從技術上講也有一些防破解的方法。

假設你的註冊部分有300行,你可以分成30個inline函式呼叫(一定要inline),func1(),func2()... func30(). 將他們隨意放到程式的各個部分,一定不能放在一起。

不要用memcpy等常用系統呼叫拷貝註冊碼,盡可能自己寫,像memcpy很好寫,效能差點無所謂。經過編譯後inline函式展開,註冊部分和其他**混在一起,他要寫出序號產生器就很困難,因為要向在幾十萬甚至上百萬彙編**裡找出有用的註冊部分那簡直就像是在大海浬撈針。

另外註冊碼也不要放在一起,假設你的註冊碼是12位,千萬不要用乙個12位的陣列放註冊碼,你可以在程式的不同位置定義12個全域性字元變數,每個放一位,這樣註冊碼在記憶體就不連續了。最好再加密處理一下(簡單的字元異或就可以),驗證時再解密。

只要破解者找不到你驗證結束的地方,暴力和loader破解也沒有可能。很重要的一點是不要用連續記憶體儲存驗證用到的變數,盡量將用到的驗證臨時變數分散定義在程式的不同處,再在驗證中,不斷轉移一些值到其他變數中,對付暴力和loader會比較有效。

沒有必要用複雜的加密演算法,更容易成為追蹤的目標。只要你將註冊部分隱藏的足夠好,也沒有漏洞,你花1天寫的加密演算法,破解者可能會花100-1000倍的時間破解。大部分人都會放棄。你將註冊做在一起,就像將你的財寶放在現代保險箱裡,雖然非常堅固難以解密,對於開鎖高手兩分鐘就開啟了。

對於一些比較專業的破解者採用上面的方法也是很有效的但是,還是要避免一些低階失誤例如:不要在記憶體中直接出現註冊碼和明顯的註冊碼比較部分不要給使用者太多的有關註冊驗證的資訊,也不要接收到註冊碼後立刻就進行比較。在軟體的不同功能處實現驗證時的好處還有就是不會立刻執行到驗證**註冊碼,

可以分多次驗證,也可以分成幾部分驗證,還可以分成幾層驗證驗證時,可以盡量多執行一些無用的操作,加上一些象遞迴之類難於除錯追蹤的**,但在其中要穿插實現軟體功能的**,否則人家直接就跳了過去。反正就是越不引人注意越好,亦即越亂越好。

其實要想徹底防止破解也是不現實的,除了研究一下破解方法,在發布前加殼外,並採用以上所說的方法外,不斷公升級程式也是比較好的方法。

總之,推廣軟體對於搞慣了技術的軟體作者來說一開始會走一些彎路,但只要不斷學習成功者的經驗,不斷吸取自己失敗的教訓,你也會成功的。最後,祝大家個個都成為共享高手。

傳統軟體 Vs 網際網路軟體

傳統軟體 vs 網際網路軟體 2009 01 21 13 54 對比項傳統軟體 網際網路軟體 價值評估 軟體的複雜度,開發成本 使用者人群數 使用者價值 只有收費的使用者才是有價值的 免費使用者價值同樣巨大 傳播視角 操作手冊 厚厚一沓,生怕哪個細節考慮不到 部分還要給予操作使用培訓。必須讓使用者不...

什麼是網際網路?網際網路如何運作?

網際網路是乙個互聯計算機網路的全球系統,它使用網際網路協議套件 tcp ip 連線全球數十億臺裝置。它是乙個由數百萬個本地到全球範圍的私人 公共 學術 商業和 網路組成的網路中的網路,通過廣泛的電子 無線和光纖網路技術相互連線。網際網路承載廣泛的資訊資源和服務,例如互聯超文字文件和全球資訊網 www...

網際網路軟體開發和企業軟體開發

聽到一位朋友說當今的軟體開發可以分為兩個方向,乙個是企業軟體開發,通常表現為乙個個訂製的專案 另外乙個是網際網路開發,比如那些使用者百萬,千萬,甚至億萬的門戶 電子商務 等。兩個方向差異很大,幾乎是兩個行業。他說的很在理。企業軟體開發講究的是快速實現企業的業務需求。需求是非常複雜並且多變的,所以要求...