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

有趣的二进制 软件安全与逆向分析 pdf epub mobi txt 电子书 下载 2025

[日] 爱甲健二 著,周自恒 译
图书标签:
  • 二进制安全
  • 软件安全
  • 逆向工程
  • 漏洞分析
  • 调试
  • 汇编
  • x86
  • x64
  • 恶意软件
  • 安全攻防
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115403995
版次:1
商品编码:11789669
包装:平装
丛书名: 图灵程序设计丛书
开本:32开
出版时间:2015-10-01
用纸:胶版纸
页数:255
正文语种:中文

具体描述

编辑推荐

  打开黑箱,感受底层世界的乐趣
  1. 如何防止软件被别人分析?
  2. 如何知道软件在运行时都干了什么?
  3. 如何防止攻击者利用漏洞夺取系统权限?

内容简介

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

作者简介

  爱甲健二,曾就职于NetAgent株式会社,负责逆向工程、恶意软件分析、渗透测试等工作。2008年7月任董事。此后,在株式会社Fourteenforty技术研究所(现更名为株式会社FFRI)从事计算机安全技术研究和软件开发工作。
  曾参加Black Hat Japan 2008(日本)、HITCON 2011(中国台湾)等会议,并发表重大研究成果。著有《汇编语言教程》(アセンブリ言語の教科書)、《TCP/IP教程》(TCP/IPの教科書)等。

  周自恒,技术图书译者,IT、编程及自然科学爱好者,初中时曾获得信息学奥赛天津赛区一等奖,曾任某管理咨询公司战略技术总监。
  译有《图解CIO工作指南(第4版)》《大数据的冲击》《代码的未来》《30天自制操作系统》《图解密码技术》《家用游戏机简史》等。

目录

第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
第4章 自由控制程序运行方式的编程技巧  139
4.1 通过自制调试器来理解其原理  141
4.1.1 亲手做一个简单的调试器,在实践中学习  141
4.1.2 调试器到底是怎样工作的  141
4.1.3 实现反汇编功能  147
4.1.4 运行改良版调试器  153
4.2  在其他进程中运行任意代码:代码注入  155
4.2.1 向其他进程注入代码  155
4.2.2 用SetWindowsHookEx劫持系统消息  155
4.2.3 将DLL路径配置到注册表的AppInit_DLLs项  162
4.2.4  通过CreateRemoteThread在其他进程中创建线程  165
4.2.5 注入函数  170
4.3 任意替换程序逻辑:API 钩子  174
4.3.1 API 钩子的两种类型  174
4.3.2 用Detours实现一个简单的API 钩子  174
4.3.3 修改消息框的标题栏  177
专栏:DLL注入和API钩子是“黑客”技术的代表?  178
第5章 使用工具探索更广阔的世界  179
5.1  用Metasploit Framework验证和调查漏洞  181
5.1.1 什么是Metasploit Framework  181
5.1.2 安全漏洞的信息从何而来  181
5.1.3 搭建用于测试漏洞的环境  182
5.1.4 利用漏洞进行攻击  183
专栏:深入探索shellcode  184
5.1.5 一个ROP的实际例子  188
5.2 用EMET观察反ROP的机制  192
5.2.1 什么是EMET  192
5.2.2 Anti-ROP的设计获得了蓝帽奖  192
5.2.3 如何防止攻击  193
5.2.4 搞清楚加载器的逻辑  194
5.2.5 DLL的程序逻辑  196
5.2.6 CALL-RETN检查  197
5.2.7 如何防止误判  200
5.2.8 检查栈的合法性  201
5.3 用REMnux 分析恶意软件  205
5.3.1 什么是REMnux  205
5.3.2 更新特征数据库  206
5.3.3 扫描目录  206
5.4  用ClamAV检测恶意软件和漏洞攻击  208
5.4.1 ClamAV的特征文件  208
5.4.2 解压缩.cvd文件  209
5.4.3 被检测到的文件详细信息  210
5.4.4 检测所使用的打包器以及疑似恶意软件的文件  211
5.5  用Zero Wine Tryouts分析恶意软件  212
5.5.1 REMnux与Zero Wine Tryouts的区别  212
5.5.2 运行机制  212
5.5.3 显示用户界面  213
5.5.4 确认分析报告  214
专栏:尝试开发自己的工具  217
5.6 尽量减少人工分析:启发式技术  218
5.6.1 恶意软件应对极限的到来:平均每天60000个  218
5.6.2 启发式技术革命  218
5.6.3 用两个恶意软件进行测试  220
附录  223
A.1 安装IDA  224
A.2 安装OllyDbg   229
A.3 安装WinDbg  230
A.4 安装Visual Studio 2010  235
A.5 安装Metasploit  240
A.6 分析工具  248
Stirling / BZ Editor  248
Process Monitor  249
Process Explorer  250
Sysinternals工具  250
兔耳旋风  251
参考文献  252
后记  254

