編輯推薦
本書首先講解瞭UNIX/Linux中分析目標文件的實用工具和ELF二進製格式的相關內容,隨後介紹瞭進程追蹤、各種不同類型的Linux和UNIX病毒,以及如何使用ELF病毒技術進行處理。
本書的後半部分介紹瞭如何使用Kprobe工具進行內核破解、代碼修補和調試,如何檢測並處理內核模式的rootkit,以及如何分析靜態代碼;對復雜的用戶級內存感染分析進行瞭相關講解。
本書將帶領讀者探索甚至連一些專傢都未曾接觸的領域,正式進入計算機黑客世界。
本書讀者對象
如果你是一名軟件工程師或者逆嚮工程師,想要學習Linux二進製分析相關的內容,本書實為明智之選。本書提供瞭在安全、取證和殺毒領域中實施二進製分析的解決方案。本書也適閤安全愛好者和係統工程師閱讀。為瞭更好地理解本書內容,讀者需要具備一定的C語言編程基礎和Linux命令行知識。
本書內容
ELF二進製格式的內部工作原理;
UNIX病毒感染和分析的相關技術;
二進製加固和軟件防篡改技術;
修補可執行文件和進程內存;
繞過惡意軟件中的反調試;
二進製取證分析技術;
用C語言設計ELF相關的工具;
如何使用ptrace操作內存。
本書源碼可通過www.epubit.com.cn/book/details/4696下載。
內容簡介
二進製分析屬於信息安全業界逆嚮工程中的一種技術,通過利用可執行的機器代碼(二進製)來分析應用程序的控製結構和運行方式,有助於信息安全從業人員更好地分析各種漏洞、病毒以及惡意軟件,從而找到相應的解決方案。
《Linux二進製分析》是一本剖析Linux ELF工作機製的圖書,共分為9章,其內容涵蓋瞭Linux環境和相關工具、ELF二進製格式、Linux進程追蹤、ELF病毒技術、Linux二進製保護、Linux中的ELF二進製取證分析、進程內存取證分析、擴展核心文件快照技術、Linux/proc/kcore分析等。
《Linux二進製分析》適閤具有一定的Linux操作知識,且瞭解C語言編程技巧的信息安全從業人員閱讀。
作者簡介
Ryan O'Neill(ELF大師)是一名計算機安全研究員兼軟件工程師,具有逆嚮工程、軟件開發、安全防禦和取證分析技術方麵的背景。他是在計算機黑客亞文化的世界中成長起來的——那個由EFnet、BBS係統以及係統可執行棧上的遠程緩衝區溢齣組成的世界。他在年輕時就接觸瞭係統安全、開發和病毒編寫等領域。他對計算機黑客的極大熱情如今已經演變成瞭對軟件開發和專業安全研究的熱愛。Ryan在DEFCON和RuxCon等很多計算機安全會議上發錶過演講,還舉辦瞭一個為期兩天的ELF二進製黑客研討會。
他的職業生涯非常成功,曾就職於Pikewerks、Leviathan安全集團這樣的大公司,最近在Backtrace擔任軟件工程師。
Ryan還未齣版過其他圖書,不過他在Phrack和VXHeaven這樣的在綫期刊上發錶的論文讓他聲名遠揚。還有許多其他的作品可以從他的網站(http://www.bitlackeys.org)上找到。
目錄
第1章 Linux環境和相關工具 1
1.1 Linux工具 1
1.1.1 GDB 2
1.1.2 GNU binutils中的objdump 2
1.1.3 GNU binutils中的objcopy 3
1.1.4 strace 3
1.1.5 ltrace 4
1.1.6 基本的ltrace命令 4
1.1.7 ftrace 4
1.1.8 readelf 4
1.1.9 ERESI——ELF反編譯係統接口 5
1.2 有用的設備和文件 6
1.2.1 /proc/
/maps 6
1.2.2 /proc/kcore 6
1.2.3 /boot/System.map 6
1.2.4 /proc/kallsyms 7
1.2.5 /proc/iomem 7
1.2.6 ECFS 7
1.3 鏈接器相關環境指針 7
1.3.1 LD_PRELOAD環境變量 8
1.3.2 LD_SHOW_AUXV環境變量 8
1.3.3 鏈接器腳本 9
1.4 總結 10
第2章 ELF二進製格式 11
2.1 ELF文件類型 12
2.2 ELF程序頭 14
2.2.1 PT_LOAD 14
2.2.2 PT_DYNAMIC——動態段的Phdr 15
2.2.3 PT_NOTE 17
2.2.4 PT_INTERP 17
2.2.5 PT_PHDR 17
2.3 ELF節頭 18
2.3.1 .text節 20
2.3.2 .rodata節 20
2.3.3 .plt節 21
2.3.4 .data節 21
2.3.5 .bss節 21
2.3.6 .got.plt節 21
2.3.7 .dynsym節 21
2.3.8 .dynstr節 22
2.3.9 .rel.*節 22
2.3.10 .hash節 22
2.3.11 .symtab節 22
2.3.12 .strtab節 23
2.3.13 .shstrtab節 23
2.3.14 .ctors和.dtors節 23
2.4 ELF符號 27
2.4.1 st_name 28
2.4.2 st_value 28
2.4.3 st_size 28
2.4.4 st_other 28
2.4.5 st_shndx 29
2.4.6 st_info 29
2.5 ELF重定位 34
2.6 ELF動態鏈接 43
2.6.1 輔助嚮量 44
2.6.2 瞭解PLT/GOT 46
2.6.3 重溫動態段 49
2.7 編碼一個ELF解析器 52
2.8 總結 55
第3章 Linux進程追蹤 57
3.1 ptrace的重要性 57
3.2 ptrace請求 58
3.3 進程寄存器狀態和標記 60
3.4 基於ptrace的調試器示例 61
3.5 ptrace調試器 67
3.6 高級函數追蹤軟件 75
3.7 ptrace和取證分析 75
3.8 進程鏡像重建 77
3.8.1 重建進程到可執行文件的挑戰 78
3.8.2 重建可執行文件的挑戰 78
3.8.3 添加節頭錶 79
3.8.4 重建過程算法 79
3.8.5 在32位測試環境中使用Quenya重建進程 81
3.9 使用ptrace進行代碼注入 83
3.10 簡單的例子演示復雜的過程 91
3.11 code_inject工具演示 92
3.12 ptrace反調試技巧 92
3.13 總結 94
第4章 ELF病毒技術——Linux/UNIX病毒 95
4.1 ELF病毒技術 96
4.2 設計ELF病毒麵臨的挑戰 97
4.2.1 寄生代碼必須是獨立的 97
4.2.2 字符串存儲的復雜度 99
4.2.3 尋找存放寄生代碼的閤理空間 100
4.2.4 將執行控製流傳給寄生代碼 100
4.3 ELF病毒寄生代碼感染方法 101
4.3.1 Silvio填充感染 101
4.3.2 逆嚮text感染 106
4.3.3 data段感染 108
4.4 PT_NOTE到PT_LOAD轉換感染 110
4.5 感染控製流 112
4.5.1 直接PLT感染 113
4.5.2 函數蹦床(function trampolines) 113
4.5.3 重寫.ctors/.dtors函數指針 114
4.5.4 GOT感染或PLT/GOT重定嚮 115
4.5.5 感染數據結構 115
4.5.6 函數指針重寫 115
4.6 進程內存病毒和rootkits——遠程代碼注入技術 115
4.6.1 共享庫注入 116
4.6.2 text段代碼注入 120
4.6.3 可執行文件注入 120
4.6.4 重定位代碼注入——ET_REL注入 120
4.7 ELF反調試和封裝技術 121
4.7.1 PTRACE_TRACEME技術 121
4.7.2 SIGTRAP處理技術 122
4.7.3 /proc/self/status技術 122
4.7.4 代碼混淆技術 123
4.7.5 字符串錶轉換技術 124
4.8 ELF病毒檢測和殺毒 124
4.9 總結 126
第5章 Linux二進製保護 127
5.1 ELF二進製加殼器 127
5.2 存根機製和用戶層執行 128
5.3 保護器存根的其他用途 133
5.4 現存的ELF二進製保護器 133
5.4.1 DacryFile——Grugq於2001年發布 134
5.4.2 Burneye——Scut於2002年發布 134
5.4.3 Shiva——Neil Mehta和Shawn Clowes於2003年發布 135
5.4.4 May's Veil——Ryan O'Neill於2014年發布 136
5.5 下載Maya保護的二進製文件 142
5.6 二進製保護中的反調試 142
5.7 防模擬技術 143
5.7.1 通過係統調用檢測模擬 144
5.7.2 檢測模擬的CPU不一緻 144
5.7.3 檢測特定指令之間的時延 144
5.8 混淆方法 145
5.9 保護控製流完整性 145
5.9.1 基於ptrace的攻擊 145
5.9.2 基於安全漏洞的攻擊 146
5.10 其他資源 147
5.11 總結 147
第6章 Linux下的ELF二進製取證分析 149
6.1 檢測入口點修改技術 150
6.2 檢測其他形式的控製流劫持 154
6.2.1 修改.ctors/.init_array節 154
6.2.2 檢測PLT/GOT鈎子 155
6.2.3 檢測函數蹦床 158
6.3 識彆寄生代碼特徵 159
6.4 檢查動態段是否被DLL注入 161
6.5 識彆逆嚮text填充感染 164
6.6 識彆text段填充感染 166
6.7 識彆被保護的二進製文件 170
6.8 IDA Pro 175
6.9 總結 175
第7章 進程內存取證分析 177
7.1 進程內存布局 178
7.1.1 可執行文件內存映射 179
7.1.2 程序堆 179
7.1.3 共享庫映射 180
7.1.4 棧、VDSO和vsyscall 180
7.2 進程內存感染 181
7.2.1 進程感染工具 181
7.2.2 進程感染技術 182
7.3 檢測ET_DYN注入 184
7.3.1 Azazel:用戶級rootkit檢測 184
7.3.2 映射齣進程的地址空間 184
7.3.3 查找棧中的LD_PRELOAD 187
7.3.4 檢測PLT/GOT鈎子 188
7.3.5 ET_DYN注入內部原理 190
7.3.6 操縱VDSO 194
7.3.7 共享目標文件加載 195
7.3.8 檢測.so注入的啓發方法 196
7.3.9 檢測PLT/GOT鈎子的工具 197
7.4 Linux ELF核心文件 198
7.5 總結 204
第8章 ECFS——擴展核心文件快照技術 205
8.1 曆史 205
8.2 ECFS原理 206
8.3 ECFS入門 206
8.3.1 將ECFS嵌入到核心處理器中 207
8.3.2 在不終止進程的情況下使用ECFS快照 208
8.4 libecfs——解析ECFS文件的庫 208
8.5 readecfs工具 209
8.6 使用ECFS檢測被感染的進程 210
8.6.1 感染主機進程 210
8.6.2 捕獲並分析ECFS快照 211
8.6.3 使用readecfs提取寄生代碼 215
8.6.4 Azazel用戶級rootkit分析 216
8.7 ECFS參考指南 224
8.7.1 ECFS符號錶重建 225
8.7.2 ECFS節頭 226
8.7.3 使用ECFS文件作為常規的核心文件 229
8.7.4 libecfs API的使用 229
8.8 使用ECFS恢復中斷的進程 230
8.9 瞭解更多ECFS相關內容 231
8.10 總結 232
第9章 Linux/proc/kcore分析 233
9.1 Linux內核取證分析和rootkit 233
9.2 沒有符號的備份vmlinux 234
9.3 探索/proc/kcore和GDB 236
9.4 直接修改sys_call_table 237
9.4.1 檢測sys_call_table修改 238
9.4.2 內核函數蹦床 238
9.4.3 函數蹦床示例 239
9.4.4 檢測函數蹦床 241
9.4.5 檢測中斷處理器修復 243
9.5 Kprobe rootkit 243
9.6 調試寄存器rootkit——DRR 244
9.7 VFS層rootkit 244
9.8 其他內核感染技術 245
9.9 vmlinux和.altinstructions修補 245
9.9.1 .altinstructions和.altinstr_replace 246
9.9.2 arch/x86/include/asm/alternative.h代碼片段 246
9.9.3 使用textify驗證內核代碼完整性 247
9.9.4 使用textify檢查sys_call_table 247
9.10 使用taskverse查看隱藏進程 248
9.11 感染的LKM——內核驅動 249
9.11.1 方法一:感染LKM文件——符號劫持 249
9.11.2 方法二:感染LKM文件——函數劫持 249
9.11.3 檢測被感染的LKM 250
9.12 /dev/kmem和/dev/mem 250
9.12.1 /dev/mem 251
9.12.2 FreeBSD /dev/kmem 251
9.13 K-ecfs ——內核ECFS 251
9.14 內核黑客工具 252
9.14.1 通用的逆嚮工程和調試 253
9.14.2 高級內核劫持/調試接口 253
9.14.3 本章提到的論文 253
9.15 總結 254
Linux二進製分析 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
此賣傢交流,不由得精神為之一振,自覺七經八脈為之一暢,我在~買瞭這麼多年,所謂閱商無數,但與賣傢您交流,我隻想說,老闆你實在是太好瞭,你的高尚情操太讓人感動瞭,本人對此賣傢之仰慕如滔滔江水連綿不絕,海枯石爛,天崩地裂,永不變心。交易成功後,我的心情是久久不能平靜,自古英雄齣少年,賣傢年紀輕輕,就有經天緯地之纔,定國安邦之智,而今,天佑我大中華,滄海桑田5000年,神州平地一聲雷,飛沙走石,大霧迷天,朦朧中,隻見頂天立地一金甲天神立於天地間,花見花開,人見人愛,這位英雄手持雙斧,二目如電,一斧下去,混沌初開,二斧下去,女媧造人,三斧下去,小生傾倒。得此大英雄,實乃國之幸也,民之福,人之初也,怎不叫人喜極而泣……看著交易成功,我竟産生齣一種無以名之的悲痛感——啊,這麼好的賣傢,如果將來我再也遇不到瞭,那我該怎麼辦?直到我毫不猶豫地把賣傢的店收藏瞭,我內心的那種激動纔逐漸平靜下來,可是我立刻想到,這麼好的賣傢,倘若彆人看不到,那麼不是浪費心血嗎?經過痛苦的思想鬥爭,我終於下定決心,犧牲小我,奉獻大我。我要以此評價奉獻給世人賞閱,我要給好評……評到所有人都看到為止!
評分
☆☆☆☆☆
智能設備的發展並沒有止步在智能手機,而是快速朝著智能可穿戴設備、智能傢居和車聯網等方嚮擴張。但要想把Linux係統移植到這些外設豐富並且處理器架構各異的設備中,對於初級工程師而言也並非易事,因為這不僅要求工程師熟悉C、匯編等編程語言,瞭解基本的硬件操作方法和協議規範,還要求工程師對Linux的內核架構、編譯係統、調試方法以及
評分
☆☆☆☆☆
本書閤適還沒有接觸linux,又想通過學習來增加自己的技術水平的人。
評分
☆☆☆☆☆
寶貝收到啦,挺滿意的,這麼厚一大本,學計算機必備,京東次日達,非常滿意,書完好無損,滿意!
評分
☆☆☆☆☆
服務器架設篇
評分
☆☆☆☆☆
Jingdong
評分
☆☆☆☆☆
親賢臣,遠小人,此先漢所以興隆也;親小人,遠賢臣,此後漢所以傾頹也。先帝在時,每與臣論此事,未嘗不嘆息痛恨於桓、靈也。侍中、尚書、長史、參軍,此悉貞良死節之臣,願陛下親之信之,則漢室之隆,可計日而待也。
評分
☆☆☆☆☆
東西非常不錯,非常詳細,前期的鋪墊也非常不錯,贊一個。對於我這種新開始學習的很有用
評分
☆☆☆☆☆
這年頭大傢還會買紙質書看,雖然說本質上是為瞭獲取知識,但是形式上還是會很在意書籍的外在美觀程度的,至少我個人比較在意。結果一層塑料快遞包裝袋,書都磨成瞭這個樣子,太影響買到新書的心理感受和購物體驗瞭。