18回答

0收藏

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

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

Java电子书:有趣的二进制 软件安全与逆向分析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
* B. D, }9 }$ c
2 a3 G7 a, P* e  {5 q5 N" \0 K: U; p

: I8 S4 d- @9 y7 E
编号:mudaima-P0360【Java吧 java8.com】
/ X/ Z: z6 z2 h1 V+ B  m

7 T- k. N5 l' z( p4 K0 \5 N1 M+ |2 `2 Y* c

4 |5 h- r: f/ k4 A5 a" {# ?0 IJava电子书目录:
第1章 通过逆向工程学习如何读懂二进制代码  $ `1 P; Z0 G( T/ B$ E( s
1.1 先来实际体验一下软件分析吧  + |7 P6 N7 ^6 k. E7 C' j
1.1.1 通过Process Monitor的日志来确认程序的行为  
" e% {( u9 Q& C1 k+ i" ^1.1.2 从注册表访问中能发现些什么  
3 L$ X+ d( ?* C- {: R1.1.3 什么是逆向工程  2 A0 t. _: t9 E# g: m
专栏:逆向工程技术大赛  
: u# P: ~+ h# Y& W2 }0 W1.2 尝试静态分析  : a! h- M9 d2 P  b+ [+ ?
1.2.1 静态分析与动态分析  + O0 ?5 [/ t6 n" f5 K. {
专栏:Stirling与BZ Editor的区别  
- b7 i* i5 g* h) c: ]  ]8 G1.2.2 用二进制编辑器查看文件内容  
% g" n$ x* `; F6 Y& ^1.2.3 看不懂汇编语言也可以进行分析  ' k" W+ W, k+ \0 [. \
1.2.4 在没有源代码的情况下搞清楚程序的行为    k* {/ H& u$ K+ s& O) ^1 h
1.2.5 确认程序的源代码  
+ X, o9 t2 n5 T1 M9 f" |1.3 尝试动态分析  
8 j% h) E3 w0 I" X1.3.1 设置Process Monitor的过滤规则  
0 _( e( H  l8 ^; t2 j1.3.2 调试器是干什么用的  
$ @: q/ g  M6 ~4 o& b6 f1.3.3 用OllyDbg洞察程序的详细逻辑  / o" Y# x; L4 ]5 g' Y+ B' h" K/ U
1.3.4 对反汇编代码进行分析  
, U# y8 h& `% K专栏:什么是寄存器  
& F  i+ m4 O( L- G5 T1.3.5 将分析结果与源代码进行比较  % |. r' s, a- t1 `' Z
专栏:选择自己喜欢的调试器  
5 L( n# O: l. ]! B2 ]  D; r1.4 学习*基础的汇编指令  , `6 R7 ~9 i# a6 B* ]
1.4.1 没必要记住所有的汇编指令  
9 {# }& j. l6 g% S. l+ f5 L1.4.2 汇编语言是如何实现条件分支的  
3 Z! r) M% [* a* }' }! r1.4.3 参数存放在栈中  
5 @$ ~/ D) Q% n5 T4 T) I* d: k1.4.4 从汇编代码联想到C语言源代码  * b* c1 Q' F/ M" E' |# _
1.5 通过汇编指令洞察程序行为  
/ E. g) L( _4 X1.5.1 给函数设置断点    t3 }1 t' u  C6 H; |4 {7 A
1.5.2 反汇编并观察重要逻辑  
% |. e+ {- k4 s专栏:学习编写汇编代码  
: s9 \; v* X+ o- u6 A7 q8 I. e第2章 在射击游戏中防止玩家作弊  ; u8 K8 s3 Z% ]$ A% @7 e+ I
2.1 解读内存转储  # I' u3 T( S. J! y- g8 V
2.1.1 射击游戏的规则  
- [- b; s* ]! T% D1 z% X+ ^. f2.1.2 修改4个字节就能得高分  
" c6 F- B5 O8 G6 t0 B! n) V8 \7 ^2.1.3 获取内存转储  4 {7 A3 `# a) j" z1 }1 M
2.1.4 从进程异常终止瞬间的状态查找崩溃的原因  $ X# f4 ?& I7 _9 |
2.1.5 有效运用实时调试  
+ z7 S- o: \2 P* b1 z, s$ X" s' V2.1.6 通过转储文件寻找出错原因  0 j2 m5 l5 s* R! i' q" e  Z: a0 K
专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行
; Y8 I. l0 B3 s) t6 e! z分析吗  , I4 v) n/ Q, I- Y0 u: S
专栏:分析Java编写的应用程序  
# R2 D5 o- T# N! @3 w. ~" W$ i/ S1 I% I2.2 如何防止软件被别人分析  : V  l1 _0 {1 T
2.2.1 反调试技术  
' w7 T* I2 \2 Z$ l专栏:检测调试器的各种方法  5 g, k' `" [: W* @0 g. d0 o$ c
2.2.2 通过代码混淆来防止分析  " J3 ]( u" f2 V1 z6 x" n, t: G  f
专栏:代码混淆的相关话题  $ w$ B  m. V" g. s1 Q
2.2.3 将可执行文件进行压缩  5 V* ^/ O3 i/ z' e6 ~
2.2.4 将压缩过的可执行文件解压缩:解包  % v# x4 q; @% L5 W
2.2.5 通过手动解包UPX来理解其工作原理  
, P& g) H! B/ W% J- a& z+ m2.2.6 用硬件断点对ASPack进行解包  
9 H! B. p+ _6 O" {- @# `专栏:如何分析.NET编写的应用程序  " A0 y7 ~/ ]! ?' i3 s
第3章 利用软件的漏洞进行攻击  
2 x" o! d4 ?1 t3.1 利用缓冲区溢出来执行任意代码  
4 p* E6 v4 Y) E: \3 g3.1.1 引发缓冲区溢出的示例程序  
& f" J- {/ V# d. L* f: O8 V3.1.2 让普通用户用管理员权限运行程序  ' m/ V: s% ?) \8 x. L4 G# M
3.1.3 权限是如何被夺取的  
0 v3 t' z, j' Q. a2 s3.1.4 栈是如何使用内存空间的  
* G0 _: H2 y- K1 `4 `3.1.5 攻击者如何执行任意代码  
* |$ x  o/ B; N* h3.1.6 用gdb 查看程序运行时的情况  , B8 o/ ~+ s- d/ y
3.1.7 攻击代码示例  ! M: L5 X3 g# f- c
3.1.8 生成可用作shellcode的机器语言代码  
" X/ X" w4 a3 v) U; \+ T( H2 n& R3.1.9 对0x00的改进  0 U6 Y* A7 O. j, G) g
专栏:printf类函数的字符串格式化bug  
! U5 C- l2 m; Y- l3.2 防御攻击的技术  + U" M9 f/ x$ ^1 e; P, B0 ^
3.2.1 地址随机化:ASLR  
7 p" j0 a! D- \3.2.2  除存放可执行代码的内存空间以外,对其余内存空间尽量7 h8 o" F; I; h
    禁用执行权限:Exec-Shield  - D5 E$ }( z/ O  r+ X$ C! v3 a
3.2.3  在编译时插入检测栈数据完整性的代码:StackGuard  ! q. J4 p# n2 j* t, T# i
3.3 绕开安全机制的技术  0 m9 e$ ~/ r( L% y* X* x2 t2 D
3.3.1 使用libc中的函数来进行攻击:Return-into-libc  3 m" I; |8 m) G8 R5 R4 R' q6 d
3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP  : f2 [9 |  D! D+ M$ R/ x8 j
专栏:计算机安全为什么会变成猫鼠游戏  ! A- c: P0 C; S$ d, h6 v
第4章 自由控制程序运行方式的编程技巧  
; {: ?! b( h8 ?1 v$ A4.1 通过自制调试器来理解其原理  
) }; }1 @) s, ?6 v/ ]. D! z4.1.1 亲手做一个简单的调试器,在实践中学习  + E* ~4 a! V. K2 a
4.1.2 调试器到底是怎样工作的  $ i: a: h4 S  g  @1 |- B
4.1.3 实现反汇编功能  
2 H6 y& F. Y2 V8 y# x2 x4.1.4 运行改良版调试器  
/ e) j# L. v2 d; X4.2  在其他进程中运行任意代码:代码注入  
/ K8 B% H) x; s$ i8 ?6 ]4.2.1 向其他进程注入代码  
5 p# H$ y4 E$ m4.2.2 用SetWindowsHookEx劫持系统消息  
5 ~/ f4 g* p1 s; W$ {% D0 j4.2.3 将DLL路径配置到注册表的AppInit_DLLs项  
* ^" j+ w; d% {7 g, ?; N4.2.4  通过CreateRemoteThread在其他进程中创建线程  
. z2 o2 ]/ Q" E3 E% H4.2.5 注入函数  6 f; D2 ?- \0 K! _- v
4.3 任意替换程序逻辑:API 钩子  
9 t+ o  V. m+ s' \4.3.1 API 钩子的两种类型  8 y, j+ C0 u5 s
4.3.2 用Detours实现一个简单的API 钩子  * p- K9 o2 l& ?$ v: y" a
4.3.3 修改消息框的标题栏  # y7 Q+ f% @" |. G7 Z# H. y  x
专栏:DLL注入和API钩子是“黑客”技术的代表?  
) {2 _* p+ T  a1 S第5章 使用工具探索更广阔的世界  ( M) }$ r' [- |# ^3 y7 R3 [4 @& n( d
5.1  用Metasploit Framework验证和调查漏洞  5 A- i8 p0 [1 a- i6 T
5.1.1 什么是Metasploit Framework  5 m% d6 F/ m+ S) Z0 p8 x7 W5 j
5.1.2 安全漏洞的信息从何而来  0 q, W2 e' T. j
5.1.3 搭建用于测试漏洞的环境  + r, ^/ E' {- p$ R
5.1.4 利用漏洞进行攻击  
0 x& B% a, V* L3 h# _/ B; g- l专栏:深入探索shellcode  
  y2 [$ g1 S: F5.1.5 一个ROP的实际例子  
" r# |* E3 m9 E- ^4 ]5.2 用EMET观察反ROP的机制  $ {9 p. {! X( {% j& ~* A9 s4 o# Y
5.2.1 什么是EMET  
+ F+ F7 H1 D: f- {9 U/ b* N5.2.2 Anti-ROP的设计获得了蓝帽奖  
# P& [- c* Z0 Y. F( p5.2.3 如何防止攻击  
# |3 H; I' e4 j6 C/ H: a7 ~5.2.4 搞清楚加载器的逻辑  
7 d( j( Q/ e8 r( d! `' H5.2.5 DLL的程序逻辑  5 o& P: y2 G& ^+ k: W9 i, x4 }
5.2.6 CALL-RETN检查  # n0 ^1 Q2 s( M* S( n! r2 p: ^
5.2.7 如何防止误判  5 p. A# Z7 S7 p6 H9 G2 q: }
5.2.8 检查栈的合法性  
2 ~+ m9 m0 f1 {6 s) w& V5.3 用REMnux 分析恶意软件  
( _: C0 c/ H# q$ t$ Q6 Q5.3.1 什么是REMnux  9 |! u2 Y+ [& ]% K) f
5.3.2 更新特征数据库  
; v9 P" t3 F- p& }" n, _$ X$ ~' {5.3.3 扫描目录  
  t& `) Q; w+ H- w5.4  用ClamAV检测恶意软件和漏洞攻击  
! b+ j& B% t( _- ]: \, S$ ?5.4.1 ClamAV的特征文件  / d1 Z8 F6 s: b, A; ^
5.4.2 解压缩.cvd文件  # J- V$ {! |1 E
5.4.3 被检测到的文件详细信息  5 m4 o' V3 K( H
5.4.4 检测所使用的打包器以及疑似恶意软件的文件  
- t$ M) @, r, I% f: d" l0 `2 M7 p5.5  用Zero Wine Tryouts分析恶意软件  
9 i+ A! U; i1 G4 S: a, e. j6 V5.5.1 REMnux与Zero Wine Tryouts的区别    o% S2 d( g5 Z4 s5 T% N
5.5.2 运行机制  
1 Q- W. I7 {1 w  \- e5.5.3 显示用户界面  / j7 [- c% k: E& s2 s1 H
5.5.4 确认分析报告  ' R$ ~: |7 [( l
专栏:尝试开发自己的工具  0 v9 F& g% P) ~' d
5.6 尽量减少人工分析:启发式技术  
" t9 ?' A; Z  O8 ~5.6.1 恶意软件应对极限的到来:平均每天60000个  
1 V, r% F# I4 L5.6.2 启发式技术革命  
& u2 C- u" A6 T# \. V* w; p0 L) O  `5.6.3 用两个恶意软件进行测试  * `3 S4 u( L  C+ ~; |$ N  r6 }
附录  java8.com/ A9 U* i& S& d4 E/ q. S. p0 ?
A.1 安装IDA  1 x, h3 U9 x( {5 [3 N0 V
A.2 安装OllyDbg   
. g* D6 x) |' M6 E) ?; [A.3 安装WinDbg  
' W% H: r0 j+ p: s2 ^, U6 E9 KA.4 安装Visual Studio 2010  " q' H) U3 s. b6 [
A.5 安装Metasploit  
% X. q1 y- D3 b, S* a! K, o. }! [A.6 分析工具  
2 Z. D6 w. ]3 T( c% Q3 g% V3 uStirling / BZ Editor  
, x. Y: K. L+ r  C, g. kProcess Monitor  
* c" w$ b& F( d9 U7 B2 Z; n" u0 C& m2 BProcess Explorer  
4 C; f# e( J  P9 D4 {& n" b8 ESysinternals工具  2 Y- B9 F9 S$ c6 x/ q) [
兔耳旋风  $ H, L  {0 O9 x2 x1 X
参考文献  + l  a. V3 e. r) e* n
后记
& R2 ^. c/ `9 H: C' O0 c7 _3 R+ h

. p- j; _1 i  Z) `- u+ Z, P3 H4 O
百度云盘下载地址(完全免费-绝无套路):
游客,如果您要查看本帖隐藏内容请回复
; u+ d& G7 h! l, g0 J

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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 | 显示全部楼层

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

本版积分规则