Python灰帽子——黑客与逆向工程师的Python编程之道
内容简介
  《Python灰帽子:黑客与逆向工程师的Python编程之道》是由知名安全机构Immunity Inc的资深黑帽Justin Seitz先生主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍。老牌黑客,同时也是Immunity Inc的创始人兼首席技术执行官(CTO)Dave Aitel为本书担任了技术编辑一职。本书的绝大部分篇幅着眼于黑客技术领域中的两大经久不衰的话题:逆向工程与漏洞挖掘,并向读者呈现了几乎每个逆向工程师或安全研究人员在日常工作中所面临的各种场景,其中包括:如何设计与构建自己的调试工具,如何自动化实现烦琐的逆向分析任务,如何设计与构建自己的fuzzing工具,如何利用fuzzing测试来找出存在于软件产品中的安全漏洞,一些小技巧诸如钩子与注入技术的应用,以及对一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介绍。作者借助于如今黑客社区中备受青睐的编程语言Python读者构建出精悍的脚本程序来一一应对上述这些问题。出现在本书中的相当一部分Python代码实例借鉴或直接来源于一些优秀的开源安全项目,诸如Pedram Amini的Paimei,由此读者可以领略到安全研究者们是如何将黑客艺术与工程技术优雅融合来解决那些棘手问题的。
目录
第1章 搭建开发环境 
1.1 操作系统要求 
1.2 获取和安装Python 2.5 
1.2.1 在Windows下安装Python 
1.2.2 在Linux下安装Python 
1.3 安装Eclipse和PyDev 
1.3.1 黑客挚友:ctype库 
1.3.2 使用动态链接库 
1.3.3 构建C数据类型 
1.3.4 按引用传参 
1.3.5 定义结构体和联合体 
第2章 调试器原理和设计 
2.1 通用寄存器 
2.2 栈 
2.3 调试事件 
2.4 断点 
2.4.1 软断点 
2.4.2 硬件断点 
2.4.3 内存断点 
第3章 构建自己的Windows调试器 
3.1 Debugee,敢问你在何处 
3.2 获取寄存器状态信息 
3.2.1 线程枚举 
3.2.2 功能整合 
3.3 实现调试事件处理例程 
3.4 无所不能的断点 
3.4.1 软断点 
3.4.2 硬件断点 
3.4.3 内存断点 
3.5 总结 
第4章 PyDbg——Windows下的纯Python调试器 
4.1 扩展断点处理例程 
4.2 非法内存操作处理例程 
4.3 进程快照 
4.3.1 获取进程快照 
4.3.2 汇总与整合 
第5章 Immunity Debugger——两极世界的最佳选择 
5.1 安装Immunity Debugger 
5.2 Immunity Debugger 
5.2.1 PyCommand命令 
5.2.2 PyHooks 
5.3 Exploit(漏洞利用程序)开发 
5.3.1 搜寻exploit友好指令 
5.3.2 “坏”字符过滤 
5.3.3 绕过Windows 下的DEP机制 
5.4 破除恶意软件中的反调试例程 
5.4.1 IsDebuugerPresent 
5.4.2 破除进程枚举例程 
第6章 钩子的艺术 
6.1 使用PyDbg部署软钩子 
6.2 使用Immunity Debugger部署硬钩子 
第7章 DLL注入与代码注入技术 
7.1 创建远程线程 
7.1.1 DLL注入 
7.1.2 代码注入 
7.2 遁入黑暗 
7.2.1 文件隐藏 
7.2.2 构建后门 
7.2.3 使用py2exe编译Python代码 
第8章 Fuzzing 
8.1 几种常见的bug类型 
8.1.1 缓冲区溢出 
8.1.2 整数溢出 
8.1.3 格式化串攻击 
8.2 文件Fuzzer 
8.3 后续改进策略 
8.3.1 代码覆盖率 
8.3.2 自动化静态分析 
第9章 Sulley 
9.1 安装Sulley 
9.2 Sulley中的基本数据类型 
9.2.1 字符串 
9.2.2 分隔符 
9.2.3 静态和随机数据类型 
9.2.4 二进制数据 
9.2.5 整数 
9.2.6 块与组 
9.3 行刺WarFTPD 
9.3.1 FTP 101 
9.3.2 创建FTP协议描述框架 
9.3.3 Sulley会话 
9.3.4 网络和进程监控 
9.3.5 Fuzzing测试以及Sulley的Web界面 
第10章 面向Windows驱动的Fuzzing测试技术 
10.1 驱动通信基础 
10.2 使用Immunity Debugger进行驱动级的Fuzzing测试 
10.3 Driverlib——面向驱动的静态分析工具 
10.3.1 寻找设备名称 
10.3.2 寻找IOCTL分派例程 
10.3.3 搜寻有效的IOCTL控制码 
10.4 构建一个驱动Fuzzer 
第11章 IDAPython——IDA PRO环境下的Python脚本编程 
11.1 安装IDAPython 
11.2 IDAPython函数 
11.2.1 两个工具函数 
11.2.2 段(Segment) 
11.2.3 函数 
11.2.4 交叉引用 
11.2.5 调试器钩子 
11.3 脚本实例 
11.3.1 搜寻危险函数的交叉代码 
11.3.2 函数覆盖检测 
11.3.3 检测栈变量大小 
第12章 PYEmu——脚本驱动式仿真器 
12.1 安装PyEmu 
12.2 PyEmu概览 
12.2.1 PyCPU 
12.2.2 PyMemory 
12.2.3 PyEmu 
12.2.4 指令执行 
12.2.5 内存修改器与寄存器修改器 
12.2.6 处理例程(Handler) 
12.3 IDAPyEmu 
12.3.1 函数仿真 
12.3.2 PEPyEmu 
12.3.3 可执行文件加壳器 
12.3.4 UPX加壳器 
12.3.5 利用PEPyEmu脱UPX壳

