圖書信息
中文名: 殺不死的秘密小冊子作者: 姬良.圖書分類: 網路
資源格式: PDF
版本: 掃描版
出版社: 齊魯電子音像出版社.書號: 9787894620255.發行時間: 2010年06月01日
地區: 大陸
語言: 簡體中文
內容提要
詳細的PE結構講解本書既講解PE檔案的免殺,同時也講解腳本檔案的免殺。不過二者相比,本書更注重對於PE檔案的免殺講解。在現在的技術研究圈子內,大部分的免殺愛好者對PE結構認識不清,導致了在免殺過程中遇到很多困難,卻無法從原理入手解決。本書面向廣大免殺愛好者,將PE結構單獨歸為一章進行詳細講解,將免殺製作中經常用到的PE結構欄位講解清楚,語言通俗易懂。讀完本章,可是讀者有撥開雲霧見青天的感覺,第一次讓你了解你每天接觸的PE檔案。
詳細的彙編知識講解
了解了PE結構還不夠,雖然對PE結構有了了解,但是還不能隨心所欲的修改PE檔案,因為還不具備免殺必須的反彙編基礎。在如今的免殺愛好者群體中,流傳最為廣泛的彙編基礎知識是8086彙編指令集,而這個指令集也只是簡單的列出指令對應的中文意義,這完全不足以使初學者了解免殺必備的技術支持。針對這一問題,本書專門講彙編講解歸為一個很大的章,在本章中詳細講解免殺常用的彙編指令,並針對絕大多數的彙編指令進行了實力演示。為了能使彙編講解得到更好的效果,在本章開篇,還詳細介紹了暫存器,Win32定址過程等基礎知識。本書關於彙編知識的講解,是同類書籍中從未有過的詳細。
知名防毒軟體高級查殺原理探秘
啟發式掃描、主動防禦、雲查殺……這些比較新的防毒方法,可能只有360安全工具的雲查殺是廣大免殺愛好者比較了解的。但是對於主動防禦和啟發式掃描這些概念,儘管免殺技術愛好者們每天都可能遇到這樣的字眼,但是這兩項技術的基本原理,恐怕還有很多免殺技術愛好者並不了解。本書作者有幸參加過瑞星2008年一次雲安全討論,在本書中,作者將針對主動防禦、啟發式掃描等概念,進行了較為基礎的講解,為疑惑許久的免殺技術愛好者解惑。
全面的特徵碼修改方法總匯
本書匯集了幾乎在網上能見到的所有有效的特徵碼修改方法。作者更是把多年來的免殺經驗滲透到本書的各個章節,這是不可多得的知識,能讓讀者少走很多彎路。
目錄:
一、和我一起來認識免殺1.1 什麼是免殺
1.2 免殺的發展史
1.3 免殺能做什麼
二、組建試驗環境
2.1 我們需要什麼
2.2 安裝虛擬機
2.2.1 影子系統的安裝與使用
2.2.2 VMware虛擬機的安裝與使用
2.3 防毒軟體的安裝與設定
2.4 認識我們的免殺利器
三、免殺基礎知識
3.1 防毒軟體的原理與防毒技術簡介
3.1.1 防毒軟體工作原理
3.1.2 基於檔案掃描的防毒技術
3.1.3 基於記憶體掃描的防毒技術
3.1.4 防毒技術前沿
3.1.5 防毒技術展望
3.2 了解PE檔案
3.2.1 什麼是PE檔案
3.2.2 認識PE檔案
3.3 檔案免殺原理
3.3.1 什麼是特徵碼
3.3.2 檔案免殺原理
3.4工具脫殼技巧
3.4.1 專用脫殼工具脫殼
3.4.2 使用通用脫殼工具
四、特徵碼免殺技術
4.1 戰前熱身——腳本木馬免殺實例
4.1.1理想狀態下的免殺
4.1.2腳本木馬也要玩“花指令”
4.2 特徵碼定位原理
4.2.1 CCL特徵碼定位原理
4.2.2 MYCCL特徵碼定位原理
4.2.3 MultiCCL特徵碼定位原理
4.3 腳本木馬定位特徵碼技巧
4.4 MYCCL查找檔案特徵碼
4.4.1 MYCCL的典型套用
4.4.2 針對MYCCL的一點思考
4.5 MYCCL查找記憶體特徵碼
4.6 MultiCCL使用技巧
4.6.1 MultiCCL介紹
4.6.2 MultiCCL定位檔案特徵碼
4.6.3 MultiCCL定位記憶體特徵碼
4.6.4 由MultiCCL想到的
4.7 特徵碼修改方法
4.7.1 簡單的特徵碼修改
4.7.2 特徵碼修改進階
五、其他免殺技術
5.1 改檔案頭免殺
5.1.1 操作篇
5.1.2 原理篇
5.2 入口點免殺技術
5.2.1 操作篇
5.2.2 原理篇
5.3 使用Vmprotect加密
5.3.1 操作篇
5.3.2 原理篇
5.4 Restorator資源修改
5.4.1 操作篇
5.4.2 原理篇
5.5 Overlay附加數據處理及套用
5.5.1 操作篇
5.5.2 原理篇
5.6 Sys免殺修改技巧
5.6.1 sys檔案的常見免殺方法
5.6.2 sys檔案的手工免殺思路
5.7 補丁在免殺中的套用
5.7.1 操作篇
5.7.2 原理篇
5.8 免殺根基——PE檔案介紹
5.8.1 PE檔案格式
5.8.2 虛擬記憶體的簡單介紹
5.8.3 PE檔案的記憶體映射
5.9 PE檔案中的免殺技術
5.9.1 移動PE檔案頭位置免殺
5.9.2 輸入表移動免殺
5.9.3 輸出表移動免殺
5.10 網頁木馬的免殺技術
5.10.1 腳本木馬免殺
5.10.2小論網頁木馬的免殺
六、免殺與花指令
6.1 什麼是花指令
6.2 腳本木馬的花指令套用
6.3 花指令根基——了解彙編語言
6.3.1 認識彙編
6.3.2 由彙編語言想到的——通過反彙編添加任意功能
6.4 花指令入門
6.5 花指令在免殺領域的套用
6.5.1 花指令的套用技巧
6.5.2 花指令的修改技巧簡介
6.5.3 空白區域尋找與加空白區段
6.6 花指令的高級套用
6.6.1 花指令的提取與快速套用
6.6.2 SEH異常的套用
七、免殺與殼
7.1 什麼是殼
7.2 殼的基礎知識
7.3 殼在免殺領域的套用
7.3.1 加殼的免殺原理
7.3.2 FreeRes多重加殼
7.4 殼的修改技巧
7.4.1 殼的初級修改
7.4.2 製作通用補丁
7.5 手工脫殼技巧
7.5.1 手工脫殼基礎
7.5.2 SFX自解壓法脫殼
7.5.3 出口標誌法脫dePack殼
7.5.4 單步跟蹤法脫殼
7.5.5 經典的ESP定律脫殼
7.5.6 最後一次異常法脫殼
7.5.7 記憶體鏡像法脫殼
7.5.8 模擬跟蹤法脫殼
7.5.9 非完美脫殼後的程式修復
八、免殺技術前沿
8.1 防毒與免殺技術的發展
8.2 啟發式防毒原理
8.2.1 啟發式防毒原理
8.2.2 啟發性標誌詳解
8.3 針對啟發式防毒的免殺方法
8.4 主動防禦的原理
8.4.1 初探主動防禦
8.4.2 主動防禦的原理
8.5 針對主動防禦的免殺方法
8.5.1 剖析主動防禦的弱點
8.5.2 修改時間攻破卡巴斯基
8.5.3 通過主動防禦特徵碼來突破瑞星主防
8.5.4 手工打造突破主動防禦
8.6 與防毒軟體的對抗
九、免殺技術補白
9.1 綜合免殺實例
9.1.1 策劃安排
9.1.2 設計免殺流程與免殺對策
9.1.3 設計免殺執行方案
9.1.4 按照執行方案執行免殺操作
9.2 免殺中的漢化技術
9.2.1 VB程式的漢化與修改
9.2.2 C程式的漢化與修改
9.2.3 Delphi程式的漢化與修改
9.3 病毒命名規則初探
9.4 關於免殺的幾個FAQ
真實的免殺實例
現在圈子裡不乏一些為文章而文章的情況。很多人寫的免殺實例並不是真正意義上的實例,而是自我構造出的免殺案例而已,這種現象已經非常普遍。導致很多朋友看完一些免殺案例後,自己動手做的時候,錯誤重重,後來甚至使讀者不再相信多數的免殺案例文章。而本書中著重強調實例,免殺實例章節中的所有免殺實例均為真實的案例,並配有測試錄像。
目錄
第一章 背景知識
1.1 免殺技術的發展.......................................................1
1.2 免殺技術的定義.......................................................2
1.3 防毒軟體查殺原理.....................................................2
1.3.1 特徵碼法....................................................2
1.3.2 校驗和法....................................................3
1.3.3 行為監測法..................................................4
1.3.4 軟體模擬法..................................................4
1.3.5 總結........................................................4
1.4 常見防毒軟體及其防毒引擎特點.........................................5
1.5 免殺技術的分類.......................................................6
1.5.1 內部免殺和外部免殺..........................................6
1.5.2 特徵碼免殺和大範圍免殺......................................6
1.5.3 檔案免殺、記憶體免殺和行為免殺................................6
1.5.4 盲免技術....................................................7
第二章 搭建實驗環境
2.1 免殺測試步驟及測試環境...............................................8
2.1.1 免殺測試中遇到的問題........................................8
2.1.2 虛擬機的概念................................................8
2.1.3 VMware工作原理.............................................9
2.1.4 系統還原技術................................................9
2.1.5 冰點還原工作原理............................................9
2.1.6 選用哪種方式測試免殺效果....................................9
2.2 VMware的安裝與使用.................................................10
2.2.1 安裝VMware Workstation 6.5.2中文版........................10
2.2.2 創建一個新的虛擬機..........................................12
2.2.3 在VMware的虛擬機中安裝Ghost XP...........................14
2.2.4 安裝VMware Tools及簡單使用VMware........................16
2.3 冰點還原的安裝與使用.................................................17
2.3.1 安裝冰點還原................................................17
2.3.2 使用冰點還原................................................18
2.4 綜合型的測試環境.....................................................19
2.5 常用免殺工具一覽.....................................................19
第三章 免殺技術前置知識——PE結構
3.1 PE結構簡單介紹......................................................26
3.1.1 PE檔案結構(簡化)............................................26
3.1.2 初步理解記憶體地址............................................26
3.1.3 檔案偏移地址和虛擬地址轉換..................................27
3.2 DOS檔案頭和DOS塊...................................................27
3.2.1 DOS檔案頭..................................................27
3.2.2 DOS塊......................................................28
3.3 PE檔案頭............................................................29
3.3.1 FileHeader欄位...............................................29
3.3.2 OptionalHeader欄位...........................................30
3.4 區段表和區段.........................................................32
3.5 輸出表和輸入表.......................................................32
3.5.1 輸出表......................................................32
3.5.2 輸入表......................................................33
3.6 什麼是加殼免殺.......................................................33
3.6.1 加殼免殺概念................................................33
3.6.2 殼程式的分類................................................33
3.7 殼程式的使用.........................................................34
3.7.1 ASPack加殼實例..............................................34
3.7.2 UPX加殼實例...............................................35
3.7.3 NSPack加殼實例..............................................36
3.8 實戰加殼免殺.........................................................37
3.9 從PEID實戰PE結構..................................................38
3.9.1 使用PEID載入一個檔案.......................................39
3.9.2 入口點......................................................39
3.9.3 EP段.......................................................39
3.9.4 檔案偏移....................................................40
3.9.5 首位元組及彙編的概念..........................................40
3.9.6 查殼功能....................................................41
3.9.7 查殼原理....................................................41
3.9.8 PEID的設定.................................................41
第四章 免殺技術前置知識——彙編基礎
4.1 免殺技術與彙編及反彙編的關係.........................................42
4.1.1 機器語言....................................................42
4.1.2 彙編語言....................................................42
4.1.3 高級語言....................................................42
4.1.4 反彙編......................................................42
4.1.5 彙編與反彙編................................................43
4.2 暫存器和堆疊.........................................................44
4.2.1 暫存器......................................................44
4.2.2 堆疊........................................................44
4.3 記憶體單元與記憶體定址...................................................45
4.3.1 記憶體單元....................................................45
4.3.2 記憶體地址....................................................45
4.3.3 80386的定址機制.............................................46
4.3.4 大尾與小尾..................................................47
4.4 JMP指令與EIP暫存器.................................................48
4.4.1 jmp(JuMP)指令.............................................48
4.4.2 EIP暫存器...................................................48
4.5 常用傳送指令.........................................................49
4.5.1 PUSH(PUSH)指令..........................................49
4.5.2 POP(POP)指令.............................................49
4.5.3 MOV(MOVe)指令..........................................50
4.5.4 LEA(Load Effective Address)指令............................51
4.6 算術運算指令Ⅰ.......................................................52
4.6.1 ADD(ADD)指令............................................52
4.6.2 SUB(SUBtract)指令.........................................52
4.7 標誌暫存器...........................................................52
4.7.1 ZF標誌位...................................................52
4.7.2 PF標誌位....................................................53
4.7.3 SF標誌位....................................................54
4.7.4 CF標誌位....................................................54
4.8 算術運算指令Ⅱ.......................................................55
4.8.1 ADC(ADd with Carry)指令.................................55
4.8.2 SBB(SuBtract with Borrow)指令............................55
4.8.3 INC(INCrement)指令........................................56
4.8.4 DEC(DECrement)指令......................................56
4.8.5 CMP(CoMPare)指令.........................................56
4.9 邏輯運算指令.........................................................57
4.9.1 AND(AND)指令............................................57
4.9.2 OR(OR)指令...............................................57
4.9.3 XOR(eXclusive OR)指令....................................58
4.9.4 TEST(TEST)指令...........................................58
4.10 程式轉移指令........................................................58
4.10.1 CALL(CALL)指令..........................................58
4.10.2 RETN/RETF(RETurN/ RETurn [內容被過濾,請注意論壇文明])指令..................59
4.10.3 條件轉移指令................................................60
4.10.4 LOOP(LOOP)指令.........................................60
4.10.5 NOP(No OPeretion)指令...................................61
4.11 環境保存............................................................61
4.11.1 變化的ESP暫存器...........................................61
4.11.2 LEAVE(LEAVE)指令.......................................62
4.12 OD使用指南.........................................................62
4.12.1 將檔案載入OD..............................................63
4.12.2 反彙編代碼視窗.............................................63
4.12.3 程式是如何執行的...........................................64
4.12.4 免殺過程中經常用到的OD的調試功能..........................65
4.12.5 單步跟蹤和單步步入.........................................65
4.12.6 斷點和設定斷點.............................................66
4.12.7 編輯指令...................................................66
4.12.8 表達式跟隨.................................................66
4.12.9 查找命令...................................................67
4.12.10 重新設定EIP...............................................67
4.12.11 複製到執行檔..........................................67
4.12.12 查看跳轉方向..............................................67
4.13 手工加花免殺........................................................68
4.13.1 加花免殺的原理.............................................68
4.13.2 一個典型的花指令...........................................68
4.13.3 給上興服務端加花...........................................68
4.14 工具加花免殺實例....................................................72
4.15 為什麼要編寫花指令..................................................73
4.15.1 堆疊平衡...................................................73
4.15.2 pushad和popad..............................................73
4.15.3 常用平衡指令...............................................73
4.16 C32Asm使用指南....................................................74
4.16.1 打開檔案...................................................74
4.16.2 編輯數據...................................................74
4.16.3 地址跳轉...................................................75
4.16.4 數據查找...................................................75
4.16.5 文本操作...................................................75
4.16.6 保存檔案...................................................75
4.17 API調用.............................................................75
第五章 手工脫殼
5.1 脫殼基礎知識.........................................................80
5.1.1 脫殼的概念..................................................80
5.1.2 OEP(Original Entry Point)...................................80
5.1.3 脫殼的用處..................................................80
5.2 單步跟蹤法...........................................................80
5.2.1 使用單步跟蹤法追蹤OEP的常見步驟............................80
5.2.2 使用單步跟蹤法脫UPX殼.....................................81
5.3 ESP定律法...........................................................85
5.3.1 使用ESP定律追蹤OEP的常見步驟..............................85
5.3.2 ESP定律脫北斗殼.............................................85
5.3.3 ESP定律原理................................................86
5.4 二次斷點法...........................................................87
5.4.1 使用二次斷點法追蹤OEP的常見步驟............................87
5.4.2 使用二次斷點法脫殼實例......................................87
5.5 末次異常法...........................................................90
5.5.1 使用末次異常法追蹤OEP的常見步驟............................90
5.5.2 使用末次異常法脫tElock 0.98.................................90
5.6 模擬跟蹤法...........................................................95
5.6.1 模擬跟蹤法的常見步驟........................................95
5.6.2 使用模擬跟蹤法脫FSG 1.33殼.................................95
5.7 SFX自動脫殼法.......................................................96
5.7.1 使用SFX自動脫殼法脫殼的常見步驟............................96
5.7.2 使用SFX自動脫殼法脫dxpack殼...............................96
5.8 出口標誌法...........................................................97
5.8.1 使用出口標誌法脫殼的常見步驟................................97
5.8.2 使用出口標誌法脫depack殼...................................98
5.9 使用脫殼腳本輔助脫殼.................................................99
5.10 使用脫殼工具脫殼....................................................100
5.10.1 超級巡警脫殼工具的工作方法..................................100
5.10.2 使用超級巡警脫殼工具脫殼..................................100
第六章 常用大範圍免殺方法
6.1 利用加多個花指令的方法實現木馬免殺..................................101
6.1.1 加多花免殺的原理............................................101
6.1.2 加多花免殺實例..............................................101
6.2 利用殼外花實現木馬免殺..............................................104
6.3 利用FreeRes實現加多殼免殺............................................106
6.4 利用修改殼頭實現木馬免殺.............................................107
6.4.1 ASPack 2.12殼的修改........................................107
6.4.2 UPX殼的修改...............................................108
6.5 利用移動PE頭的方法實現木馬免殺.....................................109
6.6 利用SEH技術給木馬加花...............................................113
6.7 利用去頭加花方法實現木馬免殺.........................................114
6.8 利用reloc改殼免殺木馬................................................117
6.9 利用LordPE重建PE實現免殺...........................................119
6.10 利用添加PE數字簽名實現免殺.........................................119
6.10.1 判斷一個PE檔案是否具有數字證書...........................120
6.10.2 獲取PE檔案內數字簽名的起始位置............................120
6.10.3 獲取PE檔案內數字簽名的長度...............................120
6.10.4 拷貝數字簽名到pcmain.dll中................................120
6.10.5 給pcmain.dll添加PE數字簽名相關配置信息.....................121
6.10.6 利用工具快速給PE檔案添加數字簽名..........................121
第七章 特徵碼定位
7.1 再談特徵碼...........................................................122
7.1.1 特徵碼查殺兩要素............................................122
7.1.2 複合特徵碼查殺..............................................122
7.1.3 隱藏特徵碼.................................................123
7.1.4 啟發式掃描..................................................123
7.1.5 狹義上的特徵碼與廣義上的特徵碼..............................124
7.2 MyCCL定位原理......................................................124
7.2.1 MyCCL定位複合特徵碼的原理.................................124
7.2.2 MyCCL對特徵碼的精確定位...................................125
7.2.3 隱式隱含特徵碼..............................................126
7.3 MultiCCL定位原理.....................................................126
7.4 MyCCL定位檔案特徵碼實例...........................................128
7.4.1 粗略定位複合特徵碼..........................................128
7.4.2 精確定位複合特徵碼..........................................130
7.5 MultiCCL定位檔案特徵碼實例..........................................131
7.5.1 使用MultiCCL定位檔案特徵碼.................................131
7.5.2 MultiCCL保護區域的設定....................................134
7.6 定位記憶體特徵碼......................................................135
7.6.1 使用MyCCL定位記憶體特徵碼...................................135
7.6.2 使用MultiCCL定位記憶體特徵碼.................................136
7.7 啟發式掃描與主動防禦................................................138
7.7.1 啟發式掃描.................................................138
7.7.2 主動防禦....................................................139
第八章 特徵碼修改方法
8.1 等值替換法修改特徵碼................................................140
8.2 修改ASCII特徵碼大小寫...............................................141
8.2.1 ASCII碼和ANSI碼............................................141
8.2.2 利用ASCII特徵碼大小寫轉換免殺LCX..........................142
8.3 去除無用ASCII特徵碼................................................142
8.4 移動ASCII特徵碼......................................................143
8.4.1 ASCII碼數據如何發揮作用....................................144
8.4.2 免殺原始檔案................................................144
8.4.3 移動ASCII特徵碼實例.........................................144
8.5 顛倒代碼順序實現特徵碼修改..........................................147
8.6 利用vmprotect v1.21加密特徵碼.......................................148
8.6.1 導出原始服務端中的SYS驅動檔案.............................148
8.6.2 免殺SYS驅動檔案...........................................149
8.7 利用通用跳轉法修改特徵碼.............................................152
8.7.1 利用通用跳轉法修改特徵碼的原理.............................152
8.7.2 利用通用跳轉法修改特徵碼...................................152
8.8 移動輸入表函式特徵碼................................................154
8.9 加空格免殺輸入表檔案名稱...............................................159
8.9.1 什麼是加空格免殺法.........................................159
8.9.2 下面就來實際操作一下........................................159
8.10 修改輸入表描述信息免殺..............................................160
8.11 移動輸出表函式特徵碼...............................................160
8.11.1 認識輸出表的結構..........................................161
8.11.2 移動輸出表函式名..........................................162
8.12 利用異或算法加密特徵碼..............................................163
8.12.1 重溫異或算法...............................................163
8.12.2 異或算法在免殺上的運用....................................163
8.12.3 修改區段標誌...............................................164
8.12.4 加入新區段,並記錄相關數據.................................165
8.12.5 實施加密...................................................167
8.13 利用異或算法加密輸出表函式特徵碼...................................172
8.14 通過修改干擾碼實現特徵碼免殺........................................174
8.14.1 修改第一部分干擾碼.........................................175
8.14.2 修改第二部分干擾碼.........................................175
8.14.3 修改第三部分干擾碼.........................................176
8.14.4 修改特徵碼................................................176
8.15 特徵碼交換..........................................................177
8.15.1 數據傳送法修改特徵碼的原理.................................177
8.15.2 特徵碼交換的原理及套用....................................177
8.15.3 特徵碼交換實例.............................................178
8.16 隱藏輸入表..........................................................181
第九章 對抗新型安全工具
9.1 利用Abetter突破卡巴斯基主動防禦.....................................185
9.2 突破卡巴斯基、瑞星、360安全衛士的安全監控............................187
9.3 簡單突破江民等防毒軟體主動防禦.......................................191
9.4 突破360安全衛士啟動項監控Ⅰ.........................................191
9.4.1 突破360安全衛士啟動項監控的原理.............................191
9.4.2 突破360安全衛士啟動項監控實例.............................192
9.5 突破360安全衛士啟動項監控Ⅱ.........................................194
第十章 綜合免殺實例
10.1 免殺PcShare過諾頓11...............................................196
10.1.1 定位特徵碼.................................................196
10.1.2 特徵碼修改..................................................196
10.2 免殺PcShare過NOD32...............................................199
10.2.1 PcMain.dll檔案特徵碼的修改..................................199
10.2.2 PcInit.exe檔案特徵碼的修改..................................201
10.3 免殺PcShare過瑞星...................................................202
10.3.1 免殺PcMain.dll..............................................202
10.3.2 免殺PcHide.sys..............................................214
10.3.3 免殺PcInit.exe..............................................214
10.4 免殺PcShare過卡巴斯基...............................................216
10.4.1 免殺PcMain.dll..............................................216
10.4.2 免殺PcInit.exe..............................................224
10.5 免殺PcShare附加數據過常見防毒軟體..................................233
10.5.1 修改配置信息加密密鑰........................................233
10.5.2 設定動態密鑰加密............................................235
10.6 免殺PcShare過BitDefender 2010.......................................239
10.6.1 免殺PcMain.dll..............................................240
10.6.2 免殺PcInit.exe..............................................242
第十一章 簡單腳本免殺
11.1 PHP後門的免殺......................................................247
11.2 簡單免殺ASP木馬....................................................248
11.3 拆分網頁木馬的特徵碼................................................248
11.4 利用HTML混淆器免殺網頁木馬.......................................251
11.5 用Escape加密網頁木馬................................................252
11.6 最實用的ASP後門免殺方法............................................253
11.7 腳本後門及網頁木馬的免殺綜述.......................................254
11.7.1 加密法....................................................254
11.7.2 特徵碼修改法..............................................255
11.7.3 分割檔案包含法.............................................256
11.7.4 王牌“免殺法”....... 257