读书人

Python灰帽子:黑客与逆向工程师的Pyth

发布时间: 2014-02-23 05:33:38 作者: rapoo

Python灰帽子:黑客与逆向工程师的Python编程之道 [平装]

编辑推荐

《Python灰帽子:黑客与逆向工程师的Python编程之道》:安全技术大系

作者简介

作者:(美国)塞兹(Justin Seitz) 译者:丁卿 注释 解说词:崔孝晨

目录

第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 lsDebuugerPresent
5.4.2 破除进程枚举例程

第6章 钩子的艺术
6.1 使用PyDbg部署软钩子
6.2 使用Immunity Debugger部署硬钩子

第7章 DLL注入与代码注入技术
7.1 创建远程线程
7.1.1 DLL注入
7.1.2 代码注入
……

第8章 Fuzzing
第9章 Sulley
第10章 面向Windows驱动的Fuzzing测试技术
第11章 IDAPyrhon——IDA PRO环境下的Pyrhon
第12章 PYEmu——脚本驱动式仿真器

文摘

版权页:



插图:



缓冲区溢出是最为普遍的一种软件漏洞。所有那些看似无辜纯良的内存管理函数、字符串处理例程、甚至是某些编程语言所固有的内建函数都有可能成为引发缓冲区溢出的潜在元凶。
简而言之,当你试图向某一内存区域中存入超负荷量的数据时,便会发生缓冲区溢出。用一个形象的比喻来解释这个现象,你可以将数据缓冲区想象成一个容积为一加仑的水桶。如果你只是向这个桶内倒上两滴或者半加仑水,甚至是直接满上,你和水桶都还会相安无事。然而我们都清楚如果向水桶内倾倒上两加仑的水会导致什么后果,你恐怕得劳烦自己清理溅溢到地板上的那额外一加仑的水了。本质上相同的事情也会发生在软件程序中,当你试图向一块数据缓冲区(水桶)写入过量的数据(水)时,额外的写入数据将越过缓冲区的边界并覆盖那些位于边界之外的数据。如果这些被殃及的内存区域的内容最终能被恶意攻击者完全控制,那么这就意味着恶意攻击者获得了一条潜在渠道用以控制程序内部的代码执行路径,并以某种方式最终成功渗透主机。你需要了解两种最基本形式的缓冲区溢出:基于栈的溢出与基于堆的溢出。这两种形式的溢出在形成机理上存在着本质区别,然而却往往招致相同的后果——攻击者接管目标程序内部的代码执行流。
栈溢出的一个标志性特征就是会引发栈上数据遭受污染,这为攻击者接管后续的代码执行流向创造了绝佳机会。恶意攻击者可能会通过重写当前函数栈帧中的返回地址,或者改写存于栈上的函数指针,或者篡改栈上变量的取值,或者修改当前的异常处理例程执行链等各种手段来设法掌控后续的代码执行方式。由栈溢出所引发的错误内存数据访问距离溢出事件本身往往仅几步之遥,因此通常在栈溢出发生后不久,系统就会抛出一个非法内存访问异常,这使得测试人员在一轮Fuzzing测试过后要找出事发源头相对容易一些。

喜欢Python灰帽子:黑客与逆向工程师的Python编程之道 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务

读书人网 >软件工程

热点推荐