花裡胡哨之突破安卓某APP低層加密

2020-09-29 程式設計師小鵬

今天給大家分享一下如何逆向分析Native層的加密,整個過程的思路值得大家借鑑,接下來小編給大家上才藝

所需要的設備和環境

設備:

安卓手機(獲取root權限)

抓包:

fiddler + xposed + JustTrustMe

反編譯:

jadx-gui,ida

抓包

這裡我們就不用知道這個app的名稱,開啟fiddler 抓包後 app 提示連接不到網絡,判斷是證書驗證,開啟 xposed 框架,再次請求,成功抓到包,連續請求兩次來對比參數變化:




可以看到 x-app-token 這個參數不一樣,其他參數都是固定的,先簡單看一下x-app-token的構成:



這樣做了一下換行,有沒有發現什麼規律?

我一眼就看出來第二行是手機的 deviceID,因為爬蟲寫多了,這個字符串經常出現,第一行是 32 位,應該就是個md5, 第三行是個 16 進位數,知道了這些,接下來就來反編譯,搜索這個關鍵字。

反編譯

反編譯之前先使用ApkScan-PKID 查一下是否有殼,養成好習慣,這個 app 沒有加殼,直接用 jadx 打開,全局搜索 「x-app-token」,只有一處,應該就在這裡了:




從框中代碼發現 x-app-token 的值就是 as,而 as 是函數 getAS 生成的,按住滑鼠左鍵,點擊getAS 進去看看詳情:



它把函數過程寫到native 層中去了,那隻好去分析這個名為native-lib 的so 文件了,解壓目標 apk 獲取到了如下圖這些文件:



so文件就在這個lib文件夾裡:



ida中打開這個文件,切換到Export導出函數選項卡,先來直接搜索getAS:



沒有搜到getAS,倒是搜到了getAuthString,名字很像,打開看看吧,按 F5可以把彙編代碼轉換為偽c 代碼,下拉分析一波,看到了 md5關鍵字:



代碼有點難懂,連懵帶猜v61應該是 MD5加密後的結果,然後 append 似乎是在拼接字符串,看到了「0x」,根據抓包的結果已經知道x_app_token 的第三行是個 16 進位數,那應該是這裡的v86了,向上看看它具體是什麼:



v86存的是 v40的值,而 v40 就是當前的時間戳,那 x-app-token 第三行應該就是時間戳的 16 進位數。接下來看看md5的入參為v58,v52,v53,重點來看v52,往上追朔看到其和v51 是相等的,而v51 是一個未知字符串經過 base64編碼得到的,先來hook這兩個函數,寫段腳本:



第1處和2處分別是目標函數的地址,滑鼠點到目標函數處,ida左下角會顯示,加1是為何,只記得大學時候學過彙編語言講到段地址,偏移地址,物理地址這些,猜測和這些知識有關,還需研究,這裡先這樣用,第3處的寫法是當這個參數為字符串時的寫法,運行一波,看看列印輸出:



同時也來抓包:



把v52的值放到在線MD5網站中加密看看:



和抓包得到的結果是一樣的,那就證明hook點找對了,那麼v49就是base64編碼之前的值,v49是什麼呢,仔細一看,裡面也有deviceID,再來分割一下:



第一行通過兩次hook,發現他是固定不變的,第二行是改變的,32位,看起來又是個md5,第六行是包名,返回偽c代碼,再來分析看看,在前面又看到了MD5加密的地方:



那來hook這個函數,看看入參:



列印的入參數據為:



S是一個時間戳,拿到MD5加密網站上驗證一下,正好和v49中包含的字符串相同:



至此,逆向就完成了,來總結一下x-app-token的獲取過程,先是帶有把時間戳進行md5,按下圖順序拼接:



然後把拼好的字符串進行base64編碼,最後把編碼結果進行MD5,得到x-app-token的開頭部分,組成如下:



接下來寫個腳本來請求數據

請求

代碼如下:



運行,成功拿到數據:



總結一下

今天主要介紹了native 層hook 的方法,雖然 so 文件中的偽c代碼要有一定的基礎才能看懂,但是先不要怕,分析的過程中可以先大膽假設,有frida非常強大的hook 功能,就能一步步驗證之前的假設。這兩次都是靜態分析方法,下次我們再來介紹一下動態調試的方法。


以上就是小編今天帶來的內容,小編本身就是一名python開發工程師,我自己花了三天時間整理了一套python學習教程,從最基礎的python腳本到web開發,爬蟲,數據分析,數據可視化,機器學習,等,這些資料有想要的小夥伴可關注小編,並在後臺私信小編:「 01 」 即可領取

