记录一次xx应用的伪破解(一)(去广告 增加vip功能)
為啥叫偽破解
因為本人覺得沒有太大的技術含量,這次破解沒有涉及到so加密,加殼脫殼 IDA動態調試so等技術要點,純粹的屬于靜態分析。
文章目錄
- 為啥叫偽破解
- 實現了哪些功能
- 工具
- 一些廢話
- 破解VIP的投屏功能
- 破解APP的簽名校驗功能
實現了哪些功能
工具
所謂工欲善其事必先利其器,良好的工具可以為我們節省大量的時間。本文涉及到的工具有
androidKiller 一個不知名的大牛開發的安卓反編譯工具,其實本質還是apktool dex2jar ,jd-gui的集成,只不過圖形化了界面,使用更加容易。
J2S2J1.3 52破解上扒來的一個工具,可以將java代碼編譯為Smali代碼,我們知道,反編譯別人的應用,我們首先看到的都是smali代碼,雖然 可以反編譯看到java代碼,但是我們的操作只能在smali代碼上進行操作,有時候我們不知道smali代碼怎么寫,這個工具就派上用場了,可以寫好java讓其編譯為smali代碼,然后復制粘貼即可,當然這不是說smali代碼不重要,還是很重要的,要不然你就算得到了smali代碼你也不知道怎么去修改。
關于smali代碼的教程,可以參考 吾愛破解安卓逆向入門教程 這個教程一定要看,要不然入門都困難。
一些廢話
話說做安卓開發也好些年了,天天寫業務是真的煩,這次好不容易閑下來,終于能補充一些知識了。市面上有很多小而精的個人開發軟件,或者小團隊的軟件,都能急人所需實現一些人們想要的功能,但是通常情況下這些應用要么廣告滿天飛,要么就是要VIP,由于技術團隊限制,這些應用通常沒有進行加殼或者加密處理,即使是進行了簡單的混淆,對于安卓開發人員來說基本沒啥用,能猜出個差不多的邏輯。
作為安卓開發人員豈能只滿足于寫UI 呢,豈能滿足于 滿世界找xx破解的應用呢,肯定要是自己動手,豐衣足食的。
還是那句話,安卓開發不能忙,一忙就只會寫UI了。
破解VIP的投屏功能
下載原版的南瓜影視app,可以在視頻詳情頁看到 投屏功能,這個功能很多視頻app都有,但是把這個功能做成VIP專享就不地道了。先看一下截圖,然后辦他。
接下來就是重點了,所有的破解思路都是這個套路。
打開androidKiller這個軟件,打開我們要破解的apk,
接下來你可能會遇到一些奇奇怪怪的問題,比如打開失敗,資源文件出錯等問題,出現這個問題可以點擊 Android---->
APKTOOL管理器來更新一下apktool,我用的2.3.2版本。因為有些應用會利用apktool版本的漏洞來達到防止反編譯的作用,這個時候下載個最新的版本更新即可。
也可能會遇到卡死在反編譯源碼,這個時候記得按照這個帖子,https://www.52pojie.cn/thread-646293-1-1.html 進行修正即可。
修正完如果還是卡死,直接關閉androidKiller,再打開就行了。
打開AndroidKiller后,按CTRL+F ,進行搜索,如圖
搜索完畢,會在信息欄展示搜索結果,如圖所示
很幸運我們這次搜索的內容在Strings.xml中存在,有的文案是寫死在java代碼里的,我們直接搜索漢字搜索不出來的時候可以將漢字轉為Unicode,在進行搜索,如圖
找到這個文案后,就是我們的突破點,我們以后的破解基本都是這個思路,一個是文案,一個是資源id。
雙擊點開搜索結果,會看到這個文案的命名
同樣的方式,搜索這個名字,然后再搜索結果里找到public.xml文件,這樣我們就可以找到它的資源id了,同樣的方式鍵入資源id,點擊搜索,會得到如下結果
這個就是廬山真面目了
雙擊打開該文件,可以看到如下smali代碼,
如果你看不懂這些代碼,沒關系,但是我強烈建議你要看懂,實在看不懂的話,點擊AndroidKiller的咖啡杯按鈕
會自動幫你轉化為java代碼,如果這時候你提示源碼丟失請按照這個帖子https://www.52pojie.cn/thread-646293-1-1.html 再認真做一遍。
源碼打開后,AK會自動打開jd-gui程序,在該程序頁面,我們搜索之前的資源id 0x7f0f009f,但是我們不能直接搜索了,我們要將其變為10進制后進行搜索0x7f0f009f的10進制為 2131689631,按ctrl+f,搜索得到
可以看到代碼被混淆了,但是對于有經驗的開發人員來說,這個混淆功能和沒混淆一樣,我們可以大膽的猜測這個功能只是個彈框,里面有點擊等相關邏輯,其他沒什么重要信息。
所以,我們重點應該放在哪個地方調用了它,搜索FI()這個方法,查看哪里調用了。得到這個方法
bingo,直覺告訴我們就是這里了,判斷(!this.mUserLevel.equals(“2”)) && (!this.mUserLevel.equals(“4”),如果用戶等級不夠,就彈框告訴用戶這個功能需要特權用戶,然后代碼return掉,不在請求投屏,所以我們要做的就是改掉這段邏輯,但是直接修改java代碼是肯定不行的,我們要回到smali代碼中。
打開AndroidKiller,找到FN()方法
然后閱讀smali源碼,并參考java源碼,按道理我們只需要屏蔽掉彈框 和return語句即可。
怎么屏蔽呢,萬能的#符號,這個符號和java的//一個意思,表示注釋掉這段代碼,所以修改方法如下:
關于smali語法的知識這里不過多解釋,可以自行百度學習,這里就默認為你有一定的smali語法知識了。
屏蔽完這段代碼,我們就可以打包測試了,打包之前記得按一下ctrl+s保存一下代碼修改
編譯過程中你可能會遇到這個問題 **Android Killer回編譯錯誤:No resource identifier found for attribute ‘keyboardNavigationCluster’…**參考一下這個鏈接解決 https://blog.csdn.net/weixin_34115824/article/details/87328652
編譯完成后,會自動進行簽名,然后點擊AK面板上的安裝按鈕
會進行安裝,在此之前請打開你的手機鏈接電腦,并開啟了開發者模式usb安裝。
安裝完畢,打開
很不幸,遇到了這個問題
很顯然,我們遇到了簽名校驗。所以接下來,我們開始破解簽名校驗,方式和上面的如出一轍
破解APP的簽名校驗功能
打開AK(以后下面均只AndroidKiller),搜索您的安裝包異常,可以看到搜索結果為
不要灰心,記得上面說把漢字改為Unicode格式嗎,我們轉化一下重新搜索,binggo,搜索到了
雙擊打開,點擊咖啡杯,查看java源碼
可以看到if語句里的Eh()方法,所以這個方法就是突破點,搜索找到這個方法查看源碼:
對于原生安卓開發人員來說,看到SHA1這個,大概率就是簽名校驗了,所以破解簽名校驗的關鍵就是干掉這個方法或者讓它永遠返回true,我們選擇干掉這個判斷語句。也就是if(Eh())…萬能的#
屏蔽代碼如下:
保存—>編譯—>安裝—>運行
沒問題了,不再提示安裝包異常,打開視頻播放頁,點擊投屏
完美,已經可以投屏,由于我是模擬器,就不演示了,我自己用手機投屏測試,沒問題。
至此 我們完美破解了VIP的投屏功能,簽名校驗功能。
接下來,我們將破解VIP的下載功能,代理校驗功能,開屏廣告以及彈窗廣告,穿插廣告
篇幅有點長,放在下一篇。
總結
以上是生活随笔為你收集整理的记录一次xx应用的伪破解(一)(去广告 增加vip功能)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java计算机毕业设计同学录网站源程序+
- 下一篇: Qt 中控件右击菜单的翻译