一款安卓加固app的協(xié)議分析

最近有人給我展示了一款app,說抓不到它的請(qǐng)求邦危,連上代理一看真的沒有洋侨,所以本文結(jié)束。

一倦蚪、初步試驗(yàn)

連上代理后希坚,app并沒有明顯的提示與彈窗,并且還能夠正常訪問網(wǎng)絡(luò)陵且、獲取數(shù)據(jù)裁僧,說明app本身設(shè)置了代理。

反編譯一下慕购,嗯聊疲?出錯(cuò)了。沪悲。获洲。原來是加了新版的殼。

脫掉殼后可训,發(fā)現(xiàn)使用了OKHTTP的網(wǎng)絡(luò)庫昌妹。對(duì)于一些常用的網(wǎng)絡(luò)庫,其實(shí)提供了設(shè)置代理的接口握截,只需要將其設(shè)置成無代理的模式,它就不會(huì)應(yīng)用系統(tǒng)默認(rèn)的代理了烂叔。去代碼里翻騰一下谨胞,看到很明的設(shè)置了Proxy.NO_PROXY。

這里可以去hook proxy方法蒜鸡,然后取消掉這個(gè)設(shè)置PROXY的過程胯努,讓方法直接返回。也可以繞過這個(gè)逢防,通過VPN的方式叶沛,這里太懶了,直接采用第二種方法忘朝,省事不寫代碼灰署。通過VPN轉(zhuǎn)發(fā)到代理工具,已經(jīng)能抓到包了,又快又省事溉箕。

二晦墙、測(cè)試分析

很明顯的,一共有4處加密的地方肴茄,header中有3個(gè)參數(shù)xx-verify晌畅、xx-sid、xx-traceid寡痰,body中有一個(gè)參數(shù)client_secret抗楔。

通過觀察發(fā)現(xiàn),xx-verify是64位的拦坠,而xx-sid谓谦、xx-traceid和client_secret相類似,都是32位0-9a-f的形式贪婉,猜測(cè)是md5反粥。

1、client_secret

先來看client_secret疲迂,是很經(jīng)典的md5-salt才顿。這里在map中插入一個(gè)private_key字段,然后排序拼接計(jì)算md5尤蒿。

2郑气、xx-sid、xx-traceid

這兩個(gè)比較簡(jiǎn)單腰池,uuid+時(shí)間戳尾组。

3、xx-verify

xx-verify相對(duì)來說復(fù)雜一點(diǎn)示弓,先通過URLDecoder加工一下讳侨,然后通過native的enMana方法來加密。根據(jù)URLDecoder奏属,猜測(cè)可能跟請(qǐng)求的url有關(guān)跨跨。

enMana方法在libsservice.so文件中。

拖進(jìn)IDA發(fā)現(xiàn)so沒有任何加密措施囱皿,這極大的方便了靜態(tài)分析勇婴。

找到ServerService_enMana導(dǎo)出函數(shù),修改一下參數(shù)類型嘱腥,簡(jiǎn)化一下視圖后耕渴,可以非常明顯的看到使用了hmac_sha256算法,并且還初始化了一個(gè)秘鑰在getRMN函數(shù)中齿兔。

同樣修改一下getRMN的參數(shù)類型橱脸,發(fā)現(xiàn)是去SharedPreferences中取了一個(gè)叫rmn的字段础米。所以回到j(luò)ava層,去看看rmn的賦值慰技。跟蹤下來知道這個(gè)值是從服務(wù)端獲取的椭盏。

為了快速的驗(yàn)證,這里hook一下enMana函數(shù)的輸入和輸出吻商√图眨可以hook java層,也可以hook native層艾帐。因?yàn)閑nMana這個(gè)是導(dǎo)出函數(shù)乌叶,所以hook起來也很方便。例如使用frida柒爸,這個(gè)不是靜態(tài)函數(shù)准浴,所以我們只關(guān)心第三個(gè)參數(shù)即可:

通過hook得知加密的字符串就是URLDecode后的請(qǐng)求url,key是從SharedPreferences取捎稚,然后使用hmac_sha256加密乐横。這里因?yàn)椴皇莄m,所以魔改加密算法的可能性不大今野。

拖到一個(gè)在線的加密網(wǎng)站中驗(yàn)證一番葡公,結(jié)果完全一樣。

抓包結(jié)果:

加密結(jié)果:

至此就分析完了条霜。

三催什、總結(jié)

1、分析過程中可以更靈活一些宰睡,邊猜邊驗(yàn)證蒲凶。
2、要熟練掌握各種hook的操作拆内,Java&&Native旋圆。
3、在看別人的代碼時(shí)候矛纹,可以借鑒其中的保護(hù)思路臂聋,來提高自己app的安全性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末或南,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子艾君,更是在濱河造成了極大的恐慌采够,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冰垄,死亡現(xiàn)場(chǎng)離奇詭異蹬癌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門逝薪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隅要,“玉大人,你說我怎么就攤上這事董济〔角澹” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵虏肾,是天一觀的道長廓啊。 經(jīng)常有香客問我,道長封豪,這世上最難降的妖魔是什么谴轮? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吹埠,結(jié)果婚禮上第步,老公的妹妹穿的比我還像新娘。我一直安慰自己缘琅,他們只是感情好粘都,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胯杭,像睡著了一般驯杜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上做个,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天鸽心,我揣著相機(jī)與錄音,去河邊找鬼居暖。 笑死顽频,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的太闺。 我是一名探鬼主播糯景,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼省骂!你這毒婦竟也來了蟀淮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤钞澳,失蹤者是張志新(化名)和其女友劉穎怠惶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轧粟,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡策治,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年脓魏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片通惫。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茂翔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出履腋,到底是詐尸還是另有隱情珊燎,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布府树,位于F島的核電站俐末,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏奄侠。R本人自食惡果不足惜卓箫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垄潮。 院中可真熱鬧烹卒,春花似錦、人聲如沸弯洗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牡整。三九已至藐吮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逃贝,已是汗流浹背谣辞。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沐扳,地道東北人泥从。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像沪摄,于是被迫代替她去往敵國和親躯嫉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理杨拐,服務(wù)發(fā)現(xiàn)祈餐,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 分布式理論 分布式基礎(chǔ)理論 分布式系統(tǒng)目標(biāo):提升系統(tǒng)的整體性能和吞吐量另外還要盡量保證分布式系統(tǒng)的容錯(cuò)性哄陶; 分布式...
    星冉子閱讀 244評(píng)論 0 0
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,970評(píng)論 6 13
  • URI和URL的區(qū)別 URI:統(tǒng)一資源標(biāo)識(shí)符 URL:統(tǒng)一資源定位符 第二章:簡(jiǎn)單HTTP協(xié)議 1昼弟、應(yīng)用HTTP協(xié)...
    MrGzj1999閱讀 391評(píng)論 0 0
  • 此文章轉(zhuǎn)載于https://blog.csdn.net/wang839305939/article/details...
    MeydanZHOU閱讀 1,429評(píng)論 0 2