[D]《Python灰帽子:黑客与逆向工程师的Python编程之道》第4.3.1节例子程序运行错误!请高人指点。

ycangmsw 2012-04-04 01:01:01
第4.3.1源程序如下,通过pydbg获取和保存“C:\\WINDOWS\\System32\\calc.exe”快照,但在输入“restore”指令后提示错误:PDBG_ERR> -- IGNORING ERROR --
PDBG_ERR> process_restore: [87] WriteProcessMemory(000d0000, ..., 212992): 参数错误。
在pydbg源代码里也没看出问题,有晓得的帮帮忙啊!

#snapshot.py
from pydbg import *
from pydbg.defines import *
import threading
import time
import sys

class snapshotter(object):
def __init__(self,exe_path):
self.exe_path = exe_path
self.pid = None
self.dbg = None
self.running = True

# Start the debugger thread, and loop until it sets the PID
# of our target process
pydbg_thread = threading.Thread(target=self.start_debugger)
pydbg_thread.setDaemon(0)
pydbg_thread.start()
while self.pid == None:
time.sleep(1)

# We now have a PID and the target is running; let's get a
# second thread running to do the snapshots
monitor_thread = threading.Thread(target=self.monitor_debugger)
monitor_thread.setDaemon(0)
monitor_thread.start()

def monitor_debugger(self):
while self.running == True:
input = raw_input("Enter: 'snap','restore' or 'quit'")
input = input.lower().strip()
if input == "quit":
print "
  • Exiting the snapshotter."
    self.running = False
    self.dbg.terminate_process
  • ()
    elif input == "snap":
    print "
  • Suspending all threads."
    self.dbg.suspend_all_threads
  • ()
    print "
  • Obtaining snapshot."
    self.dbg.process_snapshot
  • ()
    print "
  • Resuming operation."
    self.dbg.resume_all_threads
  • ()
    elif input == "restore":
    print "
  • Suspending all threads."
    self.dbg.suspend_all_threads
  • ()
    print "
  • Restoring snapshot."
    self.dbg.process_restore
  • ()
    print "
  • Resuming operation."
    self.dbg.resume_all_threads
  • ()

    def start_debugger(self):
    self.dbg = pydbg()
    pid = self.dbg.load(self.exe_path) #pydbg.load()
    self.pid = self.dbg.pid
    self.dbg.run()

    exe_path = "C:\\WINDOWS\\System32\\calc.exe"
    snapshotter(exe_path)

-----------
Double行动:
原帖分数:100
加分:100
...全文
663 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugs2k 2012-07-02
  • 打赏
  • 举报
回复
还没有看过这本书,请问这本书如何?
Harry_monkey 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

原来是操作系统的原因,在XP下可以,但在WIN7下不行。XP下要在窗口刷新后才能看到“restore”的效果。

那个在XP下你说的刷新是怎么个刷新法?
[/Quote]

刷新就是把窗口最小化,在还原就行。
出了这个错误不要紧,仍然有“restore”的效果。
restore时重新将很多内容写入内存,只有一个写入失败没有影响最后要显示的效果
chen_999876 2012-05-16
  • 打赏
  • 举报
回复
你没有保存快照,一上来就恢复,到哪里去恢复啊!
先要在你想要保存快照的地方snap,然后进行相应的操作,当要恢复快照的时候再restore,这样就恢复到了保存快照的地方
liuchen513 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

原来是操作系统的原因,在XP下可以,但在WIN7下不行。XP下要在窗口刷新后才能看到“restore”的效果。
[/Quote]
那个在XP下你说的刷新是怎么个刷新法?
loveisbug 2012-04-09
  • 打赏
  • 举报
回复
译者说他调试过所有代码,直接问译者吧。
ycangmsw 2012-04-09
  • 打赏
  • 举报
回复
原来是操作系统的原因,在XP下可以,但在WIN7下不行。XP下要在窗口刷新后才能看到“restore”的效果。
坚强的豁着 2012-04-07
  • 打赏
  • 举报
回复
没看懂这些方法,估计要看看这些模块的文档吧
ycangmsw 2012-04-04
  • 打赏
  • 举报
回复
呵呵。谢谢啦
fibbery 2012-04-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
我晕!编辑时好好的,怎么完了格式全乱了!各将就着看吧,谢谢!
[/Quote]

使用
将代码包围起来。
ycangmsw 2012-04-04
  • 打赏
  • 举报
回复
我晕!编辑时好好的,怎么完了格式全乱了!各将就着看吧,谢谢!
中文名: Python帽子-黑客逆向工程Python编程之道 原名: Gray Hat Python:Python Programming for Hackers and Reverse Engineers 作者:Justin Seitz 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社 发行时间: 2011年03月01日 内容介绍: 《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壳 ……
本书是由知名安全机构ImmunityInc的资深黑帽JustinSeitz先生主笔撰写的一本关于编程语言Python如何被广泛应用于黑客逆向工程领域的书籍.老牌黑客,同时也是Immunity Inc的创始人兼首席技术执行官(CTO)Dave Aitel为本书担任了技术编辑一职。本书的绝大部分篇幅着眼于黑客技术领域中的两大经久不衰的话题:逆向工程与漏洞挖掘,并向读者呈现了几乎每个逆向工程或安全研究人员在日常工作中所面临的各种场景,其中包括:如何设计?构建自己的调试工具,如何自动化实现烦琐的逆向分析任务,如何设计与构建自己的fuzzing工具,如何利用fuzzing测试来找出存在于软件产品中的安全漏洞,一些小技巧诸如钩子与注入技术的应用,以及对一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介绍。作者借助于如今黑客社区中备受青睐的编程语言Python引领读者构建出精悍的脚本程序来——应对上述这些问题。出现在本书中的相当一部分Python代码实例借鉴或直接来源于一些优秀的开源安全项目,诸如Pedram Amini的Paimei,由此读者可以领略到安全研究者?是如何将黑客艺术与工程技术优雅融合来解决那些棘手问题的。   本书适合热衷于黑客技术,特别是与逆向工程与漏洞挖掘领域相关的读者,以及所有对Python编程感兴趣的读者阅读与参考。 目录 第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 l01   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——脚本驱动式仿真器

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