18回答

0收藏

有趣的二进制 软件安全与逆向分析 PDF 电子书

电子书 电子书 2397 人阅读 | 18 人回复 | 2023-09-01

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
关注下面的标签,发现更多相似文章
分享到:

回答|共 18 个

马克思的故事书

发表于 2023-9-22 14:17:04 | 显示全部楼层

免费下载的网站 头一次遇到 不错

这是个有特点的名字

发表于 2023-9-23 20:58:13 | 显示全部楼层

免费资源 真的无套路

无畏不惧

发表于 2023-9-23 22:18:29 | 显示全部楼层

资料免费 给力

李新私号

发表于 2023-9-24 21:42:38 | 显示全部楼层

我来白漂了 多谢

梦里常有桂花香

发表于 2023-9-25 14:35:08 | 显示全部楼层

资料免费 给力

大官人肖恩

发表于 2023-9-29 09:17:26 | 显示全部楼层

免费资源 真的无套路

方方方方方方

发表于 2023-9-29 14:22:39 | 显示全部楼层

白漂来了

爱是个误会

发表于 2023-10-1 10:21:39 | 显示全部楼层

资源很新 好好好

得失心

发表于 2023-10-6 11:25:46 | 显示全部楼层

资料免费 给力
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则