為什麼很多厲害的軟體卻很容易就被破解,像ps,autocad之類的?
01-14
很多大型的軟體應該有很多高手製作,為什麼一個註冊機或者替換一個文件就可以被破解而免於購買呢?
深層的原因,可以考慮兩個方面的問題:
一個是價值規律。這些軟體對於整個人類社會是如此的重要,無論是基於經濟利益(盜版是為了掙錢的),還是基於」成功破解的成就本身「(對於某些iOS的越獄研究者,可能就包含該種情況),破解它們都有難以抗拒的吸引力。
這也是為什麼有「當利潤率高達xxx%時,連命都可以不要」的說法
另一個是保密的原理。越安全的保密僅僅意味著破壞安全設施需要更高的成本(或指更傾向於無利可圖,這裡的利益依然是廣義的,不僅僅指經濟利益)。
如微軟從wndows 6.2開始使用的新版激活系統,依然可以在某種程度上利用本地搭建的基於qemu虛擬機的KMS伺服器進行破解。但微軟不太可能因此徹底取消KMS這種適合大型機構的授權模式很容易?完全不容易好不。
為了破解一個簡單的軟體,你需要深刻理解:
C語言,彙編/反彙編,操作系統(基本上是Windows),OllyDbg、IDA Pro、WinHex或同類軟體的使用。在此基礎上深入,還需要掌握:腳本語言(perl || python)(輔助調試或編寫IDA插件),密碼學,計算機網路等知識。給你一段排序演算法的彙編碼,你能夠看出是快排還是堆排么……
好了,說正題。一般來說,大型的軟體是有專門的保護模塊的,可能是第三方提供,也可能是公司內成員編寫。但是無論如何,程序只是程序,縱然千變萬化,亦有一定之規。首先,特徵碼必定與你的機器息息相關,比如是網卡的MAC地址,或是其它一些不會改變的參數。然後,對這些參數進行運算,能夠得到一串編碼,這就是我們所謂的「註冊碼」。既然如此,我們知道了「註冊碼」的生成過程,怎樣才能繞開它呢?1. 了解演算法,自己計算,這個就是算號器2. 了解提取的參數,修改此參數,從而使「註冊碼」變為特定值
3. 直接幹掉保護模塊,免除驗證簡單地說就是如此,但是實際上其中難度之大、花樣之多,非專業人士不能明,所以在下也就不獻醜了。原因一:有市場,專業的軟體最便宜的軟體也得幾萬快了,苦逼學生用不起啊。原因二:推廣軟體,現在正版軟體很貴,試用期只有一個月,一個月只能學會使用就不錯了,很難了解軟體的性能,那憑啥要買你軟體,適量盜版的軟體可以培養用戶習慣和認同感,如果沒有盜版軟體,你本來就是個屌絲,幾萬塊的軟體你會買嗎,所以人家本來就在你身上賺不到錢,為啥不睜一隻眼閉一隻眼做個好人。原因三:很少有個人花幾十萬買個正版軟體的,就像遊戲一樣,真正賺還是人民幣玩家的錢,目前國內只有大企業和研究機構才會使用正版,小點的企業都用盜版的,專業的軟體幾十萬都是少的,不過有的軟體會留下一些後門,會偷偷收集你使用盜版軟體的證據,等你公司壯大了,等警告吧,要麼買正版,要麼吃官司。所以說,破解軟體是有難度的,但是有句話叫水至清則無魚,軟體公司也不會太變態,大家都用正版是不可能的,如果真實軟體加密逆天到無法破解的地步,呵呵,那麼就是開源免費軟體崛起之日,您也賺不到錢了。
簡而言之,需求量越大的軟體就越容易出現破解版。無論這個軟體售價如何,只要用的人多了,就會有人研究破解。原因也很好理解,做破解軟體是有利可圖的,途徑很多,掛馬,廣告,轉賣等等。
推薦閱讀:
※我如果想寫個程序用這個程序去控制一些硬體,具體步驟是什麼,軟體是如何通過什麼介面去控制一個硬體的?
※為什麼很多人都討厭 360?
※如何客觀公正地評價PHP語言?
※有哪些實用的電腦軟體值得推薦?
※ADSafe或類似的廣告屏蔽軟體安全嗎?