逆向工程权威指南 上下册+逆向工程实战+有趣的二进制 软件安全与逆向分析+逆向工程核心原理

逆向工程权威指南 上下册+逆向工程实战+有趣的二进制 软件安全与逆向分析+逆向工程核心原理 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • 逆向工程
  • 软件安全
  • 二进制分析
  • 漏洞挖掘
  • 调试
  • 汇编
  • Windows
  • Linux
  • 恶意软件分析
  • 软件破解
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 蓝墨水图书专营店
出版社: 人民邮电出版社
ISBN:9787115434456
商品编码:11847307011

具体描述

逆向工程核心原理

有趣的二进制 软件安全与逆向分析

逆向工程实战

逆向工程权威指南 上册

9787115350183 9787115403995 

9787115388933 9787115434456


逆向工程权威指南 上册



逆向工程是一种分析目标系统的过程,旨在于识别系统的各组件以及组件间关系,以便于通过其它形式、或在较高的抽象层次上,重建系统的表征。 本书专注于软件的逆向工程,是写给初学者的一本quanwei指南。全书共分为12个部分,共102章,涉及X86/X64、ARM/ARM-64、MIPS、Java/JVM等重要话题,详细解析了Oracle RDBMS、Itanium、软件狗、LD_PRELOAD、栈溢出、ELF、Win32 PE文件格式、x86-64(第、critical sections、syscalls、线程本地存储TLS、地址无关代码(PIC)、以配置文件为导向的优化、C++ STL、OpenMP、SHE等众多技术话题,堪称是逆向工程技术百科全书。除了详细讲解,本书来给出了很多习题来帮助读者巩固所学的知识,附录部分给出了习题的解答。 本书适合对逆向工程技术、操作系统底层技术、程序分析技术感兴趣的读者阅读,也适合专业的程序开发人员参考。 

DIYI部分 编码模式 
第1章 CPU简介 3 
1.1 指令集的作用 3 
第2章 ZUI简函数 5 
2.1 x86 5 
2.2 ARM 5 
2.3 MIPS 5 
2.3.1 MIPS指令集与寄存器名称 6 
第3章 Hello,world! 7 
3.1 x86 7 
3.1.1 MSVC 7 
3.1.2 GCC 9 
3.1.3 GCC:AT&T;语体 9 
3.2 x86-64 11 
3.2.1 MSVC-x86-64 11 
3.2.2 GCC-x86-64 12 
3.3 GCC的其他特性 12 
3.4 ARM 13 
3.4.1 Keil 6/2013——未启用优化功能的ARM模式 14 
3.4.2 Thumb模式下、未开启优化选项的Keil 15 
3.4.3 ARM模式下、开启优化选项的Xcode 15 
3.4.4 Thumb-2模式下、开启优化选项的Xcode(LLVM) 16 
3.4.5 ARM64 18 
3.5 MIPS 19 
3.5.1 全局指针Global pointer 19 
3.5.2 Optimizing GCC 19 
3.5.3 Non-optimizing GCC 21 
3.5.4 栈帧 23 
3.5.5 Optimizing GCC: GDB的分析方法 23 
3.6 总结 24 
3.7 练习 24 
3.7.1 题目1 24 
3.7.2 题目2 24 
第4章 函数序言和函数尾声 25 
4.1 递归调用 25 
第5章 栈 26 
5.1 为什么栈会逆增长? 26 
5.2 栈的用途 27 
5.2.1 保存函数结束时的返回地址 27 
5.2.2 参数传递 28 
5.2.3 存储局部变量 29 
5.2.4 x86:alloca()函数 29 
5.2.5 (Windows)SEH结构化 
异常处理 31 
5.2.6 缓冲区溢出保护 31 
5.3 典型的栈的内存存储格式 31 
5.4 栈的噪音 31 
5.5 练习题 34 
5.5.1 题目1 34 
5.5.2 题目2 34 
第6章 printf()函数与参数调用 36 
6.1 x86 36 
6.1.1 x86:传递3个参数 36 
6.1.2 x64:传递9个参数 41 
6.2 ARM 44 
6.2.1 ARM模式下传递3个参数 44 
6.2.2 ARM模式下传递8个参数 46 
6.3 MIPS 50 
6.3.1 传递3个参数 50 
6.3.2 传递9个参数 52 
6.4 总结 56 
6.5 其他 57 
第7章 scanf() 58 
7.1 演示案例 58 
7.1.1 指针简介 58 
7.1.2 x86 58 
7.1.3 MSVC+OllyDbg 60 
7.1.4 x64 62 
7.1.5 ARM 63 
7.1.6 MIPS 64 
7.2 全局变量 65 
7.2.1 MSVC:x86 66 
7.2.2 MSVC:x86+OllyDbg 67 
7.2.3 GCC:x86 68 
7.2.4 MSVC:x64 68 
7.2.5 ARM: Optimizing Keil 6/2013 
(Thumb模式) 69 
7.2.6 ARM64 70 
7.2.7 MIPS 70 
7.3 scanf()函数的状态监测 74 
7.3.1 MSVC:x86 74 
7.3.2 MSVC:x86:IDA 75 
7.3.3 MSVC:x86+OllyDbg 77 
7.3.4 MSVC:x86+Hiew 78 
7.3.5 MSVC:x64 79 
7.3.6 ARM 80 
7.3.7 MIPS 81 
7.3.8 练习题 82 
第8章 参数获取 83 
8.1 x86 83 
8.1.1 MSVC 83 
8.1.2 MSVC+OllyDbg 84 
8.1.3 GCC 84 
8.2 x64 85 
8.2.1 MSVC 85 
8.2.2 GCC 86 

逆向工程实战



本书是一本涵盖x86、x64 和ARM 操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和驱动程序、虚拟机保护技术等内容。作者通过大量真实案例和示例,提供了系统化的解决方案。
本书适合所有程序员和想要开始学习逆向工程的读者阅读。

第1 章 x86 与x641
11 寄存器组与数据类型1
12 指令集3
121 语法3
122 数据移动4
13 练习9
131 算术运算9
132 栈操作与函数调用11
14 练习14
15 系统机制21
151 地址转换21
152 中断与异常23
16 综合练习23
17 练习29
18 x64 30
181 寄存器组与数据类型30

有趣的二进制 软件安全与逆向分析




《有趣的二进制 软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit等安全工具。


第1章 通过逆向工程学习如何读懂二进制代码  1
1.1 先来实际体验一下软件分析吧  3
1.1.1 通过Process Monitor的日志来确认程序的行为  4
1.1.2 从注册表访问中能发现些什么  6
1.1.3 什么是逆向工程  9
专栏:逆向工程技术大赛  10
1.2 尝试静态分析  11
1.2.1 静态分析与动态分析  11
专栏:Stirling与BZ Editor的区别  12
1.2.2 用二进制编辑器查看文件内容  13
1.2.3 看不懂汇编语言也可以进行分析  14
1.2.4 在没有源代码的情况下搞清楚程序的行为  16
1.2.5 确认程序的源代码  18
1.3 尝试动态分析  20
1.3.1 设置Process Monitor的过滤规则  20
1.3.2 调试器是干什么用的  23
1.3.3 用OllyDbg洞察程序的详细逻辑  24
1.3.4 对反汇编代码进行分析  26
专栏:什么是寄存器  28
1.3.5 将分析结果与源代码进行比较  29
专栏:选择自己喜欢的调试器  30
1.4 学习·基础的汇编指令  32
1.4.1 没必要记住所有的汇编指令  32
1.4.2 汇编语言是如何实现条件分支的  33
1.4.3 参数存放在栈中  35
1.4.4 从汇编代码联想到C语言源代码  37
1.5 通过汇编指令洞察程序行为  40
1.5.1 给函数设置断点  40
1.5.2 反汇编并观察重要逻辑  42
专栏:学习编写汇编代码  47
第2章 在射击游戏中防止玩家作弊  51
2.1 解读内存转储  53
2.1.1 射击游戏的规则  53
2.1.2 修改4个字节就能得高分  54
2.1.3 获取内存转储  58
2.1.4 从进程异常终止瞬间的状态查找崩溃的原因  63
2.1.5 有效运用实时调试  66
2.1.6 通过转储文件寻找出错原因  68
专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行
分析吗  74
专栏:分析Java编写的应用程序  74
2.2 如何防止软件被别人分析  76
2.2.1 反调试技术  76
专栏:检测调试器的各种方法  77
2.2.2 通过代码混淆来防止分析  79
专栏:代码混淆的相关话题  80
2.2.3 将可执行文件进行压缩  81
2.2.4 将压缩过的可执行文件解压缩:解包  86
2.2.5 通过手动解包UPX来理解其工作原理  87
2.2.6 用硬件断点对ASPack进行解包  91
专栏:如何分析.NET编写的应用程序  95
第3章 利用软件的漏洞进行攻击  97
3.1 利用缓冲区溢出来执行任意代码  99
3.1.1 引发缓冲区溢出的示例程序  99
3.1.2 让普通用户用管理员权限运行程序  100
3.1.3 权限是如何被夺取的  102
3.1.4 栈是如何使用内存空间的  104
3.1.5 攻击者如何执行任意代码  107
3.1.6 用gdb 查看程序运行时的情况  110
3.1.7 攻击代码示例  113
3.1.8 生成可用作shellcode的机器语言代码  116
3.1.9 对0x00的改进  121
专栏:printf类函数的字符串格式化bug  125
3.2 防御攻击的技术  127
3.2.1 地址随机化:ASLR  127
3.2.2  除存放可执行代码的内存空间以外,对其余内存空间尽量
禁用执行权限:Exec-Shield  130
3.2.3  在编译时插入检测栈数据完整性的代码:StackGuard  131
3.3 绕开安全机制的技术  134
3.3.1 使用libc中的函数来进行攻击:Return-into-libc  134
3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP  136
专栏:计算机安全为什么会变成猫鼠游戏  137

逆向工程核心原理



《逆向工程核心原理》十分详尽地介绍了代码逆向分析的核心原理。作者在Ahnlab 研究所工作多年,书中不仅包括其以此经验为基础亲自编写的大量代码,还包含了逆向工程研究人员必须了解的各种技术和技巧。彻底理解并切实掌握逆向工程这门技术,就能在众多IT相关领域进行拓展运用,这本《逆向工程核心原理》就是通向逆向工程大门的捷径。
  想成为逆向工程研究员的读者或正在从事逆向开发工作的开发人员一定会通过《逆向工程核心原理》获得很大帮助。同时,想成为安全领域专家的人也可从《逆向工程核心原理》轻松起步。

,部分 代码逆向技术基础
第1章 关于逆向工程 2
1.1 逆向工程 2
1.2 代码逆向工程 2
1.2.1 逆向分析法 2
1.2.2 源代码、十六进制代码、汇编代码 4
1.2.3 “打补丁”与“破解” 5
1.3 代码逆向准备 5
1.3.1 目标 5
1.3.2 激情 6
1.3.3 谷歌 6
1.4 学习逆向分析技术的禁忌 6
1.4.1 贪心 6
1.4.2 急躁 7
1.5 逆向分析技术的乐趣 7

第2章 逆向分析Hello World!程序 8
2.1 Hello World!程序 8
2.2 调试HelloWorld.exe程序 9
2.2.1 调试目标 9
2.2.2 开始调试 9
2.2.3 入口点 10
2.2.4 跟踪40270C函数 10
2.2.5 跟踪40104F跳转语句 12
2.2.6 查找main()函数 12
2.3 进一步熟悉调试器 14
2.3.1 调试器指令 14
2.3.2 “大本营” 15
2.3.3 设置“大本营”的四种方法 15
2.4 快速查找指定代码的四种方法 17
2.4.1 代码执行法 18
2.4.2 字符串检索法 19
2.4.3 API检索法(1):在调用代码中设置断点 20
2.4.4 API检索法(2):在API代码中设置断点 21
2.5 使用“打补丁”方式修改“Hello World!”字符串 23
2.5.1 “打补丁” 23
2.5.2 修改字符串的两种方法 24
2.6 小结 28


剖析数字世界的奥秘:通往底层代码的深度探索之旅 在信息爆炸的时代,软件已经渗透到我们生活的方方面面,成为现代社会不可或缺的基石。然而,我们日常使用的应用程序、系统背后,隐藏着复杂的逻辑和精妙的设计。理解这些“黑箱”的运作机制,洞察其内在的精髓,不仅能满足求知欲,更是掌握核心技术、保障信息安全、乃至创新发展的关键。本书系,正是为你量身打造的深度探索之旅,它将带领你穿越层层代码迷雾,直抵数字世界的灵魂深处。 一、 颠覆性视角:从“如何使用”到“如何构建与洞察” 长期以来,我们习惯于扮演软件的使用者角色,享受其带来的便利。然而,真正的技术掌握,在于理解其“如何工作”乃至“如何被构建”。逆向工程,正是这样一门反其道而行之的学问。它并非简单的“破解”,而是一种严谨的科学分析方法,通过对已有的二进制程序进行反编译、反汇编、调试和分析,来揭示其内部结构、算法逻辑、设计思想,甚至隐藏的脆弱点。 本书系的核心价值,在于提供了一种颠覆性的学习视角。它鼓励你从“知其然而不知其所以然”的使用者,转变为“知其然且知其所以然”的洞察者。通过本书系的引导,你将不再满足于仅仅知道软件能做什么,而是能深入理解它之所以能这么做的原理,以及其背后蕴含的设计哲学。这种能力的提升,将极大地拓展你在软件开发、安全审计、漏洞挖掘、恶意代码分析等领域的视野和实操能力。 二、 全景式覆盖:从理论基石到实战演练 本书系以其全面性和系统性著称,它为不同层次的学习者提供了一条清晰的学习路径。 理论基石的夯实: “逆向工程核心原理”作为理论的基石,将带领你系统性地梳理逆向工程涉及的关键概念。从计算机体系结构(CPU、内存、寄存器等)的基础知识,到二进制文件的结构(ELF、PE等),再到指令集架构(x86、ARM等)的运作方式,每一个基础环节都将得到详尽的阐述。你将理解汇编语言如何成为连接高级语言和机器指令的桥梁,掌握栈帧、调用约定、数据类型转换等核心概念,并学会如何运用反汇编工具阅读和理解汇编代码。此外,对于常见的操作系统内核机制、进程管理、内存管理等,也将进行深入剖析,为后续的深入分析奠定坚实的基础。 进阶能力的塑造: “软件安全与逆向分析”则将理论与实践相结合,重点聚焦于软件安全领域中的逆向工程应用。你将学习如何运用静态分析和动态分析相结合的方法,来检测和分析软件中的潜在漏洞。静态分析部分,将教授如何利用反编译工具(如IDA Pro, Ghidra)将二进制代码还原成可读性更高的伪代码,识别关键函数、数据结构,并分析程序流程。动态分析部分,则会深入讲解调试器的使用,如OllyDbg, WinDbg,如何设置断点、单步跟踪、查看内存和寄存器状态,实时观察程序的执行过程,捕捉关键行为。同时,本书系还将覆盖常见的安全漏洞类型(如缓冲区溢出、格式化字符串漏洞、整数溢出等)及其在二进制程序中的表现形式,并演示如何通过逆向分析来发现和理解这些漏洞。 实战能力的锻造: “逆向工程实战”则将理论知识转化为直接的动手能力。本书系精选了一系列具有代表性的实战案例,涵盖了从简单的程序破解到复杂的恶意代码分析。每一个案例都将详尽地指导你如何运用前面所学的工具和技术,一步步地攻克难关。例如,如何分析一个简单的加密程序,找到加密算法和密钥;如何分析一个简单的加壳程序,还原其真实入口点;如何分析一个简单的外挂程序,理解其功能实现方式。通过这些实操,你将深刻体会到逆向工程的强大威力,并积累宝贵的实战经验。 趣味性与拓展: “有趣的二进制”则以一种更加轻松和启发性的方式,带领你领略二进制世界的奇妙之处。它可能通过一些趣味性的例子,如二维码的编码与解码,图像文件格式的解析,或者网络通信协议的分析,来展示二进制数据在日常生活中的应用,并引导你思考二进制的本质。这种“趣味性”的设计,旨在激发你的好奇心,让你在轻松愉快的氛围中,发现逆向工程的乐趣,从而更加主动地投入到深入的学习中。 权威性的奠基: “逆向工程权威指南(上册+下册)”构成了整个书系的权威核心。它如同一个庞大而精密的知识体系,从宏观到微观,层层深入。上册可能侧重于基础理论、原理和工具的使用,为读者打下坚实的根基。下册则会进一步拓展到更高级的主题,例如复杂的反调试技术、反反汇编技术、软件保护机制的分析、内存取证、以及在特定平台(如移动设备、嵌入式系统)上的逆向工程应用。本书系的权威性体现在其内容的深度、广度和准确性,它汇集了该领域顶尖的知识和经验,力求成为读者在逆向工程领域最可靠的参考。 三、 赋能未来:掌握数字世界的“内幕” 通过对本书系的系统学习,你将获得以下关键能力: 1. 代码洞察力: 能够深入理解任何软件的运行机制,无论其源代码是否公开。 2. 安全审计能力: 能够独立分析软件的安全性,发现潜在的漏洞和风险。 3. 恶意代码分析能力: 能够高效地分析病毒、木马等恶意软件的行为,理解其传播机制和攻击方式,为安全防护提供依据。 4. 软件漏洞挖掘能力: 能够主动寻找软件中的安全漏洞,为软件厂商提供修复建议,或者为安全研究做出贡献。 5. 创新与优化能力: 能够通过分析优秀的软件设计,学习其精妙之处,并将其应用到自己的开发实践中,进行软件优化或创新。 6. 跨平台技术视野: 能够将学到的逆向工程技术,灵活应用于不同的操作系统和硬件平台。 四、 谁适合阅读本书系? 本书系适合以下人群: 软件开发者: 希望更深入地理解软件运行原理,提升代码质量和安全性。 安全研究员/工程师: 需要掌握逆向工程技能,进行漏洞分析、恶意代码分析、渗透测试等工作。 计算机科学/网络安全专业的学生: 学习计算机底层原理,拓展技术视野,为未来职业发展打下坚实基础。 对软件底层技术充满好奇的技术爱好者: 希望揭开软件神秘面纱,探索数字世界的奥秘。 结语 逆向工程是一门既古老又充满活力的技术,它挑战着我们对软件的认知,也赋予我们超越使用者的力量。本书系,正是你开启这段深度探索之旅的最佳伙伴。它将用严谨的理论、详实的案例、以及启发性的引导,带你一步步成为数字世界的“解码者”和“洞察者”。准备好迎接挑战,深入代码的世界,去发现那些隐藏的逻辑、精妙的设计,以及无限的可能性吧!

用户评价

评分

说实话,我刚开始接触软件安全这个领域时,感觉就像是在一片迷雾中摸索,各种工具和概念层出不穷,让人无从下手。直到我翻开这套书的其中一本关于“实战”的部分,情况才有了质的改变。作者在讲解每一个案例时,都极其细致地展示了从环境搭建、初步分析到最终利用的完整过程,每一步的操作和背后的逻辑都被剖析得清清楚楚。我印象最深的是其中一个关于栈溢出的例子,作者不仅展示了如何构造恶意输入,还用图示清晰地画出了函数调用栈的变化,甚至连寄存器的值是如何一步步被修改的都标了出来。这种手把手的教学方式,让我真正体会到了“纸上得来终觉浅,绝知此事要躬行”的含义。读完那一章,我感觉自己仿佛真的参与了一次攻防演练,对于理论知识的理解也上升到了一个新的高度,不再是死记硬背,而是真正理解了其背后的运作机制。这种实践导向的编排,对于急需提升实战能力的同行来说,简直是及时雨。

评分

阅读体验上,我必须给一个大大的好评,因为它成功地在专业性和可读性之间找到了一个完美的平衡点。很多技术书籍的排版要么就是过于拥挤,要么就是图文分离严重,但这一套书在这方面做得非常优雅。代码示例的注释清晰明了,图示的质量也非常高,很多流程图和结构示意图的绘制水平达到了专业绘图的水准,极大地减轻了大脑在处理复杂信息时的负担。而且,书中的内容更新速度也体现了作者对这个领域的持续关注,并没有停留在几年前的过时技术上,而是融入了对现代编译器优化和新兴安全机制的探讨。对于一个希望长期在软件安全领域深耕的从业者而言,一套能够与时俱进、并且能提供扎实基础的参考资料是至关重要的。这套书无疑就是我书架上最希望被频繁翻阅的那一本。

评分

这套书的装帧和排版真的没话说,拿到手里就感觉沉甸甸的,翻开来看,那种纸张的质感和印刷的清晰度都让人觉得物有所值。我本来以为技术类的书都会比较枯燥,但这本书的作者似乎深谙如何把复杂的概念用生动有趣的方式讲出来。比如在讲解基础的汇编语言部分时,他们没有直接堆砌一堆指令,而是通过一个实际的例子,层层递进地引导读者理解CPU的工作机制,那种豁然开朗的感觉真是太棒了。而且,书中对不同架构的处理器都有所涉猎,这一点非常加分,因为在实际工作中,我们面对的可能不是单一平台,能够触类旁通,对未来的学习和工作都会有很大的帮助。我尤其欣赏作者在处理那些晦涩难懂的底层原理时,总能找到一个巧妙的切入点,让初学者也能轻松入门,而对于有一定基础的人来说,也能从中挖掘出新的见解。总的来说,这是一套非常适合想要系统学习底层技术,但又不想被枯燥教材劝退的读者的宝藏书籍。

评分

我通常对那种只谈理论不给实例的书籍敬而远之,但这一套书在这方面做得非常平衡。尤其是关于二进制文件格式和链接器原理的阐述,简直是教科书级别的典范。作者并没有放过那些看似枯燥的PE/ELF文件结构细节,反而将其视为理解程序执行流程的关键钥匙。他们详细解释了段表、节表、导入表和导出表是如何协同工作的,甚至还涉及到了内存映射文件的加载过程。最让我眼前一亮的是,作者通过分析一个最小的可执行文件是如何从磁盘加载到内存并开始运行的,将抽象的概念具象化了。这种对基础原理的深挖,使得我对后续学习更高阶的操作系统内核交互和调试技术打下了极其坚实的基础。可以说,这本书让我对“软件是如何启动起来的”这个问题有了前所未有的深入认识,这种对底层基础的尊重和细致入微的讲解,非常值得称赞。

评分

这套书给我的感觉是,它不仅仅是一本技术手册,更像是一本精心策划的思维训练营。在阅读过程中,我发现作者非常注重培养读者的“逆向思维”——即如何像程序一样去思考问题,如何从结果反推出过程。特别是关于代码混淆和反反编译技巧的那几章,处理得尤为精彩。他们没有简单地罗列出已知的几种混淆手段,而是深入分析了混淆背后的思想,教导我们如何去识别和对抗这些手段,这才是高手和普通分析师的区别所在。这种能力上的提升远比掌握几个特定工具的使用技巧要重要得多。书中还穿插了一些历史上的经典案例,用这些鲜活的例子来佐证当前的理论,使得整本书读起来充满了历史的厚重感和技术的魅力。很多我之前一直困惑不解的地方,在作者的层层剥开下,都变得清晰可见,这极大地增强了我面对复杂问题时的信心。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有