注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)信息安全unidbg逆向工程:原理與實(shí)踐

unidbg逆向工程:原理與實(shí)踐

unidbg逆向工程:原理與實(shí)踐

定 價(jià):¥129.00

作 者: 陳佳林
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111741824 出版時(shí)間: 2024-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi)容介紹這是一本從原理和實(shí)踐角度講解unidbg的著作,不僅深入解析了unidbg的使用方法、工作原理、實(shí)現(xiàn)細(xì)節(jié),而且詳細(xì)講解了如何用unidbg解決生產(chǎn)環(huán)境中的各種逆向工程難題。它是作者多年安全工作經(jīng)驗(yàn)的總結(jié),得到了unidbg框架作者的高度評(píng)價(jià)和推薦。全書共31章,分為四個(gè)部分。第一部分(第1~3章) unidbg基礎(chǔ)主要介紹了unidbg的基本使用和操作,包括工作環(huán)境的準(zhǔn)備、so文件加載、簡單補(bǔ)環(huán)境、Hook和Patch的方法等。第二部分(第4~15章) unidbg原理與實(shí)現(xiàn)通過源碼分析的方式對(duì)unidbg的原理與實(shí)現(xiàn)進(jìn)行了詳細(xì)的剖析,首先分析了Unicorn模擬linker實(shí)現(xiàn)so的加載、鏈接、初始化的原理,然后深入分析了unidbg主要功能和模塊的源碼實(shí)現(xiàn),包括AndroidEmulator、JNI交互流程追蹤、DalvikVM、Memory、Hook等。第三部分(第16~26章) 補(bǔ)環(huán)境與模擬執(zhí)行實(shí)戰(zhàn)通過實(shí)戰(zhàn)案例講解了unidbg在生產(chǎn)環(huán)境中的使用,包括如I/O重定向、Debugger自吐,指針參數(shù)與Debugger、魔改Base64還原、使用unidbg動(dòng)態(tài)分析內(nèi)存中的數(shù)據(jù)、使用unidbg主動(dòng)調(diào)用fork進(jìn)程,并對(duì)補(bǔ)環(huán)境中的補(bǔ)環(huán)境入門、標(biāo)識(shí)記錄、設(shè)備風(fēng)控、補(bǔ)環(huán)境加強(qiáng)等進(jìn)行分析,指導(dǎo)讀者編寫實(shí)際的補(bǔ)環(huán)境代碼,更好地將理論知識(shí)運(yùn)用于實(shí)踐中。第四部分(第27~31章) 反制與生產(chǎn)環(huán)境部署。介紹了環(huán)境變量檢測、xHook框架檢測、JNI層常見函數(shù)處理等,對(duì)常規(guī)檢測進(jìn)行了總結(jié),并介紹了在檢測之后如何把so部署到x86服務(wù)器上。這部分內(nèi)容對(duì)批量生產(chǎn)與對(duì)抗、大數(shù)據(jù)風(fēng)控非常有價(jià)值,對(duì)于打擊黑灰產(chǎn)、遏制網(wǎng)絡(luò)犯罪有著非常積極的意義。

作者簡介

  陳佳林 (ID:r0ysue)資深安全技術(shù)專家,在逆向工程、移動(dòng)安全領(lǐng)域積累了豐富的經(jīng)驗(yàn)。曾為政府機(jī)關(guān)單位提供涉密項(xiàng)目研究開發(fā),多次為銀行和電信行業(yè)以及政府部門提供安全方面的培訓(xùn)服務(wù)??囱┱搲陌嬷骱唾Y深講師,看雪“安卓高級(jí)研修班”負(fù)責(zé)人,在看雪安全開發(fā)者峰會(huì)、GeekPwn 發(fā)表主題演講,在看雪論壇、安全客、Freebuf 等平臺(tái)發(fā)表大量技術(shù)文章。著有《安卓 Frida 逆向與抓包實(shí)戰(zhàn)》《安卓Frida 逆向與協(xié)議分析》《Frida 安卓 SO 逆向深入實(shí)踐》等書籍。開源項(xiàng)目r0capture 在 Github 的 star 數(shù)量超過 5000 個(gè)。

圖書目錄


