當前位置:
首頁 > 最新 > Android逆向之旅-破解一款永久免費網路訪問工具

Android逆向之旅-破解一款永久免費網路訪問工具

一、前言

因為最近個人需要,想在手機上使用"高級搜索",但是找了一圈發現都是需要收費的工具,奈何我沒錢,所以只能通過專業技能弄一個破解版的。

二、應用分析

下面就直接奔入主題。首先我們看到到期界面如下:

提示會員還有0天,所以這個就是我們的突破口,直接反編譯這個app,然後找到這個字元串信息:

然後用Jadx打開apk文件,全局搜索這個name值:

直接點進入進行查看即可:

最終會跟蹤到這個方法中,我們在這裡發現兩個關鍵點:一個是程序會把用戶的有效期保存到本地xml中,一個是這個程序漏洞,沒有關閉日誌信息,所以我們直接利用這個漏洞查看日誌信息即可,不過這裡先不進行查看,繼續全局搜索保存xml的key值:service_expired_time,看看哪裡進行保存的,這裡猜想肯定是伺服器下發的配置信息:

這裡看到有很多地方都有保存,我們一次進行查看,最後發現是這個地方:

為什麼說是這個地方呢?因為我們發現這裡的tag和上面的日誌tag是一樣,都是MainActivity。而我們直接查看日誌信息:

的確如此,看到這裡首先去獲取配置信息,然後進行本地解密,將json轉化成map結構。這裡我們為了介紹更多。看看他的解密演算法實現:

一個很簡單的AES演算法。key也是本地寫死的。我們為了後面驗證解密演算法有效。我們在單獨寫一個Android程序,把這部分解密函數拷貝出去,然後用來解密數據:

然後我們用剛剛列印的日誌中的獲取配置url,放到瀏覽器中訪問查看:

把這段密文拷貝到android解密程序中,然後運行Android程序,查看日誌:

解密之後是一個json數據,我們用工具進行格式化查看信息:

看到這裡三個欄位,一個是可使用的天數,一個是有效期時間,一個是當前時間。

三、技術延伸

好了到這裡,我們就大致清楚了,這個工具的流程:先去伺服器獲取配置信息,然後解密成json格式轉化成map結構,然後解析其中的一些欄位,比如有效期和天數信息保存到本地。如果發現到期了就不能直接使用工具了。而我們這裡會發現突破口是他的日誌漏洞,所以在開發過程中一定要記得程序發布前清掉關鍵日誌,其實有開關控制也不靠譜,之前分析過一款app,他的日誌雖然有開關,但是我們可以手動把開關打開即可。所以為了最安全,最好刪除關鍵信息日誌。

第一、分析手機tcp包信息

那麼既然這款app沒有日誌信息,我們該怎麼突破呢?我們可以抓包,而我們可以看到這個獲取配置信息是https協議。所以用Fidder等抓包工具獲取可能會失敗。所以這裡可以用tcpdump+Wireshark來直接分析tcp包信息:

看到TLS協議了。如果有人分析過這個安全協議,知道這個流程,網上大神總結的一張圖:

然後可以看到他的Application Data數據:

限於篇幅原因,不在詳細介紹如何進行解密這個協議數據,內容後面會單獨寫一篇文章如何解密TLS數據。

第二、免root管理設備網路

現在市場中的Android中VPN工具,都採用的VPNService功能進行開發的,這個我在之前介紹一個攔截視頻廣告app的時候也提到過,他的原理就是藉助VPNService進行免root攔截廣告請求從而做到過濾廣告功能,這個功能需要授權:

關於這個VPNService如何開發使用,網上有一些資料,感興趣的同學可以自行搜索即可。

四、破解方案

上面轉折了一下延伸了一些內容,現在我們在回到正題,上面已經分析完了app的使用有效期流程,那麼破解就非常簡單了,方法有很多。這裡我們直接採用插入代碼方式修改伺服器下發的數據即可。我們這裡為了簡單,直接修改map結構中的那幾個重要欄位值,有效期和使用天數。反編譯獲取到smali代碼之後,我們這裡沒必要去手動寫smali代碼,而是可以利用demo寫好插入map的數據結構信息:

然後反編譯demo程序,獲取到對應的smali代碼:

然後插入到反編譯app的smali代碼中即可:

然後在回編譯,簽名之後用Jadx工具查看,是否插入成功:

已經完成插入功能,我們安裝看看是否有效:

這裡看到,破解成功,可以正常使用了,到這裡我們就介紹完了,如何破解一款VPN工具永久免費。

五、技術總結

我們在破解過程中發現,這個工具存在很多安全隱患,關於工具安全提議:

第一:發布前還是請刪除關鍵核心信息。特別是日誌,不要用開關控制。直接刪除。

第二:關鍵信息最好做一層核心加密。比如上面的AES解密功能可以放到so中安全性會高。

第三:對整個app做一次安全防護,防止被破解。

關於破解工具類app,其實很簡單,因為工具app的話一般我們想要而要收費的功能肯定是放在本地只是有一個開關控制起來了。而對於這類app破解的話,只要找到這個開關,直接篡改即可。而對於一些伺服器控制的功能比如視頻的會員信息破解就有點麻煩了,因為你的信息在伺服器,伺服器會根據你是否為會員下髮指定的視頻信息。所以以後如果要想破解工具類app的話,相信一點。一定能成功的。而且思路也很簡單明了。

在本文閱讀完成之後,我們可以了解到的一些技術:

第一:Android中免root攔截網路請求或者VPN開發可以藉助系統類VPNService功能。這個功能需要進行授權。

第二:了解到tcpdump+Wireshark工具進行分析手機的tcp包信息。這個後面文章會詳細介紹分析流程。

第三:app在上線發布之前一定要記得刪除關鍵信息的日誌。避免造成安全隱患。

嚴重說明

本文介紹的內容只是為了逆向技術探討,絕對不允許不法分子進行惡意用途。而涉及到安全隱患,請進入技術圈進行技術交流和問題答疑。

老鐵們留言幫忙出個下聯:

上聯:社會我四哥,人狠話不多!

下聯:?

橫批:生死看淡,不服就干!

手機查看文章不方便,可以網頁看

諮詢問題和技術交流請進入[編碼美麗技術圈]

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 編碼美麗 的精彩文章:

Android逆向之旅-Android中鎖屏密碼演算法解析以及破解方案

TAG:編碼美麗 |