|
Java电子书:有趣的二进制 软件安全与逆向分析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com7 _- K( X9 _9 b4 t5 n
_5 Y1 r+ q7 v' R
. C6 C6 j0 a& B1 w% s# x3 J
编号:mudaima-P0360【Java吧 java8.com】
4 j& s8 ~. x; \$ b d3 |2 o: }2 r- W% D1 |6 a, N3 i
) P: \: ^0 Y m8 S! K( X5 S- @' }( t2 W3 x, W' R
Java电子书目录:第1章 通过逆向工程学习如何读懂二进制代码 " U0 g9 t9 v+ h/ \0 v; `
1.1 先来实际体验一下软件分析吧 ( P. I+ A+ P1 b) @+ @' R
1.1.1 通过Process Monitor的日志来确认程序的行为
. ?, t. O7 |4 q, l# @4 `1.1.2 从注册表访问中能发现些什么
5 d# H! O4 x; q8 ~8 i& Y1.1.3 什么是逆向工程 ( g7 r8 i4 _1 v4 ~9 H) Z
专栏:逆向工程技术大赛 " B \3 F4 V! u
1.2 尝试静态分析
; {( ^: q( ?4 A6 {8 }& n: F/ T1.2.1 静态分析与动态分析 / W' s q P- R" p' a0 A1 t
专栏:Stirling与BZ Editor的区别 + m% X% g, I. U3 Q4 N
1.2.2 用二进制编辑器查看文件内容 . P# M. j7 k4 T; W( h3 b' ]6 z
1.2.3 看不懂汇编语言也可以进行分析
1 e) x5 m# z, W% j; B( k1.2.4 在没有源代码的情况下搞清楚程序的行为 : R- b5 `0 Y/ V, s4 }7 B
1.2.5 确认程序的源代码
8 }3 a+ T0 _4 d* B R& C* U1.3 尝试动态分析
3 M$ Z# w: q2 B5 c* D# h8 ~7 `, m1.3.1 设置Process Monitor的过滤规则
0 M" x! a/ V/ S8 m$ L8 E1.3.2 调试器是干什么用的 ! v8 z* ]2 k/ F
1.3.3 用OllyDbg洞察程序的详细逻辑
. g% A3 `+ @6 \3 v/ b# ^& l2 P+ J$ K/ y1.3.4 对反汇编代码进行分析
- `# P: z ?! g专栏:什么是寄存器 $ G( t5 ~0 z* T% E5 W* H1 T$ u" k9 S- S
1.3.5 将分析结果与源代码进行比较
! f3 w4 T5 g+ I3 {6 V$ Q专栏:选择自己喜欢的调试器 3 H2 }# C, O, Y6 `
1.4 学习*基础的汇编指令 6 A" o& P! m+ W$ C1 Z
1.4.1 没必要记住所有的汇编指令
+ o8 M5 H- j$ y; y1 ?1.4.2 汇编语言是如何实现条件分支的 7 N' v" ~ C1 h- z6 Y( n! Z
1.4.3 参数存放在栈中 ) S& c9 m* I/ _+ G* m! |9 B
1.4.4 从汇编代码联想到C语言源代码 ; |3 l0 ~ d: \# B; Z
1.5 通过汇编指令洞察程序行为
4 K5 w/ N5 {3 k: i1.5.1 给函数设置断点 : w0 u8 j! M" J0 m: e- ?' A9 p
1.5.2 反汇编并观察重要逻辑 ( L1 M n6 f8 L# E( ], t
专栏:学习编写汇编代码
+ {7 H0 }* ~$ b第2章 在射击游戏中防止玩家作弊 : I$ W# e6 h3 i
2.1 解读内存转储 8 k/ P" {( k3 w" h8 a4 e4 D: N
2.1.1 射击游戏的规则 5 i/ C H- t3 F+ m; C6 [
2.1.2 修改4个字节就能得高分
. V( l. P% j7 }2.1.3 获取内存转储
: i: U7 a" d. f# i6 k) \6 {2 N$ l" m8 M0 u2.1.4 从进程异常终止瞬间的状态查找崩溃的原因 8 X5 f3 s; \9 m/ T
2.1.5 有效运用实时调试
5 X- K6 u, ?5 n+ d& t2.1.6 通过转储文件寻找出错原因 $ y6 }2 s! o1 t7 @
专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行6 w' B0 }: [' S) ]
分析吗
# M; E) ^$ C5 k, t8 g: }' [专栏:分析Java编写的应用程序
`, Q1 s5 A3 s+ E3 _4 C2.2 如何防止软件被别人分析
* f* C7 W0 N% p2.2.1 反调试技术 ) n9 S3 v/ F1 f* q
专栏:检测调试器的各种方法
9 E0 p H: @, @* g2.2.2 通过代码混淆来防止分析
- M4 U$ D1 K% C, \6 V+ N专栏:代码混淆的相关话题 & z0 b( u6 j0 x& |
2.2.3 将可执行文件进行压缩 O( z k- D/ B7 L& d! j2 |
2.2.4 将压缩过的可执行文件解压缩:解包
7 c1 m/ S7 S3 X) F3 z8 e2.2.5 通过手动解包UPX来理解其工作原理
: j7 H& B8 j% a g' c3 _2.2.6 用硬件断点对ASPack进行解包 ) R+ j/ J4 P6 t# x* M9 r$ r
专栏:如何分析.NET编写的应用程序
, V# I7 J0 o) E第3章 利用软件的漏洞进行攻击 4 [+ x' Z5 o: L9 v! `
3.1 利用缓冲区溢出来执行任意代码 : ~' L* h/ x- M5 A1 W& R; P
3.1.1 引发缓冲区溢出的示例程序 / y* T4 ?8 U+ P( K$ K$ S
3.1.2 让普通用户用管理员权限运行程序 V! ?& I+ j; ^2 s! T d* u. n) T
3.1.3 权限是如何被夺取的 % u$ s3 x X9 i$ k
3.1.4 栈是如何使用内存空间的
0 I: \& h/ U* w( T3 o( ?3.1.5 攻击者如何执行任意代码 # J- O" n" G" V, B) Q1 j
3.1.6 用gdb 查看程序运行时的情况
. h% x& ?1 q0 b0 O* v3.1.7 攻击代码示例
# p8 }* N2 g* E. {( V3.1.8 生成可用作shellcode的机器语言代码
: v* u* [% q6 l: B8 d4 Y3.1.9 对0x00的改进 % h' x! b0 Y j! [# f8 ]2 ~4 `( w
专栏:printf类函数的字符串格式化bug 9 {: z5 [: d7 E. ~
3.2 防御攻击的技术
! z0 W$ a, N; @* k; W, [9 h9 I; E3.2.1 地址随机化:ASLR ( y* u# k- P9 Q+ T% A: a; W
3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量
: _" N" q3 D0 l! p) L9 M 禁用执行权限:Exec-Shield . b! h" A0 r# N0 P
3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard ' x5 K! ~1 Y" t0 d7 a+ v& C
3.3 绕开安全机制的技术
6 o, X: b9 s2 y7 s3.3.1 使用libc中的函数来进行攻击:Return-into-libc
) l) J7 `9 n- e' a& a9 u- a3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP
/ r, U( k4 r# n1 u6 o+ B# u专栏:计算机安全为什么会变成猫鼠游戏
5 x: [+ b+ A2 _7 u. Q u9 G第4章 自由控制程序运行方式的编程技巧
# y" I0 {$ d( ]4.1 通过自制调试器来理解其原理
0 X. F& {2 F4 x9 R# v5 c1 r2 s8 F1 V4.1.1 亲手做一个简单的调试器,在实践中学习 3 ], g% A- j6 ^8 \& n
4.1.2 调试器到底是怎样工作的 2 ]0 ^/ l& q$ i
4.1.3 实现反汇编功能
# G2 a# s, D* {* z' P J4.1.4 运行改良版调试器
6 q# X2 l% D' g# F7 Y' Z0 i5 t" e5 R4.2 在其他进程中运行任意代码:代码注入
{! H3 }* |9 \2 Y( y$ G& c* Q4.2.1 向其他进程注入代码
H1 A7 _* Q0 m" h4.2.2 用SetWindowsHookEx劫持系统消息 8 f+ X/ S8 a) r: Q" ~' L; @ [9 H
4.2.3 将DLL路径配置到注册表的AppInit_DLLs项
7 h, N8 ^5 r& W$ U8 T, C! l# u4.2.4 通过CreateRemoteThread在其他进程中创建线程
" g$ K# _5 G. U. `* m, i4.2.5 注入函数
+ Y. B/ l$ \$ }$ i5 \3 E. a4.3 任意替换程序逻辑:API 钩子 6 S# N2 M- F/ r- |4 t# ~3 [. ?2 N& P
4.3.1 API 钩子的两种类型
% q+ X- H% C, S- k) Q4.3.2 用Detours实现一个简单的API 钩子 : y9 i" \% \) w N Z& [/ K
4.3.3 修改消息框的标题栏
) U+ _5 i6 [2 }专栏:DLL注入和API钩子是“黑客”技术的代表?
/ A/ Y% _+ C) s$ y第5章 使用工具探索更广阔的世界
J& I! ^# k) m5.1 用Metasploit Framework验证和调查漏洞 $ Y5 G( S* h" @
5.1.1 什么是Metasploit Framework 6 [5 J- e8 d; j6 v- T: M. j
5.1.2 安全漏洞的信息从何而来
8 }2 Y% {+ H5 W r+ v/ {4 c5.1.3 搭建用于测试漏洞的环境 : N# I# z2 c) w0 H, \: X/ V
5.1.4 利用漏洞进行攻击 - |6 I. ?0 S+ x' F0 P+ A
专栏:深入探索shellcode , n% w; e6 S8 I6 O) j; k$ [
5.1.5 一个ROP的实际例子 3 ~' S. ?% i3 H* h, } P t B
5.2 用EMET观察反ROP的机制
" f. f( t" s" X% T5.2.1 什么是EMET
) B4 x; @$ y. M5 C* `0 B) I" v5.2.2 Anti-ROP的设计获得了蓝帽奖 ' U; p2 C2 p$ y) j2 O- M8 {2 ~( @+ F
5.2.3 如何防止攻击 / l4 Q; k* t* S8 L% E0 B
5.2.4 搞清楚加载器的逻辑
/ h( w; Q( {9 E0 n- o1 N( c" P/ L5.2.5 DLL的程序逻辑 # O' K1 H) h) N
5.2.6 CALL-RETN检查
5 y" ]4 j% k) x5.2.7 如何防止误判 5 w$ F$ q( w- v8 E2 h
5.2.8 检查栈的合法性 % s5 Y1 j7 ^ K- N! _9 l. o
5.3 用REMnux 分析恶意软件
1 P: o/ U, z5 n8 n' \) }1 H- j5.3.1 什么是REMnux , R/ G3 C6 k* w; b" ^/ O
5.3.2 更新特征数据库 / }4 `8 c: J2 A% h d% U
5.3.3 扫描目录
5 c& A' C6 X: \5.4 用ClamAV检测恶意软件和漏洞攻击 1 S O. b J$ I% k
5.4.1 ClamAV的特征文件 $ u( l( s( e3 \+ l5 W/ G- U! ~
5.4.2 解压缩.cvd文件 ! C V& f7 j1 M, h- m% |( }/ t
5.4.3 被检测到的文件详细信息
2 O1 u9 _9 _: V& ^5.4.4 检测所使用的打包器以及疑似恶意软件的文件
5 q8 X* f% D- o2 U! M) z+ q5.5 用Zero Wine Tryouts分析恶意软件 ; S+ b: h( {# z4 y# x( p
5.5.1 REMnux与Zero Wine Tryouts的区别 Q5 m9 |$ C! D) U. J
5.5.2 运行机制 6 _5 B+ M6 E+ _% `3 W8 o
5.5.3 显示用户界面
/ j/ S3 N/ H4 [% d+ p1 Y. K' Z% t8 {5.5.4 确认分析报告 * t+ p3 u: l- p
专栏:尝试开发自己的工具
& B% H: [0 v) y: `! q0 }5.6 尽量减少人工分析:启发式技术
2 x ?4 G/ p# O' `9 W! m" X- t5.6.1 恶意软件应对极限的到来:平均每天60000个 3 O, b/ x3 i. Y' ^2 b
5.6.2 启发式技术革命 - u7 J4 Z9 o) R, d9 t
5.6.3 用两个恶意软件进行测试 ; ~2 Z, w/ L' ^: I; e n4 y
附录 java8.com0 g$ l7 y+ p( o1 O3 Y
A.1 安装IDA ) q. L/ n$ P/ k7 E. G% T
A.2 安装OllyDbg
. F# ^( ^8 ~, p& _" pA.3 安装WinDbg - j* S4 p: n5 [, u
A.4 安装Visual Studio 2010
* r9 }" |/ D, ^* E/ J6 jA.5 安装Metasploit 1 L/ K( K0 m8 S4 R
A.6 分析工具 5 s! B v3 [3 I
Stirling / BZ Editor 6 q! |. M" r$ ?0 q% M& i- i
Process Monitor
. x% Z- [# O( Z) | x: ?+ eProcess Explorer * b7 K" l R- O9 P
Sysinternals工具 " I( e& i# c0 J6 C8 R
兔耳旋风 . y# ?- p4 I2 |' T5 m0 Q0 f
参考文献
% M6 i7 I, j( Q: u: Y" ^# p% \: u& p后记
6 C. y2 s" m- ]1 z
( _0 q/ y& d" b& {+ ]" J1 T百度云盘下载地址(完全免费-绝无套路):* B6 ~9 o1 Q: e3 [4 n
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|