前言/序言

  这是一本讲“底层”知识的书,不过似乎现在大部分计算机用户都跟底层没多少缘分了。很多人说,写汇编语言的时候总得操心寄存器,写C 语言的时候总得操心内存,而如今到了Web 当道的时代,不但底层的事情完全用不着操心了,就连应用层的事情也有大把的框架来替你搞定。想想看,现在连大多数程序员都不怎么关心底层了,更不要说数量更多的一般用户了。当然,这其实是一件好事,这说明技术进步了,分工细化了,只需要一小部分人去研究底层,剩下大部分人都可以享受他们的伟大成果,把精力集中在距离解决实际问题更近的地方,这样才能解放出更多的生产力。
  话说回来,底层到底指的是什么呢?现代数字计算机自问世以来已经过了将近60 年,在这60 年中,计算机的制造技术、性能、外观等都发生了翻天覆地的变化,然而其基本原理和结构依然还是1946 年冯? 诺依曼大神所描绘的那一套。冯? 诺依曼结构的精髓在于,处理器按照顺序执行指令和操作数据,而无论指令还是数据,它们的本质并没有区别,都是一串二进制数字的序列。换句话说,“二进制”就是现代计算机的最底层。我们现在用计算机上网、聊天、看视频、玩游戏,根本不会去考虑二进制层面的问题,不过较早接触计算机的一代人,其实都曾经离底层很近,像这本书里面所讲的调试器、反汇编器、二进制编辑器、内存编辑器等,当初可都是必备的法宝,也给我们这一代人带来过很多乐趣。
  在MS-DOS 时代,很多人都用过一个叫debug 的命令,这就是一个非常典型的调试器。准确地说,debug 的功能已经超出了调试器的范畴,除了调试之外,它还能够进行汇编、反汇编、内存转储,甚至直接修改磁盘扇区,俨然是那个年代的一把“瑞士军刀”。我上初中的时候,学校上计算机课用的电脑在BIOS 里禁用了软驱,而且还设置了BIOS 密码,于是我运行debug,写几条汇编指令,调用系统中断强行抹掉CMOS 数据,重启之后显示CMOS 数据异常,于是BIOS 设置被恢复到默认状态,软驱也就可以用了,小伙伴们终于可以把游戏带来玩了。当然,学校老师后来还是找到我谈话,原因仅仅是因为我在信息学奥赛得过奖,他们觉得除了我以外不可能有别人干得出这种事了……
  很多资历比较老的PC 游戏玩家其实也都和二进制打过交道,比如说,大家应该还记得一个叫“整人专家FPE”的软件。如果你曾经用过“整人专家”,那么这本书第2 章中讲的那个修改游戏得分的桥段你一定是再熟悉不过了。除了修改内存中的数据,很多玩家应该也用二进制编辑器修改过游戏存档,比如当年的《金庸群侠传》《仙剑奇侠传》,改金钱道具能力值那还是初级技巧,还有一些高级技巧,比如改各种游戏中的flag,这样错过开启隐藏分支的条件也不怕不怕啦。此外,各种破解游戏激活策略的补丁也是通过调试和反汇编研究出来的,我也曾经用SoftICE 玩过一点逆向工程,找到判断是否注册激活的逻辑,然后用一个无条件跳转替换它,或者是跳过序列号的校验逻辑,不管输入什么序列号都能激活。
  精通二进制的人还懂得如何压榨出每一个比特的能量。说到这一点,不得不提鼎鼎大名的64k-intro 大赛。所谓64k-intro,就是指用一段程序来产生包含图像和声音的演示动画,而这段程序(可执行文件)的大小被限制为64KB(65536 字节)。想想看,用iPhone 随便拍一张照片就得差不多2MB 大小,相当于64KB 的32 倍,然而大神们却能在64KB 的空间里塞下长达十几分钟的3D 动画和音乐,着实令人惊叹不已。我第一次看到64k-intro 作品是在上初中的时候,当时某一期《大众软件》杂志对此做了介绍,光盘里还附带了相应的程序文件。当我在自己的电脑上亲自运行,看到美轮美奂的3D 动画时,瞬间就被二进制的奇妙感动了。
  二进制的乐趣不胜枚举,其实最大的乐趣莫过于“打开黑箱”所带来的那种抽丝剥茧的快感。夸张点说,这和物理学家们探求“大统一理论”,不断逼近宇宙终极规律的过程中所体验到的那种快感颇有异曲同工之妙。诚然,二进制的可能性是无穷无尽的,这本书所涉及的也只是其中很小的一方面,但正如作者在前言中所说的那样,希望大家能够借此体会到底层技术所特有的快乐。
  周自恒
  2015 年8 月于上海


