标签分类
当前位置:首页 > 行业软件及应用电子书 > 软件分析电子书网盘下载
有趣的二进制:软件安全与逆向分析 有趣的二进制:软件安全与逆向分析
ldwj2016

ldwj2016 提供上传

资源
48
粉丝
38
喜欢
120
评论
19

    有趣的二进制:软件安全与逆向分析 PDF 高清版

    软件分析电子书
    • 发布时间:

    给大家带来的一篇关于软件分析相关的电子书资源,介绍了关于二进制、软件安全、逆向分析方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小10.8 MB,爱甲健二编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.2,更多相关的学习资源可以参阅 行业软件及应用电子书、等栏目。

  • 有趣的二进制:软件安全与逆向分析 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1CpPXso_GkZNH705FV73SJg
  • 分享码:i637
  • 有趣的二进制:软件安全与逆向分析 PDF

    《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地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
    • 第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

    上一篇:Android开发秘籍  下一篇:量化投资:以R语言为工具

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    软件分析相关电子书
    学习笔记
    网友NO.898403

    详细介绍开源软件包和环境管理系统Anaconda的安装使用

    Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。 Anaconda 实际上是一个软件发行版,它附带了conda、Python和150多个科学包及其依赖项。其中,conda是一个开源的软件包管理系统和环境管理系统,和 virtualenv 功能差不多,可以在电脑上同时安装Python2和Python3。 安装: 试了下,不能使用pip安装,需要到 官网下载 ,然后安装。 conda使用 通过conda管理包 # 安装pandas$ conda install pandas# 更新pandas$ conda update pandas# 删除pandas$ conda remove pandas# 搜索$ conda search pandas 管理环境: # 创建py2的python2环境,自带pandas和numpy$ conda create -n py2 python=2 pandas numpy# 激活py2环境,通过python -V可以看到是python2.7$ source activate py2# 退出py2环境$ source deactivate# 创建py3的Python3环境$ conda create -n py3 python=3 pandas numpy# 激活py3环境$ source activate py3# py3环境中安装相关包$ conda install pandas 注意:在py3中安装的包,在py2中是看不到的,py2与py3的环境完全是隔离的。 Anaconda具有跨平台、包管理、环境管理的特点,因此很适合快速在新的机器上部署Python环境。 以上就是详细介绍开源软件包和环境管理系统Anaconda的安装使用的详细内容,更多请关注码农之家其它相……

    网友NO.258807

    python打开机密软件加密的excel

    python win32com 读取带密码的excel 之前用到的win32com读取带密码excel的相关内容,今天刚好准备整理下,突然发现方法又不灵了。 以下为错误示范 # 已知excel密码去除def del_password(filename, password): excel = DispatchEx(Excel.Application) # 启动excel excel.Visible = True # 可视化 excel.DisplayAlerts = False # 是否显示警告 wb = excel.Workbooks.Open(filename, Password=password) # 打开文件 这就神奇了,之前用着好好的呢?,没道理啊这么简单的打开,不就加个password参数?明明把密码参数给输入了,为什么还提示输入密码框? (再重新看看微软bb的官方介绍)https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/workbooks-open-method-excel,没毛病啊。 实在不行,找回以前写的。想起来有个问题,大家注意看不同,注意添加的几个参数。 (标红参数少一个不行,顺序没影响,但是这几个参数之间没有实在的联系啊,百思不得解。先mark下,有知道的大神指教下之前也遇到过类似的方法只写一个参数不行,如有类似情况试着把参数写全再进行操作) 暂时只得到一个结论:说明win32com读取的excel操作不是严格按照python的位置参数,不是可有可无的,而是严格匹配。 以下为正确 # 已知excel密码去除def del_password(filename, password): excel = DispatchEx(Excel.Application) # 启动excel excel.Visible = visible # 可视化 exc……

    网友NO.657034

    python编码用什么软件

    Python开发软件可根据其用途不同分为两种,一种是Python代码编辑器,一种是Python集成开发工具,两者的配合使用可以极大的提高Python开发人员的编程效率,以下是常用的几款Python代码编辑器和Python集成开发工具。 一、Python代码编辑器 1. Sublime Text Sublime Text是一款非常流行的代码编辑器,支持Python代码编辑,同时兼容所有平台,并且丰富的插件扩展了语法和编辑功能,迅捷小巧,具有良好的兼容性,很受编程人士的喜爱! 2. Vim Vim和Vi是一种模型编辑器,它将文本查看从文本编辑中分离,VIM在原始VI之上做了诸多改进,包括可扩展模型和就地代码构建,VIMScripts可用于各种Python开发任务! 3. Atom Atom被称为“21世纪可破解的文本编辑器”,可以兼容所有平台,拥有时尚的界面、文件系统浏览器和扩展插件市场,使用Electron构建,其运行时安装的扩展插件可支持Python语言! 4. GNU Emacs GNU Emacs是一款终身免费且兼容任何平台的代码编辑器,使用强大的Lisp编程语言进行定制,并为Python开发提供各种定制脚本,是一款可扩展、可定制、自动记录、实时显示的编辑器,一直萦绕在UNIX周围。 5. Visual Studio Code Visual Studio Code是一款兼容Linux、Mac OS X和Windows 平台的全功能代码编辑器,可扩展并且可以对几乎所有任务进行配置,对于Python的支持可以……

    网友NO.736383

    能够编译运行python的软件有哪些

    能够运行编译python的软件有哪些?这里罗列了9种常用的软件: 1、Vim Vim 可以说是 Python 最好的 IDE。Vim 是高级文本编辑器,旨在提供实际的 Unix 编辑器‘Vi’功能,支持更多更完善的特性集。Vim 不需要花费太多的学习时间,一旦你需要一个无缝的编程体验,那么就会把 Vim 集成到你的工作流中。 2、Eclipse with PyDev Eclipse 是非常流行的 IDE,而且已经有了很久的历史。Eclipse with Pydev 允许开发者创建有用和交互式的 Web 应用。PyDev 是 Eclipse 开发 Python 的 IDE,支持 Python,Jython和 IronPython 的开发。 3、QPython QPython是一个可以在安卓系统上运行Python脚本引擎,整合了Python解释器、Console、编辑器和SL4A库。 拥有它,在安卓设备上你照样可以玩转python。 4、Interactive Editor for Python IEP 是跨平台的 Python IDE,旨在提供简单高效的 Python 开发环境。包括两个重要的组件:编辑器和 Shell,并且提供插件工具集从各个方面来提高开发人员的效率。 5、QPython QPython是一个可以在安卓系统上运行Python脚本引擎,整合了Python解释器、Console、编辑器和SL4A库。 拥有它,在安卓设备上你照样可以玩转python。 6、PyCharm PyCharm 是 JetBrains 开发的 Python IDE。PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明