某汽車社區(qū)App 簽名和加解密分析 (二) : Frida Dump so

一泌辫、目標(biāo)

App安全的主戰(zhàn)場(chǎng)在Native層随夸,分析Native層的so,最趁手的兵器就是Frida和Unidbg了震放。

今天我們的目標(biāo)是 某汽車社區(qū)App v8.0.1 so 的分析宾毒。

二、步驟

特征字符串定位

我們?cè)谏弦黄坛?某汽車社區(qū)App 簽名和加解密分析 已經(jīng)定位了,數(shù)據(jù)加密和解密函數(shù)再java層的位置殿遂。

codeutils.png

按照常理來說诈铛,這個(gè)java類文件中,應(yīng)該有個(gè) System.loadLibrary("libxxx") 來方便我們定位對(duì)應(yīng)的so墨礁。

可惜的是幢竹,這個(gè)樣本里找不到。原因大概率是脫殼不完整饵溅。

既然沒這么簡(jiǎn)單妨退,我們?cè)倩貞浺幌录用艽奶卣鳎?/p>

1、sd= 開頭

2蜕企、數(shù)據(jù)都是大寫的M開頭

3咬荷、== 結(jié)尾,那大概率是Base64

有共性就好辦了轻掩,我們?cè)贜ative層匹配下 M 開頭的字符串,匹配到了就打印Native層的堆棧幸乒。

if(string.toString().length > 50 && string.toString().indexOf("M") == 0){
    var threadef = Java.use('java.lang.Thread');
    var threadinstance = threadef.$new();

    console.log("[NewStringUTF] bytes:" + string);
    console.log(Thread.backtrace(this.context, Backtracer.FUZZY)
            .map(DebugSymbol.fromAddress).join("\n"))
}

跑一下

so.png

結(jié)果是出來了,但是這個(gè)結(jié)果很有料呀唇牧。 沒聽說過江湖上有 1ef38371-d2a4-4ade-8510-d08f5c05fe5f-32.so 這種名號(hào)的so罕扎。

全局搜索

這個(gè)奇怪的so在apk里面肯定是找不到了。我們?cè)谑謾C(jī)里去找一找丐重。

要玩好Android腔召,那么linux命令不可少,搜索文件用find命令

find / -name '1ef38371-d2a4-4ade-8510-d08f5c05fe5f-32.so' -print

我去扮惦,沒道理呀臀蛛,居然搜不到?當(dāng)然不會(huì)是我們find命令輸錯(cuò)了崖蜜。

在加密或者加殼的手段下浊仆,是可以實(shí)現(xiàn)手機(jī)只有加密文件,只在內(nèi)存中加載解密后的so豫领。

Frida Dump So

今天的重頭戲就是這個(gè)了抡柿。so在內(nèi)存里面,如何把它搞出來等恐?

第一步: 把冰箱門打開

var libxx = Process.getModuleByName("210f3bcc-51b1-4f3c-9ca4-c429ad93ded1-32.so");
console.log("*****************************************************");
console.log("name: " +libxx.name);
console.log("base: " +libxx.base);
console.log("size: " +ptr(libxx.size));

打印出了這個(gè)神奇的so的地址和大小

*****************************************************
name: 210f3bcc-51b1-4f3c-9ca4-c429ad93ded1-32.so
base: 0xc380c000
size: 0xec9000

第二步:把大象塞進(jìn)冰箱

var file_path = "/data/data/com.clxxx.lxxxlxxxbxxx/" + libxx.name + "_" + libxx.base + "_" + ptr(libxx.size) + ".so";
console.log(file_path);

var file_handle = new File(file_path, "wb");
if (file_handle && file_handle != null) {
    Memory.protect(ptr(libxx.base), libxx.size, 'rwx');
    var libso_buffer = ptr(libxx.base).readByteArray(libxx.size);
    file_handle.write(libso_buffer);
    file_handle.flush();
    file_handle.close();
    console.log("[dump]:", file_path);
}