《代码深潜:从底层逻辑到攻防之道》 一、 拨开迷雾,洞悉代码的灵魂 你是否曾对计算机程序的神奇运作感到好奇?那些看似简单的点击背后,隐藏着怎样的精密逻辑?《代码深潜》将带你踏上一段穿越代码层叠、直抵底层运作的探索之旅。我们不会止步于表面的功能演示,而是深入剖析程序是如何被构建,指令是如何被执行,数据又是如何流转的。 本书以一种引人入胜的方式,循序渐进地揭示计算机科学的基石。我们将从最基本的二进制世界开始,理解0与1如何构成万物的基础,并进一步探讨数字信号如何在电路中传递,构成计算机最原始的语言。你将学习到位数的概念、进制转换的原理,以及它们在存储和处理信息中的关键作用。这不仅仅是枯燥的理论,我们将通过生动形象的比喻和贴近实际的应用场景,让你直观地感受二进制的魅力。 接着,我们会将目光投向汇编语言,这是连接高级编程语言与机器码的桥梁。通过学习汇编,你将能窥见编译器在背后做了什么,高级语言的代码如何一步步转化为CPU能够理解的机器指令。我们将深入理解寄存器、指令集、内存寻址等核心概念,并学习如何阅读和理解简单的汇编代码。这部分内容将为你打开一扇全新的视角,让你不再仅仅是高级语言的使用者,而是能够理解代码“说”什么,以及它“如何说”。 二、 逻辑的艺术,程序的脉络 一旦掌握了底层的语言,我们便能更清晰地理解程序的逻辑是如何构建起来的。本书将深入探讨各种控制流结构,如条件判断、循环、函数调用等,分析它们在汇编层面的具体实现。你将学习到栈帧的运作机制,理解函数调用过程中参数传递、局部变量存储以及返回地址的维护过程。这将帮助你理解程序执行的生命周期,以及代码中的每一条指令是如何协同工作的。 我们还会关注数据结构与算法的底层表现。了解数组、链表、树等常见数据结构是如何在内存中组织的,以及它们在汇编层面对应的操作。这将帮助你更深刻地理解算法的效率差异,而不仅仅是停留在时间复杂度和空间复杂度的理论层面。通过对底层实现的理解,你将能更有效地进行程序优化,写出更高效、更健壮的代码。 此外,本书还将涉及操作系统内核的一些基本概念,例如进程与线程的创建与管理、内存空间的分配与回收。你将初步了解程序是如何在操作系统的调度下运行,以及操作系统如何管理和隔离不同的程序。这部分内容将为理解更复杂的系统行为打下坚实的基础。 三、 揭秘与防守,代码的双重奏 掌握了代码的底层运作原理,我们就拥有了洞察程序内部运作的能力,而这正是软件安全与逆向分析的起点。本书将引导你从一个全新的角度审视软件,不再仅仅是其功能的使用者,而是能够深入分析其内部机制的观察者。 我们将从软件的加载与运行流程入手,了解一个程序在启动时,操作系统会做哪些准备工作。你会学习到可执行文件格式(如ELF、PE)的结构,理解其中包含的代码段、数据段、符号表等关键信息。通过分析这些文件格式,你将能够初步识别程序的基本组成部分。 随后,我们将进入逆向分析的核心领域。你将学习如何使用专业的逆向工程工具,如反汇编器(IDA Pro、Ghidra)和调试器(GDB、WinDbg),来分析已有的程序。通过对反汇编代码的阅读和理解,你将能够还原出源代码的逻辑,即使没有原始的源代码。我们将学习如何识别关键的函数、分析程序的控制流,并追踪数据的流动路径。 本书将重点讲解一些常见的逆向分析技术,例如: 字符串分析: 寻找程序中隐藏的提示信息、错误消息或配置项。 函数识别与调用图构建: 了解程序中各个函数的功能以及它们之间的调用关系。 数据结构还原: 尝试重建程序中使用的各种数据结构。 算法分析: 识别和理解程序中实现的加密、压缩或其他关键算法。 在掌握了逆向分析的技术之后,我们自然会过渡到软件安全攻防的范畴。理解程序的内部弱点是发现漏洞的前提。我们将探讨一些常见的软件漏洞及其产生的原因,例如: 缓冲区溢出: 分析攻击者如何利用越界写入数据来改变程序执行流程。 格式化字符串漏洞: 了解攻击者如何利用不安全的字符串格式化函数来读取或写入内存。 整数溢出: 分析整数运算中可能出现的意外结果,以及它们如何被利用。 逻辑漏洞: 探索由于程序设计缺陷而导致的各种安全问题。 本书将通过真实的案例分析,让你了解这些漏洞是如何被发现和利用的。同时,我们也会探讨如何防范这些漏洞,学习编写更安全的程序。这包括安全编码实践、输入校验、内存安全技术等方面的内容。 四、 实践为王,实战出真知 理论学习固然重要,但《代码深潜》更注重实践能力的培养。本书包含大量的动手实验和挑战性任务,鼓励读者在实际操作中巩固所学知识。你将有机会: 编写简单的汇编程序: 亲身体验汇编语言的编写过程。 使用调试器跟踪程序执行: 观察程序在运行时的数据变化和指令执行。 对小型应用程序进行逆向分析: 尝试还原出一些简单程序的功能和逻辑。 分析一些公开的漏洞利用代码: 学习真实的攻击方式。 利用提供的工具和环境进行安全攻防演练: 在模拟环境中磨练你的技术。 我们将为你提供必要的工具和资源,帮助你顺利完成这些实践环节。通过一次次挑战,你将逐渐建立起对代码更深层次的理解,并培养出解决复杂问题的能力。 《代码深潜:从底层逻辑到攻防之道》,将为你提供一把钥匙,打开通往代码世界深处的门。无论你是怀揣好奇心的初学者,还是寻求技术突破的开发者,亦或是致力于网络安全的探索者,都能在这本书中找到属于你的精彩旅程。让我们一起,深入代码的海洋,探寻它的奥秘,掌握它的力量。