相關焦點

  • 男子更衣室偷拍加密相冊辣眼睛 相冊app怎麼加密
    【男子更衣室偷拍 加密相冊辣眼睛】據媒體報導,近日,杭州派出所接到報警在遊泳館更衣室被偷拍,民警隨即出警並把偷拍嫌疑人帶回派出所調查,看了他的加密相冊,覺得有些「辣眼睛」。
  • 解壓縮全能王手機app丨解壓7z、RAR、ZIP等文件,雲解壓破解加密壓縮包
    如果是7z、RAR、 XZ、 BZIP2、 GZIP、 ISO、 TAR、 ARJ、 CAB等壓縮格式文件,就需要下載、安裝專用的手機解壓縮app來解壓。昨天介紹了「最好用的手機7zip壓縮軟體app」 ZArchiver,包括下載方式,在手機中解壓縮、加密壓縮文件的方法。今天再介紹一款國產安卓手機壓縮軟體「解壓縮全能王」。
  • Python 逆向抓取 APP 數據
    今天繼續給大夥分享一下 Python 爬蟲的教程,這次主要涉及到的是關於某 APP 的逆向分析並抓取數據,關於 APP 的反爬會麻煩一些,比如 Android 端的代碼寫完一般會進行打包並混淆加密加固,所以除了抓包之外,還需要對 APP 進行查殼脫殼反編譯等操作。
  • 再次確認安卓手機清空後臺,實際上這些APP仍在運行
    安卓系統普遍有『吃內存』的情況,而IOS系統就清理到底,不存在佔用內存情況發生,不管你是驍龍855、865,還是麒麟990機型,只要你的手機是安卓系統,那麼就會出現系統佔用內存的情況,換言之6G運行內存,實際只有3G可用,再者當關閉一個app後,這app實際上還在背後運行,如此一來安卓手機的使用空間更低,反觀蘋果手機就不存在這樣的情況,系統佔用空間不多,且app情理一步到位。
  • 你的安卓手機究竟是FDE加密還是FBE加密?
    話說時間倒流至安卓4.X的時代,google為了提升安卓用戶數據安全級別引入了一個用戶數據加密機制,FDE(全盤加密簡稱),這時候的FDE加密機制僅僅是安卓系統裡的一個功能而已,而且還是個bate版本,為什麼這麼說呢,這種加密機制會在用戶手動開始後把整個用戶分區進行全盤加密,由於當時硬體水平有限,安卓手機的CPU和存儲器的速度實在讓人捉急,進行一次加密短則幾十分鐘
  • 超好用的手機記帳軟體,日常必備記帳必備,iOS/安卓
    某木記帳(安卓)某木記帳app是一款界面簡約但是功能強大的手機記帳個人理財管理軟體,某木記帳app為廣大按用戶提供專業的在線記帳數據查詢管理系統,支持通過自然語言識別出帳單時間、金額各種信息。某樣記帳(安卓)
  • 大神教你用Python逆向抓取APP數據
    今天繼續給大夥分享一下 Python 爬蟲的教程,這次主要涉及到的是關於某 APP 的逆向分析並抓取數據,關於 APP 的反爬會麻煩一些,比如 Android 端的代碼寫完一般會進行打包並混淆加密加固,所以除了抓包之外,還需要對 APP 進行查殼脫殼反編譯等操作。
  • 火幣網下載官方app_火幣網下載官方app安卓版-太平洋下載中心
    火幣網下載官方app安卓版針對全球的數字交易為用戶提供了全方位的一體化服務包括了火幣韓國、火幣中國、火幣錢包、火幣全球美元站等,不同的地區可在火幣pro上享受到優質服務如從行情分析到交易確定都有指定的平臺為你服務。太平洋下載中心提供火幣網下載官方app。
  • 安卓P將默認所有app使用HTTPS
    安卓P將默認所有app使用HTTPS下一版本的安卓系統將在app中默認阻止所有HTTP流量。Android的工程副總裁Dave Burke在博客文章中稱,這是「將所有網絡流量從明文(未加密的HTTP)遷移到TLS的更大努力中的最後一步......你現在需要通過TLS建立連接,除非你明確為特定域使用明文。「這將適用於所有面向Android P的應用程式。任何需要HTTP連接的內容必須提交特殊聲明。在網絡安全配置文件中設置。您將可以允許或禁止HTTP流量連接到特定域或整個應用。
  • 【漫畫APP】安卓上一個用來看漫畫的app-喵嗚漫畫
    常常用看漫畫的小夥伴們對國內最流行的某之家看漫畫的app應該十分熟悉,但是近期他們的土豆伺服器頻繁維護,導致沒法登陸上去看訂閱列表。
  • 取證偵探認為安卓比iOS具有更好的數據加密能力
    iOS設備與安卓設備的安全性對比已經是老生常談的問題了,一直大部分用戶認為iOS設備更加安全,不過沃斯堡警察局的偵探雷克斯·凱澤(Rex Kiser)最近的表態引人深思:「一年前,我們無法解鎖iPhone取證,但我們可以訪問幾乎所有安卓設備,但是現在情況反了過來,部分iPhone機型可以被輕易突破,反倒是越來越多的安卓設備堅不可摧。」
  • 加密狗的攻守之戰:加密與解密的較量
    其實作為軟體開發者,研究好軟體加密的確很重要,不過也很有必要多了解一些關於加密狗解密和破解的知識,加密和破解就像矛和盾一樣,對於解密知識了解得越多,那麼編寫的加密代碼就越好,要知道加密永遠都比解密要容易得多,只有知己知彼,方能百戰百勝。
  • 盤點7月份國外最佳的12款安卓 APP
    app尤為突出,還有當下最火鎖屏塗鴉和閱後即焚,再加上紙質手寫的懷舊風,基本上就是app的主旨越靠近生活,遠離屏幕,就越吸引人。下面就為大家盤點一下7月份最優秀的12款安卓app。 i黑馬:7月上線的安卓app可謂是五花八門,傻瓜和入門教學式的app尤為突出,還有當下最火鎖屏塗鴉和閱後即焚,再加上紙質手寫的懷舊風,基本上就是「屏幕裡的人想拼命跳出屏幕去」,app的主旨越靠近生活,越遠離屏幕,就越吸引人。
  • 關於某點評網站的字體加密以及 CSS 加密
    破解大眾點評的加密某網站的店鋪列表頁以及詳情頁和評論頁的加密不一樣店鋪列表頁的加密為字體加密,打開網頁原始碼就可以看到顯示的都是 &#x**** 這種類型的數據。所以只要找到字體文件。在右上角的css 文件點擊,就會進入到該 css 文件。
  • 安卓系統實用小軟體分享
    簡潔沒廣告,但地圖好像不是特別新,雖然有三個app的偽裝,但總有那麼幾調用不起來。4.safeincloud,一款毛子開發的密碼app,可以上傳雲端也能自定義網盤。6.光速虛擬機,安卓下的安卓虛擬機,目前只支持7.1,因為有獨立的內核,所以整體的使用相比vmos要好不少,不過root是殘廢,很多東西不能用。
  • 從技術應用層來分析常見的視頻加密方式
    從技術應用層來分析常見的視頻加密方式網絡通信的工作有七層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。網絡層以下對數據的加密處理都可以叫做鏈路加密,主要是保護通信節點間傳輸數據,加解密通過線路上的密碼設備實現。
  • 奇奇動漫app安卓版下載
    奇奇動漫app安卓版下載是一款趣味娛樂的影音播放軟體,為廣大二次元朋友摘錄了海量動漫番劇,各種類型都有,可以滿足廣大用戶的需求,快來下載試試~
  • 安卓逆向——Frida hook java層
    各位愛好安卓逆向的大佬們早上好,今天呢小弟不才在這裡拙劣的給大家講解一下咱們frida hookjava層,望不嫌棄!目錄分析目標app程序編寫hook代碼運行命令開始hook 分析目標app程序首先呢我們來了解一下分析目標app程序一個目的。
  • 知識科普-私密相冊和加密相冊區別
    其中不乏生活隱私和工作商業秘密,因此就帶來了各種保護手機相冊視頻文件的電腦加密軟體和手機加密APP,下面主要科普下手機加密APP。了解加密APP之前,首先要了解手機的存儲機制,安卓和蘋果手機都有為app創建一個沙盒機制,在沙盒機制下,每個應用程式之間的文件夾不能互相訪問,但不同的是,安卓還有一個SD卡存儲,這個是所有程序都可以訪問,所以有人就評論蘋果手機比安卓手機安全。
  • 加密門禁卡複製到手機、智能手錶的方法
    現在安卓的NFC功能非常強大,但是模擬門禁卡發現經常提示是加密卡沒辦法模擬。如果你的手機裡有空白門禁卡,那就方便多了需:1部備用帶NFC功能的手機2手機軟體FIMARE經典工具3卡的加密密碼(沒有密碼的可以淘寶買設備或者去開鎖店破解文件保存回來)開始步驟:1、創建空白門禁卡:(以華為手機為例)打開錢包app-選擇卡包-右上角"+"