收起全部↑

前言/序言
  “搞定了吗?”,这可能是在Immunity公司出现频率最高的一句话了。你也许会在类似以下的场景中听到这样的发问:“我正要给ImmunityDebugger开发一个新的ELF加载器”,片刻停顿之后,“搞定了吗?”或者,“我刚发现了IE浏览器的一个Bug!”又一片刻的沉寂之后,“那个漏洞利用程序搞定了吗?”在日常的安全项目中我们几乎无时无刻地须要创建或者改写自己的安全工具,并在这些频繁的活动中始终保持高速的开发节奏,这使得Python逐渐成为了这个舞台上的明星。你可以在下一个安全项目中选择Python作为自己的开发工具,也许你将会用它来创建一个特殊的反编译器或者开发一个完整的调试器。
  当我走进位于南迈阿密海滩的AceHardware(美国的一家连锁五金店),沿着摆放着螺丝刀的通道走过时,常常会感到目眩。你会看到接近50多种不同规格的螺丝刀以整齐的顺序陈列在货架上。每一种规格的螺丝刀都与紧邻的螺丝刀有着微小却又十分重要的区别。我不算一个合格的修理能手,因此无法准确地说出每一种螺丝刀最为理想的使用场合,但是我很确信类似的情况同样适用于我们的安全工具软件。尤其是当你在对Web类型或者其他类型的高度定制化的应用程序进行安全审计时,你会发现每一次的审计任务都会需要一把特殊的“螺丝刀”来解决问题。要知道能够及时地拼凑出一些类似SQLAPI函数钩子之类的安全小工具已经不止一次地拯救了Immunity的工作团队。当然这些工具并不仅仅适用于安全审计任务,一旦你能够使用钩子函数对SQLAPI进行拦截,你就可以轻易地编写出一个工具用于实时检测可疑的异常SQL查询,并及时向你的客户公司提供修复方案,以抵御那些来自顽固黑客们的攻击。
  众所周知,要让你的每一个安全研究人员真正成为团队的一部分是一件棘手的事情。很多安全研究人员无论在面对何种类型的问题时,都怀揣着白手起家式的过度热情,企图将需要借助的工具库完全重写。比如说Immunity发现了某个SSLDaemon的一个安全漏洞,接下来很有可能发生的一件事就是,你突然发现你的某个安全研究人员居然正在试图从头开始编写一个SSL客户端。而他们对此通常给出的解释是“我能找到的SSL库都丑陋不堪”。
  你需要尽力避免这种情况发生。事实情况并不是现有的SSL库丑陋不堪——它只是没有按照某个安全研究人员的特别偏好风格来设计而已。而我们真正需要做的是能够深入分析大量的现有代码,快速地发现问题所在,并对其进行修改以适应自身所需,这才是及时地搭建出一个可用的SSL库,并用其开发出一个尚处于保鲜期内的漏洞利用程序的关键。而要做到这一点,你需要使你的安全研究员们能够像一个真正的团队一样去工作。一个熟练掌握了Python的安全研究人员就有了一个强大的武器,也许就像那些掌握了Ruby的安全研究人员一样。然而Python真正的与众不同之处显现在那些Python狂热分子们协同工作时,他们将犹如一个高速运转的超个体①一样战斗力惊人。正如你家厨房中的蚂蚁大军一样,当它们的数量足够组成一只大乌贼时,要杀死它们将比杀死一只乌贼棘手得多。而这正是本书极力告诉你的一个事实。
  你也许已经为自己想做的事找到了一些工具。你也许会问:“我已经有了一套VisualStudio,里面附带了一个调试器,为什么还要去编写一个供自己专用的调试器。”或者“WinDbg不是有一个插件接口了吗?”答案是肯定的。WinDbg的确提供了插件接口,你可以通过那些API慢慢地拼凑出一些有用的东西。直到某一天你很可能又会说:“Heck,如果我能和5000个WinDbg使用者互联该有多好啊,这样我们就可以互通各自的调试结果了”。如果你从一开始就选择了Python,你只要写100行左右的代码就可以构建一个XMLRPC客户端与服务端,接下来整个团队可以同步地进行工作并使每个人及时地享有他人的成果和信息。
  黑客绝不等同于逆向工程——你的目标并不是还原出整个应用程序的源码。你的目标是对软件系统获得比系统开发者自身更加深入的理解。一旦你能做到这一点,无论目标以何种形式出现,你将最终成功地渗透它,获得炙手可热的漏洞利用(exploit)。这也意味着你需要成为可视化、远程同步、图论、线性方程求解、静态分析技术以及其他很多方面的专家。因此,Immunity决定将这些都标准化实现在Python平台上,这样一旦我们编写了一个图论算法,这个算法将在我们所有的工具中通用。
  在第6章中,Justin向你演示了如何使用一个钩子窃取Firefox浏览器中输入的用户名与密码。这正是一个恶意软件作者所做的事——从之前的一些相关报道中可以看出,恶意软件作者通常使用一些更为高级语言来编写此类程序。然而你同样可以使用Python在15分钟内编写出一个样例程序,用于向你的开发人员演示,让他们明白他们对自己的产品所做的安全假设并不成立。现在的一些软件公司出于他们所声称的安全考虑,在保护软件内部数据方面的投资花费不菲。而实际上他们所做的往往只是实现了一些版权保护和数字版权管理机制而已。
  这正是本书试图教你的东西:快速创建安全工具的能力。你应当能够借助这种能力为你个人或者整个团队带来成功。而这也是安全工具开发的未来:快速实现、快速修改,以及快速互联。我想,最后你唯一剩下的问题也许就是:“搞定了吗?”
  ImmunityIne的创始人兼CTODaveAitel
  2009年2月于美国佛罗里达州,迈阿密海滩