用户评价

评分

拿到这本书,我最先关注的是它的内容深度。虽然书名听起来很酷,但我不希望它只是停留在表面,讲一些浅显易懂的概念。我更希望它能深入到二进制的底层原理,比如不同的编码方式(ASCII、Unicode等)是如何实现的,它们之间有什么区别和联系。对于软件安全和逆向分析的部分,我期待能够看到一些关于内存布局、指令集、汇编语言的介绍,以及如何利用这些知识来理解程序的执行流程,甚至发现潜在的安全漏洞。 我个人对二进制的理解还停留在比较基础的阶段,所以这本书如果能从零开始,循序渐进地引导读者,那对我来说将是巨大的福音。我希望书中能够包含一些实际的代码案例,最好是能够提供配套的练习,让我能够边学边练,加深对概念的理解。如果能有一些关于常见二进制漏洞的剖析,比如缓冲区溢出、格式化字符串漏洞等,并给出相应的防御和检测方法,那就更完美了。这本书的书评,我也希望能在阅读之后,从更专业的角度来写,而不是仅仅停留于“好看”的层面。

评分

这本书吸引我的地方在于它独特的书名组合。我本身是一名对计算机科学非常感兴趣的学生,平时也经常接触到一些关于软件安全和逆向分析的知识,但总觉得在底层原理方面有些欠缺,尤其是对于二进制这种最根本的表示方式。我猜想这本书会从二进制的基础概念入手,比如位、字节、字的概念,以及不同进制之间的转换。然后,可能会逐渐深入到二进制在计算机系统中的具体应用,比如数据存储、指令编码等等。 对于软件安全和逆向分析这两个热门领域,我希望这本书能够提供一些实用的方法论。比如说,如何通过分析程序的二进制文件来理解其工作原理,如何识别和利用程序的弱点,以及如何保护自己的软件免受攻击。我尤其期待书中能够包含一些具体的案例分析,通过真实世界的例子来讲解抽象的概念,这样会更容易理解和记忆。总而言之,我希望这本书能够为我打开一扇通往更深层次技术世界的大门,让我对软件的安全和运行机制有更透彻的认识。

