|
Java电子书:有趣的二进制 软件安全与逆向分析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
! C5 C: C) Z- y2 D; `& ]3 T! X- O. J8 f# s G& Y% l! R h
: L" a5 s* f) y3 B% R, v
编号:mudaima-P0360【Java吧 java8.com】
/ D( o" O$ t7 ` ~) c& W& A; d) D2 @! |
* X- s, k; ?) u4 M6 G. E, B6 i
" ]) @/ H2 S6 @! ~3 _3 t
Java电子书目录:第1章 通过逆向工程学习如何读懂二进制代码
5 i1 C) D- s" q8 ]1.1 先来实际体验一下软件分析吧 + y* k$ u: j* a9 ~4 H
1.1.1 通过Process Monitor的日志来确认程序的行为
- }; S* i0 G$ o1.1.2 从注册表访问中能发现些什么
( T# Z9 ^ m5 j0 [: t1.1.3 什么是逆向工程
B8 o" k% Q3 D2 {专栏:逆向工程技术大赛 . n" J5 p) e: E6 A5 ~/ C+ M& n6 D
1.2 尝试静态分析
) l8 t+ g; o7 k! Y" V1.2.1 静态分析与动态分析 / l7 `$ V3 i ]" w6 k3 V
专栏:Stirling与BZ Editor的区别
4 e. D8 a/ D$ V; i1.2.2 用二进制编辑器查看文件内容 5 S6 }- M( k7 ^4 l/ e. G
1.2.3 看不懂汇编语言也可以进行分析
4 c) h0 U! A) H' R2 ^ @1.2.4 在没有源代码的情况下搞清楚程序的行为 2 |$ \" C( c& K8 J1 K( N9 V0 T
1.2.5 确认程序的源代码 6 G* ?& u4 E& U$ p- C( d
1.3 尝试动态分析 ( Z, [" u! @7 X6 G1 a" p* X
1.3.1 设置Process Monitor的过滤规则
, j ?( M! C; ?8 i4 J+ P3 A4 {1 d0 W1.3.2 调试器是干什么用的 " I4 Z4 r2 g$ G
1.3.3 用OllyDbg洞察程序的详细逻辑 & k8 U3 h" P6 [2 u" N9 X3 S4 J
1.3.4 对反汇编代码进行分析 a" ~% @6 m# @; G
专栏:什么是寄存器
$ q5 H9 d; y J. S" l. N( d1.3.5 将分析结果与源代码进行比较 - ?% g9 _2 W- @. a
专栏:选择自己喜欢的调试器
2 l* _ i- R" a" f3 E1.4 学习*基础的汇编指令 & Z5 f- K$ G7 ]! G' [* u6 P
1.4.1 没必要记住所有的汇编指令 : M0 ?3 V! u6 j+ `" J
1.4.2 汇编语言是如何实现条件分支的 + K5 Z9 S" @" J3 k( Q. q- q( L8 p# K8 y
1.4.3 参数存放在栈中 0 G$ u, t, z8 ^, t: x* Y5 {$ |1 ~
1.4.4 从汇编代码联想到C语言源代码 ! Z, V ]+ @8 D
1.5 通过汇编指令洞察程序行为
+ q2 h" p; ?& m3 m0 {3 V2 d1.5.1 给函数设置断点 , ~6 u* T S! w5 h3 c" O3 F/ ?
1.5.2 反汇编并观察重要逻辑
: O- i& c2 |! d8 t专栏:学习编写汇编代码 1 X- e) P& G$ C, N8 p
第2章 在射击游戏中防止玩家作弊
9 C5 e) ?6 ^8 b5 r2.1 解读内存转储 ) C" @5 r# }/ L% p* z- R+ p
2.1.1 射击游戏的规则 ( Q5 a; V; z; \, n ~
2.1.2 修改4个字节就能得高分
. I2 Q: @9 L+ K2.1.3 获取内存转储
4 w' e; N% \7 F3 z* s9 `9 c2.1.4 从进程异常终止瞬间的状态查找崩溃的原因
/ {$ j+ O4 i5 k( c2.1.5 有效运用实时调试
6 }8 X3 L7 B* N2 A2 @4 M2.1.6 通过转储文件寻找出错原因
( m+ h, a* A( z3 }. N T专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行/ Q$ l) \5 W7 j
分析吗 & ] a% p+ k% n. Y+ z9 F
专栏:分析Java编写的应用程序 ) s$ L2 x; O7 p4 ~ c
2.2 如何防止软件被别人分析
$ K- D3 m1 Y3 v6 x1 F' Q1 O2.2.1 反调试技术 \# |) Y# r& k7 e1 D; i
专栏:检测调试器的各种方法
/ ^' w# H- [% x: V3 y2.2.2 通过代码混淆来防止分析 ' U4 r& x! I3 U9 w
专栏:代码混淆的相关话题 . u' \/ ]" u6 g
2.2.3 将可执行文件进行压缩
+ `5 j' U: n! R$ P" A9 ~1 k2.2.4 将压缩过的可执行文件解压缩:解包 ; L# D( v* d5 z1 J1 z
2.2.5 通过手动解包UPX来理解其工作原理 9 H5 @6 b, R, F) Z7 H" O
2.2.6 用硬件断点对ASPack进行解包 $ |+ `# k" ]& X/ c2 ~4 T
专栏:如何分析.NET编写的应用程序
/ z" M# h' c9 @& B第3章 利用软件的漏洞进行攻击 . [; B% [( Q, p/ x d3 ^
3.1 利用缓冲区溢出来执行任意代码 7 d" h( J" l, }3 s7 w
3.1.1 引发缓冲区溢出的示例程序
0 y0 p) Z7 f& o# m3.1.2 让普通用户用管理员权限运行程序 # k9 A1 g- x, a! I* ?% w; l
3.1.3 权限是如何被夺取的 c( U4 }1 u: T6 Z I2 J2 b
3.1.4 栈是如何使用内存空间的 9 @9 S# q1 @4 V, e
3.1.5 攻击者如何执行任意代码 , n" }1 N% l" [/ O" j
3.1.6 用gdb 查看程序运行时的情况
2 L# ?* U& O; U; ?3.1.7 攻击代码示例 ' ~; I! h1 I# v0 \
3.1.8 生成可用作shellcode的机器语言代码
& ? ^5 e- D' G q' G, y3.1.9 对0x00的改进
) K7 I( Y$ X) p; {专栏:printf类函数的字符串格式化bug
, H2 C0 k) x! ]3.2 防御攻击的技术
* D M* d* q, d" u+ T' x3.2.1 地址随机化:ASLR 1 T* ~# e4 X' L% V6 _
3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量0 B" |9 o$ o1 j8 }! v' W3 n
禁用执行权限:Exec-Shield
* `4 d0 S6 M/ {- p3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard ; v/ U) N9 H( p3 H
3.3 绕开安全机制的技术
2 Z3 D; C6 b0 r' l6 o) K3.3.1 使用libc中的函数来进行攻击:Return-into-libc % c( ?8 w: ^8 I0 e! |% b5 B
3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP
) Q1 ]3 L& ~- l( l) ]专栏:计算机安全为什么会变成猫鼠游戏
. _0 n1 D5 ^; s3 B' H第4章 自由控制程序运行方式的编程技巧
0 o5 p" v6 |( u: t5 j4.1 通过自制调试器来理解其原理
- l0 [7 m7 L7 s2 Y" O4.1.1 亲手做一个简单的调试器,在实践中学习
9 ]6 y$ f3 n6 s( _ q5 \3 d4.1.2 调试器到底是怎样工作的
9 j. v J' l& c6 g8 W) c. H4.1.3 实现反汇编功能
. Z# b, i6 V! w I4.1.4 运行改良版调试器 7 N% ?! b) B* J/ G4 W
4.2 在其他进程中运行任意代码:代码注入 ) v% \2 Z5 `8 J. U6 U
4.2.1 向其他进程注入代码 % A$ M( d0 t6 h h
4.2.2 用SetWindowsHookEx劫持系统消息 % {8 z6 H/ T; q/ H t5 G8 d
4.2.3 将DLL路径配置到注册表的AppInit_DLLs项
, }- Z( ] z) [9 G1 |" N* a4.2.4 通过CreateRemoteThread在其他进程中创建线程
6 a; [) h3 W4 b) B0 _4 _3 @' N4.2.5 注入函数 + g& B. n" K! [9 j' {) A9 i
4.3 任意替换程序逻辑:API 钩子 * W( R7 L6 S+ S' C3 `% ]
4.3.1 API 钩子的两种类型 ) E0 c7 U, x& K! n/ G) N
4.3.2 用Detours实现一个简单的API 钩子 ) h( o& I r I( p) @2 M6 v
4.3.3 修改消息框的标题栏
% P9 g$ G+ ^7 w; ?- i- l专栏:DLL注入和API钩子是“黑客”技术的代表?
% w4 [* E4 k( B1 ]3 ^- n0 F: C第5章 使用工具探索更广阔的世界 1 a# N, u$ Z% J+ A5 k3 l( y: I
5.1 用Metasploit Framework验证和调查漏洞 ' `7 O: J; y: K: W+ Z
5.1.1 什么是Metasploit Framework V' m5 @; y- q* V0 \1 D: C# l
5.1.2 安全漏洞的信息从何而来 # K' n& ~5 _+ h% O. \
5.1.3 搭建用于测试漏洞的环境 8 h- a& H+ S3 F$ l. x, P7 q( [8 B
5.1.4 利用漏洞进行攻击
' M! T" }8 w( w9 g6 K专栏:深入探索shellcode ! g: l0 f; P* b ]/ A8 s9 X' A- l; v( z
5.1.5 一个ROP的实际例子
9 R4 Z* P5 B( D% t9 @5 r5.2 用EMET观察反ROP的机制
+ b9 d2 S. y) O" m; S, \0 h2 S5.2.1 什么是EMET
! f* w. E: Y8 E: s9 k+ V/ u5.2.2 Anti-ROP的设计获得了蓝帽奖 2 S& \, q* ^) N8 Z ]" \
5.2.3 如何防止攻击
9 H" K' q) M, n" e- l5 i) c8 E/ y) S5.2.4 搞清楚加载器的逻辑 5 {9 S1 k. K3 h" T5 m
5.2.5 DLL的程序逻辑 , A8 \8 U/ p* e2 W( c& Q* I& \
5.2.6 CALL-RETN检查
& y3 s: B9 F1 Z( x* G8 a6 B7 x$ U5.2.7 如何防止误判 + q2 N% j' H# b! ]/ c7 L
5.2.8 检查栈的合法性 : z$ L, T' a+ k( h( M
5.3 用REMnux 分析恶意软件 " F4 K; F0 u" y5 J& C' x
5.3.1 什么是REMnux
( K: _7 \" C" {" f$ D5.3.2 更新特征数据库
4 O$ s# {7 m+ k& z6 J) k! {5.3.3 扫描目录 . s2 U0 \) r) h" K8 O
5.4 用ClamAV检测恶意软件和漏洞攻击
R/ Y+ V8 F( K5 I$ i5.4.1 ClamAV的特征文件 9 k1 S3 H8 t! b" v: l8 U- w
5.4.2 解压缩.cvd文件
0 I0 G5 M v6 N/ x5.4.3 被检测到的文件详细信息
5 ~ m' s% k/ g5.4.4 检测所使用的打包器以及疑似恶意软件的文件
& G6 l0 [9 Z" \9 X5.5 用Zero Wine Tryouts分析恶意软件 & e1 \( L0 p* |% Y# @ i @
5.5.1 REMnux与Zero Wine Tryouts的区别 * z! @$ Z3 y8 t& c0 g7 w2 Y: p( W
5.5.2 运行机制
$ v' R$ h4 J# ^9 @1 N5.5.3 显示用户界面 1 @. L& ~) q! k h% c
5.5.4 确认分析报告
! s" I9 G/ E/ u3 E6 N: p专栏:尝试开发自己的工具
! N6 Q# b- p- W) Q+ V) D H5.6 尽量减少人工分析:启发式技术
t$ T# o& v* P8 L7 j# I5.6.1 恶意软件应对极限的到来:平均每天60000个
% D5 o! D; T, o4 a2 |# i, N7 `5.6.2 启发式技术革命 / i/ x. H% f. E3 z: A* d9 s' B2 k
5.6.3 用两个恶意软件进行测试 ' D4 m c3 c' i0 P
附录 java8.com
) s* S. p! E9 n* b1 G) q5 m# `" j lA.1 安装IDA
' f, V& D' d8 e2 a: Z- J) j) jA.2 安装OllyDbg
& ^$ N' n) U4 D$ m3 |- h4 hA.3 安装WinDbg 7 R8 L/ \1 s _( w
A.4 安装Visual Studio 2010 5 @( G2 l$ v5 z! Q, `) g
A.5 安装Metasploit & y2 y# P# w+ W
A.6 分析工具
/ Q) `% V4 _+ yStirling / BZ Editor
& m' r5 @" F" ]* M2 g$ aProcess Monitor $ v& }; v9 `7 S/ p
Process Explorer
- |) ~" ?" q( ~# ~ N$ wSysinternals工具
) k& i* _; S M4 o, ~6 K* X兔耳旋风 - [* {0 a0 i0 s" j" e8 }/ p7 r8 s
参考文献 2 f/ A. s3 O- B& P& Z
后记
^( i, l' F) K2 v% j
7 F n5 k, ?. V0 ]百度云盘下载地址(完全免费-绝无套路):
& j; n& p! B; l/ u |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|