|
Java电子书:有趣的二进制 软件安全与逆向分析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
5 h5 o: ?9 t1 [) j- p5 Y7 v( K, h
& U! ?) Z; Y$ b7 t! p
编号:mudaima-P0360【Java吧 java8.com】
# h' z! |; G' M9 m$ D9 \$ M' w2 V" M! ^ s
* y( Z- S( d X
( r8 `) E- A/ b) ZJava电子书目录:第1章 通过逆向工程学习如何读懂二进制代码 $ ~- A# u: f% a% F! ^- S
1.1 先来实际体验一下软件分析吧
3 {: {- N5 T/ \" j1.1.1 通过Process Monitor的日志来确认程序的行为
5 \, v% @! H/ t0 g1.1.2 从注册表访问中能发现些什么 7 N; C6 m( M* B& z2 @
1.1.3 什么是逆向工程
3 h. B5 [1 v% l! P O8 M" S) y8 N专栏:逆向工程技术大赛
( l7 j3 `+ r. l9 w1 k* t1.2 尝试静态分析 " P1 X. D- K4 j/ U$ T% `# i
1.2.1 静态分析与动态分析
: o% a; p5 C- X) [- Y专栏:Stirling与BZ Editor的区别
# u, g$ l1 E: \; U% L3 }1.2.2 用二进制编辑器查看文件内容 7 G2 V g8 _6 M& a
1.2.3 看不懂汇编语言也可以进行分析 ; z5 p& w" _3 G) v+ Z$ r# n7 e4 V E
1.2.4 在没有源代码的情况下搞清楚程序的行为 . G! }4 |: z1 b/ p4 \+ e$ m
1.2.5 确认程序的源代码 $ n$ J: c& C+ G! }- V" k$ m: z
1.3 尝试动态分析 4 @4 ~+ e' a( }! Q
1.3.1 设置Process Monitor的过滤规则
8 V# a; C$ f( s" a. _1.3.2 调试器是干什么用的 + _1 L8 n( V4 V
1.3.3 用OllyDbg洞察程序的详细逻辑
- x j5 F: G8 R- r, X7 w" ~/ d1.3.4 对反汇编代码进行分析 ' R5 X( ^. d+ r% L
专栏:什么是寄存器 * T4 X, r# i1 j! w; l0 o7 ~" m
1.3.5 将分析结果与源代码进行比较
/ z6 Y% r9 v: D( w* l专栏:选择自己喜欢的调试器 : n: U* z0 O( ~: Q
1.4 学习*基础的汇编指令 % e# _% i' \* a: |
1.4.1 没必要记住所有的汇编指令 2 r8 N; q. I: q( n! r
1.4.2 汇编语言是如何实现条件分支的 * P# D O1 ^1 @1 R3 s
1.4.3 参数存放在栈中 : c! E4 P3 q4 _$ @' Z
1.4.4 从汇编代码联想到C语言源代码
9 f6 c+ y- A i" B7 a" D$ }1.5 通过汇编指令洞察程序行为 7 I- y5 Q8 q; X4 d5 s% v
1.5.1 给函数设置断点 & s& Q' n# x1 a
1.5.2 反汇编并观察重要逻辑 * ~* A6 Q, G0 c! c( a
专栏:学习编写汇编代码
8 J! S; T- H G6 \3 g3 ^7 v第2章 在射击游戏中防止玩家作弊 8 K- i' ?" |& _4 V
2.1 解读内存转储 4 H+ |# i; Z& d% t" l9 N+ o
2.1.1 射击游戏的规则 6 T1 k- g% w8 h' @2 C
2.1.2 修改4个字节就能得高分
: r4 B9 X8 }9 R. f4 f; L& ?9 P$ r2.1.3 获取内存转储 - ~/ c) H0 ]/ E7 N
2.1.4 从进程异常终止瞬间的状态查找崩溃的原因 4 \" Y2 N( B0 K4 Y6 G, g
2.1.5 有效运用实时调试 1 F( U! h) h5 l4 A1 T* R
2.1.6 通过转储文件寻找出错原因
$ U. N0 g* j* d; l* N n+ i专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行5 a: A, Q' B- `! V, y: V" l% j, {' I
分析吗
5 I! m# `7 j& J) m: x7 [专栏:分析Java编写的应用程序 ' L! w7 V) X/ E
2.2 如何防止软件被别人分析 , v0 b8 g4 Z, g8 i$ r1 Z# K
2.2.1 反调试技术 ) _% |! k" h- P7 ^; z4 a& M' F! q* _
专栏:检测调试器的各种方法
" @! J+ c! Q `: g2.2.2 通过代码混淆来防止分析 ! x" S; l! J9 Y3 i1 o- _
专栏:代码混淆的相关话题
0 A& X/ m/ l- y. a O6 W2.2.3 将可执行文件进行压缩
4 Z2 R) R3 b! d; N: G% k m2.2.4 将压缩过的可执行文件解压缩:解包 7 ? x* M% M& V* c5 t7 N
2.2.5 通过手动解包UPX来理解其工作原理 / E0 l' z- Q- B; g# Z; }! \& J0 ]0 c
2.2.6 用硬件断点对ASPack进行解包 6 t1 M# o! H' U% I# }( \
专栏:如何分析.NET编写的应用程序 - s p3 ~7 r$ J. c% |9 k6 q
第3章 利用软件的漏洞进行攻击 * T, W! E. _! x: f/ H. ?7 I' O
3.1 利用缓冲区溢出来执行任意代码 / b* {9 f+ |/ ]9 P% `1 {
3.1.1 引发缓冲区溢出的示例程序
- ?& a7 O/ @' n! a3.1.2 让普通用户用管理员权限运行程序 c2 u7 i, D; @! U, ]
3.1.3 权限是如何被夺取的 . w2 l2 r# W* ]: q7 ]
3.1.4 栈是如何使用内存空间的
: h c4 h* X" p1 X5 o- |4 C8 A3.1.5 攻击者如何执行任意代码
2 L" O! l/ y" V, ^1 `) J3.1.6 用gdb 查看程序运行时的情况 . {/ v, L, g9 T' i$ I% |
3.1.7 攻击代码示例 4 x- |) i4 q3 R
3.1.8 生成可用作shellcode的机器语言代码
, f) |( ^" { j/ D% f2 S& c3.1.9 对0x00的改进
% w* d! s/ w4 G6 v4 z" ?专栏:printf类函数的字符串格式化bug 1 ` C# {8 A5 Y2 ?
3.2 防御攻击的技术 : v& |1 U2 J- M" w4 a2 }/ _: F" p
3.2.1 地址随机化:ASLR + E) K7 W3 T) Q) U6 G
3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量
" H) W& D6 b& i, E [ 禁用执行权限:Exec-Shield & C F! a4 h" F. i
3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard / X! N9 ], c/ U' p0 ^6 c7 {8 w6 s
3.3 绕开安全机制的技术
- s" _& E( p9 p; Y- x3.3.1 使用libc中的函数来进行攻击:Return-into-libc 2 ]1 ~ d" u! v- p7 K, L( s8 ]
3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP
8 z" z6 J+ z+ {, D4 ]6 ~专栏:计算机安全为什么会变成猫鼠游戏
% U0 J( n. O& F9 r' R- p1 T第4章 自由控制程序运行方式的编程技巧
4 I4 f9 N# ^4 k2 K$ S4.1 通过自制调试器来理解其原理 1 I+ O' }7 v7 n9 U# [: E! V7 Y
4.1.1 亲手做一个简单的调试器,在实践中学习
! B7 r1 s, @; u6 Y. N4.1.2 调试器到底是怎样工作的 - c6 ^0 c+ A3 E# {+ a* W
4.1.3 实现反汇编功能
% Y2 P- @( |# O, s; D n+ g4.1.4 运行改良版调试器
) E/ c4 O9 Y2 \4.2 在其他进程中运行任意代码:代码注入 9 f: i+ k2 t, W( s2 q" X$ \! f9 r
4.2.1 向其他进程注入代码
. i& j# x/ ~8 x( I( O* G4.2.2 用SetWindowsHookEx劫持系统消息 / [) c0 G& w6 |
4.2.3 将DLL路径配置到注册表的AppInit_DLLs项
. Z8 x7 m/ O. u. R4.2.4 通过CreateRemoteThread在其他进程中创建线程
' ?# K7 f$ _) c2 L9 Q2 T3 d- D4.2.5 注入函数
5 @0 F/ V* j2 }- `3 l4.3 任意替换程序逻辑:API 钩子 " ~1 l; N' c1 r- x n4 Q0 s
4.3.1 API 钩子的两种类型
- |/ `6 L6 i5 [) X0 w2 u! Q4.3.2 用Detours实现一个简单的API 钩子 - ~; Y! ]" \; p; t
4.3.3 修改消息框的标题栏 y* R9 Y$ Y- A5 s
专栏:DLL注入和API钩子是“黑客”技术的代表?
7 W' ?( E: o4 @3 Z- J. A, g第5章 使用工具探索更广阔的世界 3 |/ W. ]: q& I. n; P+ s0 f1 W
5.1 用Metasploit Framework验证和调查漏洞
9 v4 ]5 u& ?6 o0 `6 {# _: D5.1.1 什么是Metasploit Framework
/ \4 `4 y) i9 T: h0 M* s! M5.1.2 安全漏洞的信息从何而来
# v1 |% H# b# { J5.1.3 搭建用于测试漏洞的环境
5 G7 {& ?- e( ^9 k4 Q" D5.1.4 利用漏洞进行攻击 ( e8 s+ H( |3 J; Y: a0 A
专栏:深入探索shellcode
( T/ s2 @. E# k1 ?; b$ N4 ^8 u5.1.5 一个ROP的实际例子
. y. p* m i6 \# M& `/ R5.2 用EMET观察反ROP的机制 8 u# i$ f, A: H2 K: [! A
5.2.1 什么是EMET
5 V b: `% R5 \; [2 ?5.2.2 Anti-ROP的设计获得了蓝帽奖
- G7 G( l$ F/ E4 r* o @5.2.3 如何防止攻击 A$ q9 j% R6 z3 T) @
5.2.4 搞清楚加载器的逻辑
) T2 i) I+ }7 y5.2.5 DLL的程序逻辑 3 `( t k# _& z5 E) G
5.2.6 CALL-RETN检查
. m* h1 n( y1 g# G5.2.7 如何防止误判
' [+ u; |% c5 Y6 G$ U, e0 C5.2.8 检查栈的合法性
2 l/ X* k5 k) d" B3 \% A( g5.3 用REMnux 分析恶意软件 8 h. P* t% d; \* m! [* {: [- I
5.3.1 什么是REMnux
& y' D/ Q6 v9 t2 {/ i5.3.2 更新特征数据库
' t W* q7 i0 s# C6 C, {5.3.3 扫描目录
5 A% O; m. {2 b% N5.4 用ClamAV检测恶意软件和漏洞攻击 + P7 ^2 ]; Y+ S& J5 ^4 Z2 e; F* h
5.4.1 ClamAV的特征文件
" [9 k" d' S0 M. T6 c5.4.2 解压缩.cvd文件 : D7 \( E4 P5 l- e2 c4 c( c
5.4.3 被检测到的文件详细信息
$ {+ b- O$ X& h5.4.4 检测所使用的打包器以及疑似恶意软件的文件 * }( `! ]1 D' C( Y7 H# h& y
5.5 用Zero Wine Tryouts分析恶意软件 - j% `: N+ j7 A! I0 a
5.5.1 REMnux与Zero Wine Tryouts的区别 8 {- N. i! D5 o+ z) u- W" v: }
5.5.2 运行机制
. L; X ^$ E& S+ w Z5.5.3 显示用户界面
( d! |5 S2 Y# I' q8 j5.5.4 确认分析报告 ' m0 y# m( P& E
专栏:尝试开发自己的工具
4 c1 |& L! n Z, K5.6 尽量减少人工分析:启发式技术
# F3 u! y, h. Q9 o; n6 _8 ?5.6.1 恶意软件应对极限的到来:平均每天60000个
0 b6 N9 c" {' b" _/ m/ z" g O5.6.2 启发式技术革命
- ?' h ^* y& V# X2 a5.6.3 用两个恶意软件进行测试 + b" @! V6 {4 H6 u6 o& z% @0 p
附录 java8.com5 m7 J3 R, A4 O; Z$ c* i# m
A.1 安装IDA
1 O5 I( a& p3 u" k% [A.2 安装OllyDbg
6 }) b) G, o) \! V6 vA.3 安装WinDbg
" v Z) o8 @. AA.4 安装Visual Studio 2010
0 O. r2 X7 u7 n Q n9 i# fA.5 安装Metasploit
- {* O. u* v8 V# @ Z% \A.6 分析工具 ( ~7 y' b- v8 [% U
Stirling / BZ Editor ; y5 U$ K5 r/ x; {* g) \
Process Monitor ( J. E0 g8 }3 }) r% z! F( b
Process Explorer ) Z- X0 l# J+ j2 c8 i! Y
Sysinternals工具 ( Y) N( M; E* D' I& n: n
兔耳旋风
! A7 v: q8 z2 A4 k1 j* I参考文献
: w; K) D& ]1 p# }" R后记 % K8 r' u; M+ X+ U: x8 N
2 p0 f0 W5 {6 Z. ~4 u百度云盘下载地址(完全免费-绝无套路):: Z/ _5 R! u+ V/ H' y
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|