目  錄?Contents
前 言
第一部分 進(jìn)入unidbg的世界
第1章 unidbg環(huán)境準(zhǔn)備與快速
上手 2
1.1 r0env環(huán)境介紹與集成 2
1.1.1 r0env各組件介紹 2
1.1.2 r0env下載及安裝 5
1.2 IDEA安裝及配置 6
1.3 第一個(gè)unidbg項(xiàng)目 7
1.3.1 unidbg介紹 7
1.3.2 unidbg下載與運(yùn)行示例 8
1.3.3 unidbg示例講解 9
1.4 本章小結(jié) 13
第2章 unidbg模擬執(zhí)行初探 14
2.1 第一個(gè)NDK項(xiàng)目 14
2.1.1 使用Android Studio創(chuàng)建NDK項(xiàng)目 14
2.1.2 編寫自己的so業(yè)務(wù)代碼 16
2.2 unidbg的符號(hào)調(diào)用與地址調(diào)用 18
2.2.1 unidbg主動(dòng)調(diào)用前置準(zhǔn)備 18
2.2.2 unidbg主動(dòng)調(diào)用so函數(shù) 19
2.2.3 unidbg部分API簡單講解 22
2.3 本章小結(jié) 24
第3章 unidbg補(bǔ)環(huán)境、Hook與
Patch 25
3.1 為so添加交互:使用JNI接口
編寫md5方法 25
3.2 使用unidbg修補(bǔ)執(zhí)行環(huán)境并
模擬執(zhí)行 27
3.3 脫離編譯器,使用命令行
編譯so 34
3.4 unidbg的Hook 36
3.5 unidbg的Patch 39
3.6 本章小結(jié) 42
第二部分 unidbg原理
第4章 ELF文件執(zhí)行視圖解析 44
4.1 ELF文件結(jié)構(gòu) 44
4.1.1 ELF頭部結(jié)構(gòu) 45
4.1.2 程序頭部表 47
4.1.3 動(dòng)態(tài)節(jié)區(qū)_DYNAMIC段 51
4.2 深入jelf代碼細(xì)節(jié),探究ELF
解析 54
4.2.1 分析原版jelf代碼 54
4.2.2 分析unidbg版jelf代碼 56
4.3 本章小結(jié) 60
第5章 Unicorn的初級(jí)使用與初探Linker 61
5.1 Unicorn的初級(jí)使用:模擬執(zhí)行與Hook 61
5.1.1 使用Unicorn進(jìn)行模擬
執(zhí)行 61
5.1.2 Unicorn的Hook 64
5.1.3 Keystone與Capstone 70
5.2 初探Android系統(tǒng)源碼 71
5.2.1 Java層代碼追蹤 73
5.2.2 Native層代碼追蹤 75
5.3 本章小結(jié) 78
第6章 深入Linker:so的加載、
鏈接、初始化 79
6.1 so的加載過程 79
6.2 so的鏈接過程 90
6.3 so的初始化操作 100
6.4 本章小結(jié) 102
第7章 使用Unicorn模擬Linker:so的加載過程 103
7.1 模擬Linker?:環(huán)境準(zhǔn)備 103
7.2 模擬Linker?:so的加載 109
7.3 動(dòng)態(tài)調(diào)試Linker,探究so的內(nèi)存
布局圖 118
7.4 本章小結(jié) 122
第8章 使用Unicorn模擬Linker:
so的鏈接過程 123
8.1 so的依賴庫加載過程 123
8.2 so的動(dòng)態(tài)鏈接 127
8.3 初嘗試:使用unidbg模擬執(zhí)行
簡單so文件 131
8.4 探究unidbg的Linker代碼
細(xì)節(jié) 133
8.4.1 unidbg加載so文件代碼
入口 134
8.4.2 處理so信息并載入內(nèi)存 135
8.4.3 對(duì)so的依賴庫進(jìn)行處理 137
8.4.4 重定位操作 138
8.4.5 處理so的初始化信息與生成module對(duì)象 140
8.4.6 執(zhí)行初始化 141
8.5 本章小結(jié) 142
第9章 R0dbg實(shí)戰(zhàn)與Unidbg_FindKey 143
9.1 模擬Linker?:so的初始化過程 143
9.2 指令追蹤與排錯(cuò) 147
9.2.1 TLS線程局部存儲(chǔ)環(huán)境
初始化 148
9.2.2 R0dbg對(duì)系統(tǒng)調(diào)用進(jìn)行
處理 150
9.3 使用R0dbg模擬執(zhí)行so 152
9.4 Unidbg_FindKey牛刀小試 154
9.5 本章小結(jié) 157
第10章 unidbg源碼解析:AndroidEmulator 158
10.1 創(chuàng)建AndroidEmulator 158
10.2 創(chuàng)建FileSystem 165
10.3 創(chuàng)建Backend 168
10.4 創(chuàng)建SvcMemory 169
10.5 本章小結(jié) 172
第11章 unidbg源碼解析:
DalvikVM 173
11.1 分析createDalvikVM() 173
11.2 Dvm相關(guān)類介紹 178
11.2.1 BaseVM解析 179
11.2.2 DalvikVM解析 184
11.2.3 DvmObject解析 185
11.2.4 DvmClass解析 187
11.3 本章小結(jié) 188
第12章 unidbg源碼解析:模擬
執(zhí)行流程追蹤 189
12.1 編寫含JNI交互的MD5算法并
模擬執(zhí)行 189
12.1.1 編寫含JNI交互的so 189
12.1.2 使用unidbg進(jìn)行模擬
執(zhí)行 190
12.2 模擬執(zhí)行流程追蹤:尋找
函數(shù) 192
12.3 模擬執(zhí)行流程追蹤:處理參數(shù)
并模擬執(zhí)行 195
12.4 本章小結(jié) 202
第13章 unidbg源碼解析:JNI
交互流程追蹤 203
13.1 JNI注冊 203
13.2 JNI指令執(zhí)行 208
13.3 本章小結(jié) 217
第14章 unidbg源碼解析:
Memory 218
14.1 Memory模塊的創(chuàng)建 218
14.2 AndroidElfLoader的方法實(shí)現(xiàn) 219
14.2.1 內(nèi)存相關(guān)方法實(shí)現(xiàn) 219
14.2.2 棧空間相關(guān)方法實(shí)現(xiàn) 226
14.2.3 用戶常用方法解析 227
14.2.4 虛擬模塊 230
14.3 加載so的loader功能 231
14.4 本章小結(jié) 237
第15章 unidbg源碼解析:
Hook 238
1

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)