首頁>數碼>

剛上大學那會兒,安卓系統還沒有像現在這樣普及。因為它的開源以及相對塞班等系統的優點,促使它沒用多久就迅速成為移動端使用最為廣泛的系統。

記得我的第一部安卓手機系統是2.2的版本,現在安卓11都開始適配發行了。那個時候的我喜歡折騰手機,當時手機root和刷機非常火爆,大街小巷到處都能看到有那種掛著刷機、解鎖、root牌子的小店子。網上到處都是獲取root許可權的軟體,像什麼kingroot、百度一鍵root、360一鍵root等等。

筆者當時也很是痴迷於手機破解,逛了好多刷機解鎖論壇,所以,筆者經常刷自己的手機,獲取root之後,解除安裝掉系統自帶的一些預製軟體。當時由於不懂安卓開發技術,對其系統的概念也是沒有任何概念,就是跟著論壇大神一起折騰。記得有幾次還把手機桌面給解除安裝掉了,然後再開機就無法操作手機了,不知道有沒有人經歷過手機沒有桌面的那種情況:開完機之後,就顯示黑屏,只有通知欄是顯示的。

折騰了手機刷機和root之後,偶然間,看到了一個比較好用的計算器軟體,它的功能在當時來說已經非常完善了,包括二維、三維函式影象繪製,科學計算,微積分,線性代數等等,功能非常強大,好像還可以多行顯示。但是唯一的缺點就是它集成了廣告而且還是英文的,筆者英語是個二把手,所以使用很費勁。

所以,當時筆者就想著可以不可以破解了它,不讓他顯示廣告,最好把它翻譯成漢語的。由於筆者當時沒有學過安卓開發,對於它的語法一無所知,更別說是安卓逆向破解了。但由於自己是計算機專業的,也比較愛折騰,所以就開始在各大論壇上搜索有關於安卓軟體破解的教程,主要是破解去廣告以及漢化。

還好,在我的前面已經有好多人和我一樣,他們把軟體破解的經驗都記錄下來了。於是我就跟著他們的腳步,知道了apktool,dex2jar,jd-gui等等破解工具。一開始不懂安卓介面是使用xml編寫的,所以就通過搜尋字串的方式,找到需要修改的介面,然後機械的跟著教程把layout_height的值改為0dp,也不知道這個屬性具體是怎麼解析的,也不知道dp是個什麼東西,只知道大概意思就是把高度改為0了,所以廣告就不現實了。

對於漢化介面,一開始同樣的,不清楚安卓的設計模式,根本不知道介面顯示的字元是怎麼存放的。反正就是跟著論壇教程,一股腦的、機械的通過工具搜尋字串,然後在通過翻譯網站把原來的字串翻譯成漢語在替換回去,最後通過工具在重新打包、簽名,然後就可以使用沒有廣告的並且漢化了的軟體了。

後來,由於筆者對安卓開發比較有興趣,所以,在課餘時間,就通過自學的方式學習了安卓開發。然後再回過頭來看我之前使用的那些工具,以及當時機械的修改的那些軟體,才明白當時為什麼要那樣修改。

我記得當時筆者學習安卓的時候,可以說是一波三折,三起三落,步履維艱。我當時第一本安卓教程書籍是李剛的《瘋狂Android講義》,儘管這本書講得非常仔細,也很適合沒有基礎的人學習。但是,筆者當時有一個毛病就是遇到看不明白的地方,並沒有和大多數人一樣跳過它們,而是自己在那裡苦思冥想,非要把它搞明白了才願意繼續學習下一節。所以,當時筆者是非常苦惱的,甚至差點都要放棄了,還好,筆者沒有放棄,並且最後也搞明白了。

最近,由於偶然間看到了那種手繪的視訊,感覺很高大上,所以就想著怎麼製作。於是就從網上找到了幾個App,也下載下來使用了,感覺挺好用的。但是我還沒有使用幾次,它就開始彈出付費購買的介面了,然後就不能使用了。這週末一時閒來無事,就想起了當時上學時破解軟體的經歷,於是就打算再看看這個軟體是否可以破解付費功能。

簡單看了看,也了解了這幾年軟體破解相關的內容,發現軟體不光是進行了混淆,而且還是用了加固。於是自己嘗試著先去脫殼,還好,殼成功的脫下來了,然後就使用反編譯工具去檢視程式碼呼叫流程,想嘗試著修改掉付費功能那塊的呼叫邏輯。

但是,很不幸,因為破解軟體之後需要重新打包,所以就破壞了原來軟體的簽名,只能使用新的簽名金鑰檔案來簽名軟體。我簡單的修改了下,然後編了一個版本,安裝之後,發現沒有成功,於是就又去看了看程式碼呼叫,發現關鍵的地方都是使用native方法,cpp編寫的so庫實現的。對於so的反編譯就沒有Java那麼簡單了,於是我就放棄了。

現在回過頭來看看這件事情,從開始破解到最後發現不可行,整整耗費了我一天的時間,感覺真是不值得。而且這種破解別人的軟體也不道德,畢竟人家制作軟體耗費了精力和時間,這樣不勞而獲的破解,真的是很不好的。另一方面,現在的反破解技術已經不是當年筆者去廣告漢化時的那個層次了。

所以,筆者在這裡建議大家,不要再去破解別人的軟體了,筆者今後也不會去破解別人的軟體了。他們辛辛苦苦做出來的軟體,限制幾個付費的功能也是可以理解的,這對於他們來說也算是人家正當應得的,畢竟人家為此付出了時間、精力和腦力。

最新評論
  • 雙11 神舟放大招,11代i7筆電直降1100?
  • 手機作業系統的流暢度排行榜,你知道嗎麼?