|
Java电子书:有趣的二进制 软件安全与逆向分析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com$ M3 w @2 r$ r( o
* S8 T% {% [; m p
3 |( w6 }; t! N0 q4 K O, v/ B编号:mudaima-P0360【Java吧 java8.com】. @! h" b8 A4 F5 s1 V* i7 S! Z- Y
1 g& {6 C3 y+ o3 `3 `* z1 p3 u: T
0 u3 M g1 ] h" _
5 b) f. j# D- g. t1 z& d* g
Java电子书目录:第1章 通过逆向工程学习如何读懂二进制代码 8 ]. _" v4 w5 k
1.1 先来实际体验一下软件分析吧 6 u. f, A5 }# `6 g4 A
1.1.1 通过Process Monitor的日志来确认程序的行为 9 {- f& b) S8 v6 C( ~
1.1.2 从注册表访问中能发现些什么
3 K, X4 ? k7 t2 Q/ w# C1.1.3 什么是逆向工程 5 V2 p; ~! A6 m$ |( e0 W9 G
专栏:逆向工程技术大赛
_; @( p* b/ a1 y1.2 尝试静态分析
4 G" y' f6 M5 }1 u: S1.2.1 静态分析与动态分析
8 X/ |3 Z: \, y2 j. ?1 ]% J专栏:Stirling与BZ Editor的区别 ( z. @4 ?# I" T
1.2.2 用二进制编辑器查看文件内容
3 E. S4 c$ c9 z5 Z7 E2 I1.2.3 看不懂汇编语言也可以进行分析 4 g& h$ j; N7 i5 ]! ^# i+ h
1.2.4 在没有源代码的情况下搞清楚程序的行为
1 D d7 _) \) I* x2 {* L1.2.5 确认程序的源代码
' c+ G3 t# [8 a' y9 g0 ~1.3 尝试动态分析 6 T: l4 D. x) g" t6 R
1.3.1 设置Process Monitor的过滤规则 4 l5 `# K/ e5 X! X! P3 y
1.3.2 调试器是干什么用的 : q. s' I$ g8 J% m! h0 @% i
1.3.3 用OllyDbg洞察程序的详细逻辑 / {/ ]' |: c4 y9 [4 a; K) Q% M A- q
1.3.4 对反汇编代码进行分析 9 |# ^, r/ p; g6 ~
专栏:什么是寄存器
2 I+ X" O6 c {! E. R F' S1.3.5 将分析结果与源代码进行比较 7 `0 A% }! {3 m5 k& Z& A
专栏:选择自己喜欢的调试器 # E) g, c1 j, f: a( D7 |4 e
1.4 学习*基础的汇编指令 9 j* e- g d% u, d/ ~2 }
1.4.1 没必要记住所有的汇编指令 8 P; \# U b( u0 O6 U
1.4.2 汇编语言是如何实现条件分支的
% k1 s( N: B6 A f7 _: I# e8 ~1.4.3 参数存放在栈中
. l$ x$ c# W0 i2 m/ I2 R1.4.4 从汇编代码联想到C语言源代码 ; f* g3 m% a5 B3 Q
1.5 通过汇编指令洞察程序行为
1 B* C& ?0 |* v1.5.1 给函数设置断点 0 y; m2 G5 F5 l& ^1 X
1.5.2 反汇编并观察重要逻辑
+ m. G( Z; x% G6 ^$ k8 m/ q+ T专栏:学习编写汇编代码 ! M: h) u* g# M! K/ l6 _
第2章 在射击游戏中防止玩家作弊
( C W. F/ K/ I. c$ a2.1 解读内存转储 4 M" O1 l4 D5 _% p+ z$ J" k5 z9 e
2.1.1 射击游戏的规则 & b5 C6 P: {3 b `" q
2.1.2 修改4个字节就能得高分
' y8 O h \6 F" }1 p: T, f+ n2.1.3 获取内存转储
, u. n, ] H" ~* A2.1.4 从进程异常终止瞬间的状态查找崩溃的原因 " d2 u) o" A" x9 c! R
2.1.5 有效运用实时调试 4 u2 f0 o" e& a. _. W7 D+ \8 C
2.1.6 通过转储文件寻找出错原因
6 ^. c: G8 v: Q* V7 ?7 E专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行5 c3 c4 u/ ^* `4 r3 K& S, L0 ?
分析吗
! z$ O1 o! q& Q$ ~2 D. Q专栏:分析Java编写的应用程序 : i7 _( p5 r. t. d/ @- O' @
2.2 如何防止软件被别人分析 & {5 v" z/ ~4 c1 q/ D7 u W
2.2.1 反调试技术 + I9 [$ u* r5 V. m
专栏:检测调试器的各种方法 $ ^- @, w7 w4 o# j/ J9 G: X
2.2.2 通过代码混淆来防止分析 7 U8 n- C+ S; Q1 n2 X Q
专栏:代码混淆的相关话题
6 s3 {- S# s- n( a* t8 j( z2.2.3 将可执行文件进行压缩
! d1 r c$ ?5 I- O; H2.2.4 将压缩过的可执行文件解压缩:解包
1 |5 v( q' q: B& x+ y/ ]2.2.5 通过手动解包UPX来理解其工作原理 / f T; P6 r* v* ]# X2 V
2.2.6 用硬件断点对ASPack进行解包
9 x3 C+ b7 R* j- K0 d- g5 |/ q专栏:如何分析.NET编写的应用程序
$ M. T+ l/ m* u+ r第3章 利用软件的漏洞进行攻击 3 L# {4 g% }& [! ^
3.1 利用缓冲区溢出来执行任意代码 ; J+ L; m; N$ C9 h# r. b7 h k
3.1.1 引发缓冲区溢出的示例程序 ) C6 R7 u. _6 {4 {; \+ z" f
3.1.2 让普通用户用管理员权限运行程序 3 l/ @; p5 o( \ u' J
3.1.3 权限是如何被夺取的
: s( F; H7 A: n8 f: X, ^3.1.4 栈是如何使用内存空间的 8 h& l( ^# S3 x# M
3.1.5 攻击者如何执行任意代码 0 ]1 e3 N4 I/ o8 l6 ~
3.1.6 用gdb 查看程序运行时的情况
% z% c& c' e1 q6 W0 H; V3.1.7 攻击代码示例
, b$ g' J m& p- |6 W) x3.1.8 生成可用作shellcode的机器语言代码 7 m D! i3 p7 j( m2 X9 R( O
3.1.9 对0x00的改进
" F( O$ D. B' Y' I! F7 x7 h专栏:printf类函数的字符串格式化bug 0 i) z( X1 {3 ?: j2 D
3.2 防御攻击的技术
( w _3 v v; t q( h- T. u3.2.1 地址随机化:ASLR
& b/ u& f+ v) n3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量3 x* `3 j7 V# |& ^2 F. ~! K7 o* V
禁用执行权限:Exec-Shield - G3 H& G5 q( r, S7 W
3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard
F1 }9 {* e" Z0 K0 X7 h3.3 绕开安全机制的技术 & w! A1 f9 x+ ~3 e6 m* h3 H3 l% d
3.3.1 使用libc中的函数来进行攻击:Return-into-libc , F( p# i. K, m: s. m9 S
3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP $ D3 a$ n" `; D7 h
专栏:计算机安全为什么会变成猫鼠游戏 , V4 b/ |# \: V0 c0 R6 x: s, U
第4章 自由控制程序运行方式的编程技巧 ~ [7 O; l; D3 s6 L0 k% `6 b
4.1 通过自制调试器来理解其原理 : `+ Y4 ~0 P! s* U$ A
4.1.1 亲手做一个简单的调试器,在实践中学习 4 m4 M) ^7 K6 r% G- G6 t- f
4.1.2 调试器到底是怎样工作的 + ?$ R b- F# O8 H( o3 _! G4 Q
4.1.3 实现反汇编功能 K: P; P4 y R
4.1.4 运行改良版调试器 - l0 {3 S$ G2 m5 T9 X* }
4.2 在其他进程中运行任意代码:代码注入 , J" V7 q ]1 h2 N/ t/ D: l0 k
4.2.1 向其他进程注入代码
0 Y7 F6 {, e$ u( w0 x/ t# T5 l8 M4.2.2 用SetWindowsHookEx劫持系统消息 9 Y1 O, I$ W& A
4.2.3 将DLL路径配置到注册表的AppInit_DLLs项 ) D/ @5 X6 A% z+ h1 j
4.2.4 通过CreateRemoteThread在其他进程中创建线程
/ c) Z! ^% y. U$ R2 h3 U }4.2.5 注入函数 % \; l! u+ F& q. b" Q
4.3 任意替换程序逻辑:API 钩子
5 w! S u& {' |( e' k& b4.3.1 API 钩子的两种类型 , @7 |, `2 w: I! i' {
4.3.2 用Detours实现一个简单的API 钩子 + Q$ m* e* S. j2 d: e+ b! J
4.3.3 修改消息框的标题栏
/ p2 e! h7 z/ b! o- r' a) A专栏:DLL注入和API钩子是“黑客”技术的代表?
3 k$ q" g+ D/ J& l1 p第5章 使用工具探索更广阔的世界 9 f) V5 s& [) E1 X, c
5.1 用Metasploit Framework验证和调查漏洞 : V. {+ C- l# h9 h+ `
5.1.1 什么是Metasploit Framework , B- w& F# j q' x- [
5.1.2 安全漏洞的信息从何而来 * h) F9 K' d7 S) B. c) g
5.1.3 搭建用于测试漏洞的环境 0 k) v- Z2 u2 c' }, d
5.1.4 利用漏洞进行攻击 ( \* R- [3 M& Y" _% C
专栏:深入探索shellcode ; X- M5 w7 E: j1 m9 D, T( ^# F# i
5.1.5 一个ROP的实际例子 ; A c$ u2 e" J5 R' }6 E' C3 l6 g; v# y
5.2 用EMET观察反ROP的机制
. A8 G) {. A/ R4 R. K* D3 v2 a" T5.2.1 什么是EMET
5 a9 L7 C2 e5 I3 q# q: P5.2.2 Anti-ROP的设计获得了蓝帽奖 / \7 H% [0 o" p- V3 E* i8 t7 e1 M ~
5.2.3 如何防止攻击
0 [3 T i$ P" x! W( A/ q5.2.4 搞清楚加载器的逻辑 " o. v) `5 `$ m/ i4 p( l- ?
5.2.5 DLL的程序逻辑 7 A! }& Q# _1 y' Z4 Z0 l2 F
5.2.6 CALL-RETN检查 0 \3 u- E+ {1 |2 v8 P. z
5.2.7 如何防止误判 9 ~+ V- F0 z, Z6 V ] |0 e) V
5.2.8 检查栈的合法性
' l7 H# A4 Y# N6 s4 ^' o/ l5.3 用REMnux 分析恶意软件
7 k* h, T# K) l5.3.1 什么是REMnux
: v' O( B* h) {8 l/ i1 Q& n, d5.3.2 更新特征数据库 & ~) J1 ~8 O) _- G$ f
5.3.3 扫描目录
, z: \0 `& R" B5.4 用ClamAV检测恶意软件和漏洞攻击
' G* a( y/ b+ Y7 k q5.4.1 ClamAV的特征文件 ; l" d3 h( }4 m4 q- v
5.4.2 解压缩.cvd文件 & m- o( j+ k# [% G1 F0 A
5.4.3 被检测到的文件详细信息 # m7 v3 p$ o8 K3 H
5.4.4 检测所使用的打包器以及疑似恶意软件的文件 1 O( Y* D' m) D
5.5 用Zero Wine Tryouts分析恶意软件
( [; u% v6 s6 j& X c5.5.1 REMnux与Zero Wine Tryouts的区别 3 G# S) b x+ ^* S3 G( l# S; o- @- ~
5.5.2 运行机制
6 N0 ]) a' O+ w! ], r7 E$ i! u5.5.3 显示用户界面
3 g/ u9 F3 ~1 m* ]) m4 s5.5.4 确认分析报告 , ^; r' V% C1 G9 m9 W8 F: D: s- }
专栏:尝试开发自己的工具
( e. R9 C+ k6 |. g; o* v5.6 尽量减少人工分析:启发式技术
% A( V3 p8 E" \ H1 I( \1 ^5.6.1 恶意软件应对极限的到来:平均每天60000个
0 L* `2 y% ~; M6 i5.6.2 启发式技术革命 ( I# B" y# A" N7 M7 z7 g# a" R
5.6.3 用两个恶意软件进行测试 $ E8 d& w# z# y# l3 Y" z9 X3 v
附录 java8.com P- w5 n. ~7 {8 {! o% B
A.1 安装IDA ( |. a0 W3 O4 x2 d
A.2 安装OllyDbg
) U# a& W6 g' W- u. E2 ]0 V" K: eA.3 安装WinDbg 9 j* n9 s' t- K: N( w# V2 M8 a& K
A.4 安装Visual Studio 2010
* t) C! I. l( }. b2 ]A.5 安装Metasploit
4 g5 w- Y" h6 w+ m5 ~- h' aA.6 分析工具 $ X5 V; @/ `3 L( V s; u/ H; `7 I
Stirling / BZ Editor
5 Q- D1 H( Y+ vProcess Monitor
4 j4 M% Y/ v1 f* z* vProcess Explorer + w H6 g. L' u# H6 s3 [- \
Sysinternals工具
5 G2 V3 s+ w; q2 L) D) p# d: {. X+ Y; k$ \兔耳旋风 ( `1 ?3 N$ I& ^) i+ t) y
参考文献
' v# I% p9 {& s6 N% E8 |后记
( Z) d2 h* p' J. O( \5 G! W6 L. b+ V. m/ ? C S1 m! I
百度云盘下载地址(完全免费-绝无套路):
4 \0 h5 \, D8 C3 g |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|