注意: 寫so文件的時(shí)候洲劣,把文件寫在 /data/data/包名 目錄下备蚓,這個(gè)目錄大概率下是可以讀寫的。

第三步: 把冰箱門關(guān)上

最后把dump的so用adb命令 pull出來闪檬。

如果沒有pull /data/data/包名 這個(gè)目錄的權(quán)限星著,那就先copy到 /data/local/tmp 目錄下面。

現(xiàn)在可以拖進(jìn)ida愉快的分析了粗悯。

三、總結(jié)

先找共性同欠,然后再定位样傍。字符串定位的套路都是一樣的。

如果樣本沒有調(diào)用 NewStringUTF 或者 GetStringUTFChars 怎么辦铺遂?

我覺得還可以考慮libc.so, malloc strcpy 這些標(biāo)準(zhǔn)C函數(shù) Hook一下衫哥,應(yīng)該也會(huì)有驚喜。

Linux命令可以熟悉下襟锐,關(guān)鍵時(shí)刻還是有用的撤逢。

ffshow.jpeg

俄羅斯方塊教會(huì)了我們,如果你合群粮坞,就會(huì)消失蚊荣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市莫杈,隨后出現(xiàn)的幾起案子互例,更是在濱河造成了極大的恐慌,老刑警劉巖筝闹,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媳叨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡关顷,警方通過查閱死者的電腦和手機(jī)糊秆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來议双,“玉大人痘番,你說我怎么就攤上這事×祝” “怎么了夫偶?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)觉增。 經(jīng)常有香客問我兵拢,道長(zhǎng),這世上最難降的妖魔是什么逾礁? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任说铃,我火速辦了婚禮访惜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腻扇。我一直安慰自己债热,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布幼苛。 她就那樣靜靜地躺著窒篱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舶沿。 梳的紋絲不亂的頭發(fā)上墙杯,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音括荡,去河邊找鬼高镐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛畸冲,可吹牛的內(nèi)容都是我干的嫉髓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邑闲,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼算行!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起监憎,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤纱意,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鲸阔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偷霉,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年褐筛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了类少。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渔扎,死狀恐怖硫狞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晃痴,我是刑警寧澤残吩,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站倘核,受9級(jí)特大地震影響泣侮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜紧唱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一活尊、第九天 我趴在偏房一處隱蔽的房頂上張望隶校。 院中可真熱鬧,春花似錦蛹锰、人聲如沸深胳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舞终。三九已至,卻和暖如春癣猾,著一層夾襖步出監(jiān)牢的瞬間权埠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工煎谍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人龙屉。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓呐粘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親转捕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子作岖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • 一、目標(biāo) 稼軒長(zhǎng)短句有云:寶馬雕車香滿路五芝。從此香車美女就成了標(biāo)配痘儡。這不李老板還沒聊幾個(gè)mm,又開始準(zhǔn)備換車了枢步。 今...
    fenfei331閱讀 853評(píng)論 3 5
  • layout: wikititle: Android逆向分析筆記categories: Reverse_Engin...
    超哥__閱讀 10,698評(píng)論 1 17
  • 概述 __ 分析步驟 通用逆向分析步驟 1.了解該模塊正向編程相關(guān)方法 2.使用apktool解密apk沉删,得到資源...
    萌木蓋閱讀 4,402評(píng)論 0 6
  • 第一步:獲得cryptid,cryptoffset醉途,cryptsize(用otool)cryptid為加密狀態(tài)矾瑰,0...
    灰斗兒閱讀 3,297評(píng)論 0 1
  • ??Android系統(tǒng)由于其開源的屬性,市場(chǎng)上針對(duì)開源代碼定制的ROM參差不齊隘擎,在系統(tǒng)層面的安全防范和易損性都不一...
    道書簡(jiǎn)閱讀 9,368評(píng)論 0 23