评分

这本书的命名,让我联想到了一些童年时期的科幻故事,那种探索未知、揭示隐藏秘密的感觉。我虽然不是专业的程序员,但对计算机的世界一直抱有浓厚的兴趣,尤其是那些看似神秘莫测的技术。所以我对“有趣的二进制”这个说法充满了期待,希望它能将抽象的二进制概念变得生动有趣,不再是枯燥的0和1的堆砌。也许书中会有一些生动的比喻,或者用一些有趣的实验来展示二进制的奇妙之处。 关于“软件安全与逆向分析”,我虽然不直接从事这个行业,但一直觉得这是一个非常酷的领域,充满了挑战和智慧。我希望这本书能让我对这个领域有一个初步的了解,比如什么是逆向工程,它在软件开发和安全方面有什么作用。我期待书中能够有一些入门级的讲解,让我们这些非专业人士也能看得懂,并且能够从中感受到这个领域的魅力。我希望能从这本书中获得一些关于如何“看懂”软件背后原理的启示,即使不能深入分析,也能有所启发。

评分

这本书的封面设计就极具吸引力,黑白为主色调,点缀着一些霓虹绿的二进制代码元素,瞬间就勾起了我对技术的好奇心。我一直对计算机底层运作的奥秘充满了兴趣,尤其是二进制这个最基础的语言,感觉掌握了它,就能解锁很多隐藏的秘密。虽然书名中提到了“软件安全与逆向分析”,但我更多是被“有趣的二进制”这个部分所吸引。我设想这本书会用一种非常生动有趣的方式来讲解二进制,可能不是枯燥的公式和理论堆砌,而是通过一些小实验、小故事,甚至是一些历史轶事,来展现二进制的魅力。 我特别期待书中能够有一些实际的操作演示。比如,如何将一段文字转换为二进制,然后再反过来解析。或者,通过一些简单的工具,让读者亲手尝试修改二进制文件中的某个数据,看看会产生什么样的效果。我希望作者能够像一位经验丰富的向导,带领我们一步一步地深入二进制的世界,让我们感受到从最基础的0和1中构建出复杂世界的奇妙。而且,书中如果能穿插一些关于二进制在历史上的重要作用,比如在早期计算机发展中的地位,或者在一些著名密码破解中的应用,那一定会让阅读体验更加丰富和深刻。

评分

这本《有趣的二进制 软件安全与逆向分析》的书名,让我眼前一亮。作为一个对计算机底层技术充满好奇的爱好者,我一直觉得二进制是理解一切的基础,但往往相关的学习资料都显得有些枯燥和晦涩。我非常希望这本书能够改变这种状况,用一种更加“有趣”的方式来呈现二进制,比如通过一些巧妙的比喻,或者一些引人入胜的案例,让我感受到从0和1的世界里构建出我们所熟知的数字世界的奇妙。 对于“软件安全与逆向分析”这部分,我虽然不直接从事相关工作,但一直对这个领域充满了敬畏和好奇。我希望这本书能够以一种通俗易懂的方式,介绍这个领域的入门知识,比如什么是逆向工程,它有哪些基本的工具和方法。我也期待书中能够有一些实际的例子,展示如何通过分析二进制代码来理解程序的行为,或者发现潜在的安全问题。总之,我希望这本书能够成为我了解计算机底层运作和安全知识的绝佳起点,让我能够拨开迷雾,窥见技术的奥秘。

评分

等着看完追评吧

评分

没有破损,很好的一本书

评分

不错的书本,还没有看。且好评。

评分

很有启发,入门必看。

评分

作为逆向入门级的书看看还是不错的,大牛可以跳过了

评分

讲的不深,做入门又不好

评分

评分

不错的书,可以好好看看了。

评分

要好好仔细读读

相关图书

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

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