- Android應(yīng)用安全實(shí)戰(zhàn):Frida協(xié)議分析
- 李岳陽 卓斌編著
- 790字
- 2022-11-23 17:37:02
1.1 Frida框架介紹
Frida框架是一款基于Python和JavaScript語言進(jìn)行Hook[1]和代碼調(diào)試的框架,簡單易學(xué)的編程語言配合強(qiáng)大的Hook功能,極大降低了逆向分析的門檻。不習(xí)慣Python語言也沒關(guān)系,F(xiàn)rida的CLI工具也可以直接注入JavaScript代碼,而且Frida框架存在多種語言綁定,如Node.js、Swift、.NET、Qml等。本書主要采取Python語言進(jìn)行腳本編寫。
Frida框架可以說是為逆向開發(fā)和安全研究人員量身定做的動態(tài)插樁工具,開發(fā)人員可以將自己編寫的代碼注入App應(yīng)用程序的內(nèi)存空間之中,監(jiān)控和修改其中的代碼邏輯。Frida可以Hook任意關(guān)鍵函數(shù),追蹤加密的API接口,甚至在進(jìn)程中調(diào)用本地函數(shù),所有的操作都不需要進(jìn)行煩瑣的編譯工作或重新啟動程序。此外,F(xiàn)rida框架還支持全平臺運(yùn)行,包括Windows、macOS、Linux、iOS和Android等,因此Frida框架成為逆向界的寵兒。
Frida框架包括客戶端和服務(wù)端兩個(gè)部分,如圖1-1所示,其中客戶端一般安裝在個(gè)人計(jì)算機(jī)上,而服務(wù)端安裝于移動端。客戶端提交JavaScript代碼之后,服務(wù)端會運(yùn)行提交的JavaScript代碼,兩者之間存在一個(gè)用于交互的雙向通信通道。其中客戶端通常使用Python腳本編寫,用于喚醒移動設(shè)備上的服務(wù)端,而Python腳本中編寫的Hook代碼則使用JavaScript語言,會經(jīng)由客戶端提交后,在服務(wù)端執(zhí)行。

·圖1-1 Frida通信方式
熟知Android安全防護(hù)和逆向開發(fā)的人員對Xposed框架肯定不會陌生。Xposed框架是一款A(yù)ndroid Hook框架,可以在不修改apk的情況下對應(yīng)用進(jìn)行自定義,其相比于Frida框架的優(yōu)勢是具有非常多功能強(qiáng)大的模塊,能夠脫離個(gè)人計(jì)算機(jī)直接在Android端運(yùn)行,還可以讓其他用戶下載安裝使用。
所謂“聞道有先后,術(shù)業(yè)有專攻”,F(xiàn)rida框架更像是為專業(yè)的安全開發(fā)人員準(zhǔn)備的調(diào)試工具。雖然不像Xposed框架一樣編譯模塊給用戶使用,但是卻可以方便地對Android應(yīng)用進(jìn)行調(diào)試分析,分析協(xié)議之后可以使用其他編程語言進(jìn)行協(xié)議復(fù)現(xiàn)。此外,Xposed框架只能對Java層代碼進(jìn)行Hook,而Frida框架處理Java層代碼和so層代碼都游刃有余。
如今,隨著開發(fā)人員對應(yīng)用安全的重視,越來越多的Android應(yīng)用開始在so層進(jìn)行參數(shù)加密,協(xié)議分析也不得不深入到so層之中,F(xiàn)rida框架的優(yōu)勢也就體現(xiàn)出來了。
- 網(wǎng)絡(luò)空間安全:管理者讀物
- 數(shù)字安全藍(lán)皮書:本質(zhì)屬性與重要特征
- 工業(yè)物聯(lián)網(wǎng)安全
- 模糊測試:強(qiáng)制發(fā)掘安全漏洞的利器
- 網(wǎng)絡(luò)安全技術(shù)與實(shí)訓(xùn)(第4版)(微課版)
- 網(wǎng)絡(luò)空間安全實(shí)驗(yàn)
- 從實(shí)踐中學(xué)習(xí)Kali Linux滲透測試
- Kerberos域網(wǎng)絡(luò)安全從入門到精通
- 互聯(lián)網(wǎng)企業(yè)安全高級指南
- 從實(shí)踐中學(xué)習(xí)密碼安全與防護(hù)
- VMware vCloud Security
- Mastering Python for Networking and Security
- 功能型密碼算法設(shè)計(jì)與分析
- 網(wǎng)絡(luò)空間安全法律問題研究
- 2010年中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告