发表于2024-11-25
电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh] pdf epub mobi txt 电子书 下载
快速开发基于Python的数字取证应用和网络犯罪调查工具的实战宝典。
本书是一本电子数据取证的入门书籍,系统介绍如何应用Python编程语言进行电子数据取证软件开发。第1章和第2章介绍Python基本知识和如何建立一个取证开发环境。第3章到第11章针对电子数字取证的各种需求,详细阐述指导性的解决方法,涵盖哈希计算、关键字搜索、元数据提取、网络分析、自然语言处理以及利用云的多进程等专题,并提供大量的源代码实例供读者学习、改进并应用到实际案例,第12章回顾了全书内容,并就未来的发展进行了探讨。
Chet Hosmer
WetStone技术公司的联合创始人,30年来一直致力于研发先进的软件解决方案,推出了许多获奖的产品。
张俊,男,博士研究生,湖北警官学院信息技术系副教授,主讲《密码学(双语)》和《计算机取证》。湖北三真司法鉴定中心计算机取证国家司法鉴定人。研究近500个涉及计算机和网络犯罪的案例,参与近200个案件的犯罪调查,多次作为专家证人出庭。
前公安机关网络安全保卫大队大队长。现湖北警官学院电子数据取证重点实验室和香港大学联合实验室研究员。湖北省信息网络安全协会常务理事。公安部国际合作局中南亚国家警察培训计划讲座专家,湖北省公安厅网络犯罪调查专家组成员和网络警察职业训练计划教官,公安部*一研究所计算机网络犯罪技术研修班讲座专家。作为主持人或主要研究人员获得国家863项目和多项公安部、湖北省公安厅和湖北省教育厅的研究课题/项目资助。在计算机科学,警察技术,网络信息安全,武汉大学学报(英文版),湖北警官学院学报等发表论文多篇。
第1章 为何使用Python进行取证 1
1.1 本章简介 1
1.2 网络空间犯罪调查的挑战 1
1.3 Python编程环境如何有助于应对这些挑战 3
1.3.1 Python的全球支持 4
1.3.2 开源和平台独立性 5
1.3.3 生命周期定位 5
1.3.4 入门的成本和限制 5
1.4 Python与多伯特(Daubert)证据标准 5
1.5 本书的组织结构 6
1.6 章节回顾 7
1.7 问题小结 7
1.8 补充资料 7
第2章 建立一个Python取证环境 8
2.1 本章简介 8
2.2 搭建一个Python取证环境 8
2.3 正确的环境 9
2.4 选择一个Python版本 10
2.5 在Windows上安装Python 10
2.6 Python包和模块 15
2.6.1 Python标准库 15
2.7 标准库包含什么 17
2.7.1 内建函数 17
2.7.2 hex()和bin() 17
2.7.3 range() 18
2.7.4 其他的内建函数 19
2.7.5 内建常量 20
2.7.6 内建类型 21
2.7.7 内建异常 22
2.7.8 文件和目录访问 22
2.7.9 数据压缩和归档 23
2.7.10?文件格式 23
2.7.11?加密服务 23
2.7.12?操作系统服务 23
2.7.13?标准库小结 24
2.8 第三方包和模块 24
2.8.1 自然语言工具包(NLTK) 24
2.8.2 Twisted matrix (TWISTED) 25
2.9 集成开发环境 25
2.9.1 有哪些选择 25
2.9.2 运行于Ubuntu Linux上的Python 30
2.10?移动设备上的Python 32
2.10.1 iOS中的Python应用 32
2.10.2 Windows 8 Phone 34
2.11 虚拟机 35
2.12 章节回顾 35
2.13 问题小结 35
2.14 接下来讲什么 36
2.15 补充资料 36
第3章 第一个Python取证应用程序 37
3.1 本章简介 37
3.2 命名惯例和其他考虑 37
3.2.1 常量 38
3.2.2 本地变量名 38
3.2.3 全局变量名 38
3.2.4 函数名 38
3.2.5 对象名 38
3.2.6 模块 38
3.2.7 类名 38
3.3 第一个应用程序“单向文件系统哈希” 38
3.3.1 背景 39
3.3.2 基本需求 40
3.3.3 设计中的考虑 41
3.3.4 程序结构 42
3.4 代码遍历 44
3.4.1 检查Main-代码遍历 44
3.4.2 ParseCommandLine(?) 46
3.4.3 ValidatingDirectoryWritable 48
3.4.4 WalkPath 49
3.4.5 HashFile 50
3.4.6 CSVWriter 53
3.4.7 pfish.py完整代码清单 53
3.4.8 _pfish.py完整代码清单 54
3.5 结果展示 61
3.6 章节回顾 65
3.7 问题小结 65
3.8 接下来讲什么 66
3.9 补充资料 66
第4章 使用Python进行取证搜索和索引 67
4.1 本章简介 67
4.2 关键字上下文搜索 68
4.2.1 如何用Python轻松完成 69
4.2.2 基本需求 70
4.2.3 设计考虑 71
4.3 代码遍历 73
4.3.1 分析Main――代码遍历 73
4.3.2 分析_p-search函数――代码遍历 74
4.3.3 分析ParseCommandLine 74
4.3.4 分析ValidateFileRead(theFile) 76
4.3.5 分析SearchWords函数 76
4.4 结果展示 80
4.5 索引 83
4.6 编写isWordProbable 84
4.7 p-search完整代码清单 86
4.7.1 p-search.py 86
4.7.2 _p-search.py 87
4.8 章节回顾 93
4.9 问题小结 93
4.10?补充资料 93
第5章 证据提取(JPEG和TIFF) 94
5.1 本章简介 94
5.2 Python图像库(PIL) 95
5.3 代码遍历 105
5.3.1 Main程序 105
5.3.2 logging类 105
5.3.3 cvs处理器 105
5.3.4 命令行解析器 106
5.3.5 EXIF和GPS处理器 106
5.3.6 检查代码 106
5.3.7 完整代码清单 114
5.3.8 程序的执行 121
5.4 章节回顾 123
5.5 问题小结 124
5.6 补充资料 124
第6章 时间取证 125
6.1 本章简介 125
6.2 给这个环节添加时间 126
6.3 时间模块 127
6.4 网络时间协议 132
6.5 获得和安装ntp库ntplib 132
6.6 全世界的NTP服务器 134
6.7 NTP客户端创建脚本 135
6.8 章节回顾 137
6.9 问题小结 137
6.10?补充资料 137
第7章 在电子取证中使用自然语言工具 138
7.1 什么是自然语言处理 138
7.1.1 基于对话的系统 138
7.1.2 语料库 139
7.2 安装自然语言工具包和相关的库 139
7.3 使用语料库 140
7.4 用NLTK进行实验 140
7.5 从因特网上创建语料库 145
7.6 NLTKQuery应用程序 146
7.6.1 NLTKQuery.py 146
7.6.2 _classNLTKQuery.py 148
7.6.3 _NLTKQuery.py 150
7.6.4 NLTKQuery例子的执行 150
7.6.5 NLTK跟踪执行 151
7.7 章节回顾 153
7.8 问题小结 153
7.9 补充资料 153
第8章 网络取证:第1部分 154
8.1 网络调查基础 154
8.1.1 什么是套接字 154
8.1.2 最简单使用套接字的网络客户端和服务器连接 156
8.1.3 server.py的代码 156
8.1.4 client.py的代码 157
8.1.5 server.py和client.py程序的执行 158
8.2 队长雷缪斯:再次核实我们到目标的射程…仅需一个PING 158
8.2.1 wxPython 159
8.2.2 ping.py 159
8.2.3 guiPing.py的代码 164
8.2.4 ping扫描的执行 168
8.3 端口扫描 169
8.3.1 公认端口的例子 169
8.3.2 注册端口的例子 170
8.4 章节回顾 176
8.5 问题小结 176
8.6 补充资料 177
第9章 网络取证:第2部分 178
9.1 本章简介 178
9.2 数据包嗅探 178
9.3 Python中的原始套接字 180
9.3.1 什么是混杂模式或监控模式 180
9.3.2 Linux下Python中的原始套接字 181
9.3.3 对缓冲区进行解包 182
9.4 Python隐蔽式网络映射工具(PSNMT) 185
9.5 PSNMT源代码 187
9.5.1 psnmt.py源代码 188
9.5.2 decoder.py源代码 190
9.5.3 commandParser.py源代码 192
9.5.4 classLogging.py源代码 193
9.5.5 csvHandler.py源代码 194
9.6 程序的执行和输出 195
9.6.1 取证日志 196
9.6.2 CSV文件输出实例 197
9.7 章节回顾 198
9.8 问题小结 198
9.9 补充资料 198
第10章 多进程的取证应用 199
10.1 本章简介 199
10.2 何谓多进程 199
10.3 Python多进程支持 199
10.4 最简单的多进程例子 202
10.4.1 单核的文件搜索方案 202
10.4.2 多进程的文件搜索方法 203
10.5?多进程文件哈希 204
10.5.1 单核方案 204
10.5.2 多核方案 A 205
10.5.3 多核方案 B 208
10.6 多进程哈希表生成 210
10.6.1 单核口令生成器代码 210
10.6.2 多核口令生成器 213
10.6.3 多核口令生成器代码 213
10.7 章节回顾 216
10.8 问题小结 217
10.9 补充资料 217
第11章 云中的彩虹表 218
11.1 本章简介 218
11.2 在云端工作 218
11.3 云端服务的可选资源 220
11.4 在云端创建彩虹表 222
11.4.1 单核彩虹表 222
11.4.2 多核彩虹表 224
11.5 口令生成计算 226
11.6 章节回顾 228
11.7 问题小结 228
11.8 补充资料 229
第12章 展望 230
12.1 本章简介 230
12.2 由此我们将走向何方 232
12.3 结束语 235
12.4 补充资料 235
本书提供了很多崭新和可靠的取证模块、库和解决方案,可以直接用于Python取证分析,同时随代码示例提供的详细说明和文档,能让即使是Python编程新手也能获得意料之外的提升,或者使用这些模型建立新的解决方案。
几乎在所有案件和环境中,新的网络犯罪调查工具的快速研发是一个必备的组成部分,不管你是进行事后的调查,执行开机预检,从移动设备或云服务提取证据,还是从网络收集和处理证据,使用Python取证都能填补这些关键能力的空缺。
● 提供能亲手开发的工具、代码示例,以及详细的说明和文档,可以即刻投入使用。
● 讨论如何建立一个Python取证平台。
● 涵盖使用Python的高效搜索和索引方法。
● 介绍使用多线程模块,极大地提升常见取证方法的性能。
● 展示使用Python脚本进行网络调查的完整内容。
中译本序
有幸与湖北警官学院的张俊老师相识,我们经常在学术会议间隙,或者相互访问的交流过程中探讨电子数据取证的问题。张俊老师从事电子数据取证的教学和科研工作多年,培养了很多优秀的学生,他还积极参与电子数据取证的司法鉴定工作,办理了许多重大和复杂的案件。张俊老师一直活跃在电子数据取证领域,并不断关注和跟踪国内外最新的技术发展,所以他有心翻译和出版这样一本书,我觉得一切都是顺理成章的事情。
本书作者Chet Hosmer和技术编辑Gary C. Kessler也是信息网络安全业界的专业人士,他们都是知名的专家,有着长期的专业经历和丰富学识。他们将宝贵的经验和专业知识毫无保留地在书中传授,这将有利于专业人才的成长,有助于立志从事电子数据取证的技术人员和法律人士快速进入这一领域。
电子数据取证是一个发展时间相对较短的领域,还有很多的技术问题、法律问题尚待解决。香港大学计算机科学学系的课程也应用了Python语言编程,我们也鼓励从事信息安全专业的学生学习这门语言,并充分利用其简单易学、第三方库功能强大的特点,与专业知识相结合,针对电子数据取证的不同问题或挑战,开展创造性的工作,提出切实可行的解决方案。
这本书提供了广泛的例子,便于不了解编程或只拥有初级技术的开发人员使用。我们盼望着更多充满智慧和理想的新人的加入,期待你们所有人分享思想、知识和经验,一起推进这一事业的发展。
邹锦沛博士(Dr. CHOW KAM PUI)
香港大学信息安全和密码学硏究中心(CISC)
香港大学计算机科学学系
2016年11月18日于香港大学
译者序
电子数据取证技术的研究和应用在国内得到了越来越多的关注。全世界的专家和学者在提及信息网络安全时,关注的重点多集中于算法理论的研究、技术方法的对抗以及规范策略的制定等,毫无疑问这些问题极为重要。然而,信息网络安全的最后一道防线必然诉诸法律。最近几年电子数据作为一种独立证据类型,逐渐得到各类法规的认可,例如在深圳快播公司涉嫌传播淫秽物品牟利案的庭审中,关于电子证据的控辩,就引发了司法界对电子证据的广泛关注。作为向法庭呈贡证据的侦查人员、电子数据取证司法鉴定人,他们的知识、水平和能力成为关键。但现实的问题是,由于计算机网络技术的飞速发展,以及案件的复杂和规模化,已有的电子数据取证工具在很多情况下并不能替侦查人员或司法鉴定人自动完成他们所需的全部工作,或者完成更高级的取证调查任务。例如,用现有的工具软件提取一部手机的通话、短信和即时通信记录,通常可以得到数吉赫兹的数据,往往一个案件涉及十几部或更多的手机,因此数据量更大。如果侦查人员或司法鉴定人能够快速地编写代码,进行定制的搜索和索引,将极大地提高从这些海量的半结构化数据中高效地得到关键证据的能力。
译者长期从事电子数据取证的科研和教学工作,并作为司法鉴定人,参与了大量重、特大案件的电子数据取证调查工作,在这些过程中一直反复思考上述这些问题。一个偶然的机会,看到了Python Forensics: A Workbench for Inventing and Sharing Digital Forensic Technology一书,立刻被它的内容所吸引,感觉找到了问题的答案。本书的特点在于,使用Python语言上手快,第三方库丰富,调查员可以方便地编写代码来完成复杂的、特定的取证任务,而且无须过多关注语言细节,从而能将主要精力放到取证任务本身。另外,本书体现了开发过程满足多伯特(Daubert)证据标准的重要性,也就是设计、开发、测试过程符合特定的证据标准。这些特点也是开发普通程序与取证程序的最大区别。
作者Chet Hosmer不仅是信息网络安全、电子数据取证领域的从业人士,也是一名教育工作者,作为Utica学院网络安全研究生课程的客座教授,他擅长从调查员视角讲解如何用Python语言进行电子数据取证。本书在介绍如何建立一个Python取证环境的基础上,首先详细讲解开发一个取证应用的基本框架,然后每一章都针对网络犯罪取证的一个不同问题,讨论能够自由使用、分享和扩展的Python指导性解决方案,包括哈希、关键字搜索、元数据、自然语言处理、网络分析以及利用云的多进程等。最后,对Python应用于网络犯罪调查,以及更广泛领域的网络安全应用,高性能硬件加速和嵌入式解决方案等在未来的机遇进行了展望。作者认为,能否建造自己的取证工具库,是区分初级取证调查员与专业取证调查员的关键。全书贯穿着一个资深调查员通过长期实践得出的理念。作为前辈,他谆谆告诫后来者:只有当我们(调查人员)理解工具如何工作时,它们才真正是我们的工具。他正是以这一核心指导原则展开了本书全部内容。
电子数据取证是计算机科学、法学等的交叉领域,技术开发人员和法律工作者以不同的知识背景进入该领域,他们从各自角度去理解电子数据证据的提取、分析和呈贡,并且在专业词汇、思维过程、解决问题的方式等方面有很大区别,形成了介于一个自然科学和社会科学之间的“沟壑”。所以,本书的另一个目的是试图建立起工程学(如计算机科学、信息科学)与社会科学(如法学)之间的桥梁。技术开发人员和法律工作者通过阅读本书,提升对取证环境和工具的理解,可以轻松交流和平等参与,从而创造出一个协作而不互损的环境,计算机科学与社会科学都能各尽其力。我在阅读和翻译的过程中,深刻体会到作者毫无保留地把自己积累的宝贵经验传授给读者。本书对读者的编程知识(也许根本没有)不做任何预设。只要肯用功,对书中的例子感兴趣,读者就不用担心自己读不懂,甚至可以将其扩展,开发出适应特定情形和问题的进化版本。
以我有限的水平,要翻译好这样一本同时适合技术开发人员和法律工作者阅读的著作,内心难免不安。感谢作者Chet Hosmer对我每次发邮件向他求教或确认问题的耐心解答。感谢我的领导黄凤林教授和张天长教授,他们给予我很多指导和帮助。感谢武汉天宇宁达公司的CEO郭永建先生,他给出了若干非常专业的修改意见。翻译本书时,我还向徐比超和胡壮求证过有关的示例是否有误,他们是湖北警官学院的毕业生,现在战斗在电子数据取证的最前线。感谢湖北警官学院的学生吴沛沛、欧阳桂申、彭洪飞、沈阳、朱俊妍参与部分翻译校对和代码测试工作。最后感谢我的妻子,她承担了所有的家务重任,让我全心投入工作,并以我翻译本书为骄傲。
由于本人学识有限,且时间仓促,书中翻译错误、不当和疏漏之处在所难免,望读者批评指正。
专 家 荐 语
Hosmer不仅为各种层次的取证分析提供了一个出色的Python取 电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh] 电子书 下载 mobi epub pdf txt
送货快
评分好好好
评分很好,
评分好好好
评分很好,
评分好评
评分很好,
评分好评
评分很好,
电子数据取证与Python方法 [Python Forensics: A Workbench for Inventing and Sh] pdf epub mobi txt 电子书 下载