Python灰帽子——黑客与逆向工程师的Python编程之道pdf百度云下载

Python灰帽子——黑客与逆向工程师的Python编程之道pdf百度云相关推荐

  1. 读书笔记 《Python灰帽子-黑客与逆向工程师的Python编程之道》

    Python灰帽子-黑客与逆向工程师的Python编程之道 1.调试器原理和设计 调试器 白盒调试器 黑盒调试器 2.寄存器 2.1通用寄存器 EAX(ADD) EDX(DEPOSIT) ECX(Co ...

  2. Python灰帽子——黑客与逆向工程师的Python编程之道

    Python灰帽子--黑客与逆向工程师的Python编程之道 下载地址 https://pan.baidu.com/s/12hlf8ZAXBbGwcael_Ecmrg 扫码下面二维码关注公众号回复 1 ...

  3. Python灰帽子--黑客与逆向工程师的Python编程之道 笔记,过程问题解决

    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑电脑端的可以看看目录 跟着学习进度不断更新中....(因为懒,没更新了,也不打算继续更新文章了......) power by <p ...

  4. Python灰帽子——黑客与逆向工程师的Python之道

    Python成为了黑客编程领域显而易见的王者,但到目前为止还没有一本真正意义上的参考手册,来指导你将Python应用于不同的黑客技术场景中,你往往需要游走于各大论坛的技术讨论帖子或者各种工具手册中.这 ...

  5. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

  6. Python灰帽子:黑客与逆向工程师的Python编程之道

    掌握职业黑客的Python工具箱 <Python灰帽子:黑客与逆向工程师的Python编程之道> 基本信息 原书名: Gray Hat Python: Python Programming ...

  7. python测试之道pdf百度云_Python测试之道——笔记1

    引言 如果利用python做自动化测试的话,一些python相关的基础知识是必须要掌握的.常用的比如:python代码规范.变量与数据类型.运算.函数和字符串处理等. 语法规范 这里只介绍重点和常用的 ...

  8. 电子书推荐--《Python灰帽子》,python黑客编程

    点此在线阅读 <Python灰帽子>是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍 ...

  9. Python灰帽子pdf

    下载地址:网盘下载 内容简介  · · · · · · <Python灰帽子>是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Pytho ...

最新文章

  1. 重构当当网交易系统!
  2. php api数据,php API查询数据
  3. unity3d能和java系统整合吗_Android与Unity3d的整合
  4. 项目忙还要过软考,您需要简练!
  5. Redis的主从复制是如何做的?复制过程中也会产生各种问题
  6. LSTM和GRU介绍
  7. 【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。...
  8. GitHub 60000+ Star 登顶,命令行的艺术!
  9. 女孩!自重!上海出租车司机的话
  10. 数据绑定表达式语法(Eval,Bind区别)
  11. MySQL函数、存储过程
  12. vulnhub:Who Wants To Be King: 1
  13. 《Beyond Part Models: Person Retrieval with Refined Part Pooling 》PCB论文解读
  14. 【Unity2D】Sprite 或图片格式常用设置
  15. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化
  16. oppo文件管理android在哪里,OPPO手机中缓存视频文件路径在哪里查看?怎么查看?
  17. 后端传给xml格式文件前端要求导出xslx,表格文件
  18. Android4.4 状态栏WiFi图标显示流程
  19. webservice学习
  20. html导航栏点击之后变色,鼠标滑过字体加粗、背景变色的CSS导航栏

热门文章

  1. mvn exec命令使用
  2. 病毒分析要掌握的技能
  3. 受面板跌价拖累 韩国LG显示器四季度净利创近两年新低
  4. 关于 sso 博客大巴的神仙的一点思路
  5. 火箭还是飞机?-- DevOps 的两种模式
  6. java csv 复杂表头_java读csv 和excel
  7. Google宣布收购摩托罗拉移动
  8. 20、个人信息 - 小程序端开发 - 微擎小程序模块应用开发
  9. 计算机科技论文范文,★计算机科技论文摘要范文计算机科技论文摘要写
  10. open failed: EACCES (Permission denied)权限已加,写入sd卡仍报错的解决办法