Windows PE权威指南:剖析Windows PE文件格式的原理及编程技术
¥
45
5.1折
¥
89
八五品
仅1件
作者戚利 著
出版社机械工业出版社
出版时间2011-10
版次1
装帧平装
货号R14
上书时间2024-12-15
商品详情
- 品相描述:八五品
图书标准信息
-
作者
戚利 著
-
出版社
机械工业出版社
-
出版时间
2011-10
-
版次
1
-
ISBN
9787111354185
-
定价
89.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
657页
- 【内容简介】
-
内容全面,详尽地剖析了windowspe文件格式的原理及其编程技术,涉及安全领域的各个方面和windows系统的进程管理和底层机制;实战性强,以案例驱动的方式讲解了windowspe文件格式在加密与解密、软件汉化、逆向工程、反病毒等安全领域的应用,不仅每个知识点都配有小案例,而且还有多个完整的商业案例。
《windowspe权威指南》共分为三大部分:第一部分简单介绍了学习本书需要搭建的工作环境和必须具备的工具,深入分析了pe文件头、导入表、导出表、重定位表、资源表、延迟导入表、线程局部存储、加载配置信息等核心技术的概念、原理及其编程方法,有针对性地讲解了程序设计中的重定位、程序堆栈、动态加载等;第二部分讨论了pe头部的变形技术及静态附加补丁的技术,其中静态附加补丁技术重点讲解了如何在空闲空间、间隙、新节、最后一节四种情况下打补丁和进行编码的方法;第三部分精心编写了多个大型而完整的pe应用案例,以pe补丁作为重要手段,通过对目标pe文件实施不同的补丁内容来实现不同的应用,详细展示了exe捆绑器、软件安装自动化、exe加锁器、exe加密、pe病毒提示器以及pe解毒的实现过程和方法。
《windowspe权威指南》不仅适合想深入理解windows系统进程管理和运作机制的读者,而且还适合从事加密与解密、软件汉化、逆向工程、反病毒工作的安全工作者。此外,它还适合想全面了解windowspe文件结构和对程序字节码感兴趣的读者。
- 【作者简介】
-
戚利,资深安全技术专家和软件开发工程师,对Windows PE、Windows内核、计算机网络安全、协议分析和病毒技术有较为深入的研究,实践经验丰富。擅长汇编语言和Java技术,曾自主开发了一个RMI框架。活跃于国内著名的安全论坛看雪学院,乐于与大家分享自己的心得和体会,且有较高的知名度。此外,教学(副教授)经验也十分丰富,对读者的学习习惯和认知方式有一定的认识,这一点在本书的写作方式上得到了体现。
- 【目录】
-
前言
第一部分pe的原理和基础
第1章windowspe开发环境
1.1开发语言masm32
1.1.1设置开发环境
1.1.2开发第一个源程序helloworld.asm
1.1.3运行helloworld.exe
1.2调试软件ollydbg
1.2.1调试helloworld.exe
1.2.2修改exe文件字节码
1.3十六进制编辑软件flexhex
1.4破解实例:u盘监控器
1.5初识pe文件
1.6小结
第2章三个小工具的编写
2.1构造基本窗口程序
2.1.1构造窗口界面
2.1.2编写相关的资源文件
2.1.3通用程序框架的实现
.2.2pedump的实现
2.2.1编程思路
2.2.2pedump编码
2.2.3pedump代码中的数据结构
2.2.4运行pedump
2.3pecomp的实现
2.3.1编程思路
2.3.2定义资源文件
2.3.3pecomp编码
2.3.4运行pecomp
2.4peinfo的实现
2.4.1编程思路
2.4.2peinfo编码
2.4.3运行peinfo
2.5小结
第3章pe文件头
3.1pe的数据组织方式
3.2与pe有关的基本概念
3.2.1地址
3.2.2指针
3.2.3数据目录
3.2.4节
3.2.5对齐
3.2.6unicode字符串
3.3pe文件结构
3.3.116位系统下的pe结构
3.3.232位系统下的pe结构
3.3.3程序员眼中的pe结构
3.4pe文件头部解析
3.4.1dosmz头image_dos_header
3.4.2pe头标识signature
3.4.3标准pe头image_file_header
3.4.4扩展pe头image_optional_header32
3.4.5pe头image_nt_headers
3.4.6数据目录项image_data_directory
3.4.7节表项image_section_header
3.5数据结构字段详解
3.5.1pe头image_nt_header的字段
3.5.2标准pe头iamge_file_header的字段
3.5.3扩展pe头image_optional_header32的字段
3.5.4数据目录项image_data_directory的字段
3.5.5节表项image_section_header的字段
3.5.6解析helloworld程序的字节码
3.6pe内存映像
3.7pe文件头编程
3.7.1rva与foa的转换
3.7.2数据定位
3.7.3标志位操作
3.7.4pe校验和
3.8小结
第4章导入表
4.1何谓导入表
4.2导入函数
4.2.1invoke指令分解
4.2.2导入函数地址
4.2.3导入函数宿主
4.3pe中的导入表
4.3.1导入表定位
4.3.2导入表描述符image_import_descriptor
4.3.3导入表的双桥结构
4.3.4导入函数地址表
4.3.5构造调用同一个dll文件的多个函数的导入表
4.4导入表编程
4.4.1导入表遍历的思路
4.4.2编写函数_getimportinfo
4.4.3运行测试
4.5绑定导入
4.5.1绑定导入机制
4.5.2绑定导入数据定位
4.5.3绑定导入数据结构
4.5.4绑定导入实例分析
4.6手工重组导入表
4.6.1常用注册表api
4.6.2构造目标指令
4.6.3pe头部变化
4.6.4手工重组
4.6.5程序实现
4.6.6思考:关于iat的连贯性
4.6.7思考:关于导入表的位置
4.7小结
第5章导出表
5.1导出表的作用
5.1.1分析动态链接库功能
5.1.2获得导出函数地址
5.2构造含导出表的pe文件
5.2.1dll源代码
5.2.2编写def文件
5.2.3编译和链接
5.2.4编写头文件
5.2.5使用导出函数
5.3导出表数据结构
5.3.1导出表定位
5.3.2导出目录image_export_directory
5.3.3导出表实例分析
5.4导出表编程
5.4.1根据编号查找函数地址
5.4.2根据名字查找函数地址
5.4.3遍历导出表
5.5导出表的应用
5.5.1导出函数覆盖
5.5.2导出私有函数
5.6小结
第6章栈与重定位表
6.1栈
6.1.1栈的应用场合
6.1.2call调用中的栈实例分析
6.1.3栈溢出
6.2代码重定位
6.2.1重定位的提出
6.2.2实现重定位的方法
6.2.3重定位编程
6.3pe文件头中的重定位表
6.3.1重定位表定位
6.3.2重定位表项image_base_relocation
6.3.3重定位表的结构
6.3.4遍历重定位表
6.3.5重定位表实例分析
6.4小结
第7章资源表
7.1资源分类
7.1.1位图、光标、图标资源
7.1.2菜单资源
7.1.3对话框资源
7.1.4自定义资源
7.2pe资源表组织
7.2.1资源表的组织方式
7.2.2资源表数据定位
7.2.3资源目录头image_resource_directory
7.2.4资源目录项image_resource_directory_entry
7.2.5资源数据项image_resource_data_entry
7.2.6三级结构中目录项的区别
7.3资源表遍历
7.4pe资源深度解析
7.4.1资源脚本
7.4.2使用peinfo分析资源表
7.4.3菜单资源解析
7.4.4图标资源解析
7.4.5图标组资源解析
7.4.6对话框资源解析
7.5资源表编程
7.5.1更改图标实验
7.5.2提取程序图标实例
7.5.3更改程序图标实例
7.6小结
第8章延迟加载导入表
8.1延迟加载导入的概念及其作用
8.1.1提高应用程序加载速度
8.1.2提高应用程序兼容性
8.1.3提高应用程序可整合性
8.2pe中的延迟加载导入表
8.2.1延迟加载导入表数据定位
8.2.2延迟加载导入描述符image_delay_import_descriptor
8.2.3延迟加载导入表实例分析
8.3延迟加载导入机制详解
8.4延迟加载导入编程
8.4.1修改资源文件pe.rc
8.4.2修改源代码pe.asm
8.5关于延迟加载导入的两个问题
8.5.1异常处理
8.5.2dll的卸载
8.6小结
第9章线程局部存储
9.1windows进程与线程
9.1.1windows体系结构
9.1.2进程与线程创建
9.1.3进程环境块peb
9.1.4线程环境块teb
9.2什么是线程局部存储
9.3动态线程局部存储
9.3.1动态tls实例
9.3.2获取索引tlsalloc
9.3.3按索引取值tlsgetvalue
9.3.4按索引存储tlssetvalue
9.3.5释放索引tlsfree
9.4静态线程局部存储
9.4.1tls定位
9.4.2tls目录结构image_tls_directory32
9.4.3静态tls实例分析
9.4.4tls回调函数
9.4.5测试静态tls下的线程存储初始化回调函数
9.5小结
第10章加载配置信息
10.1何谓加载配置信息
10.2windows结构化异常处理
10.2.1什么是seh
10.2.2windows异常分类
10.2.3内核模式下的异常处理
10.2.4用户模式下的异常处理
10.2.5windowsseh机制解析
10.2.6seh编程实例
10.3pe中的加载配置信息
10.3.1加载配置信息定位
10.3.2加载配置目录image_load_config_directory
10.3.3加载配置信息实例分析
10.4加载配置编程
10.4.1程序源代码分析
10.4.2为pe添加加载配置信息
10.4.3运行测试
10.4.4注册多个异常处理函数示例
10.5小结
第11章动态加载技术
11.1windows虚拟地址空间分配
11.1.1用户态低2gb空间分配
11.1.2核心态高2gb空间分配
11.1.3helloworld进程空间分析
11.2windows动态库技术
11.2.1dll静态调用
11.2.2dll动态调用
11.2.3导出函数起始地址实例
11.3在编程中使用动态加载技术
11.3.1获取kernel32.dll基地址
11.3.2获取getprocaddress地址
11.3.3在代码中使用获取的函数地址编程
11.3.4动态api技术编程实例
11.4小结
第二部分pe进阶
第12章pe变形技术
12.1变形技术的分类
12.1.1结构重叠技术
12.1.2空间调整技术
12.1.3数据转移技术
12.1.4数据压缩技术
12.2变形技术可用的空间
12.2.1文件头部未用的字段
12.2.2大小不固定的数据块
12.2.3因对齐产生的补足空间
12.3pe文件变形原则
12.3.1关于数据目录表
12.3.2关于节表
12.3.3关于导入表
12.3.4关于程序数据
12.3.5关于对齐
12.3.6几个关注的字段
12.4将pe变小的实例helloworldpe
12.4.1源程序helloworld的字节码(2560字节)
12.4.2目标pe文件的字节码(432字节)
12.5打造目标pe的步骤
12.5.1对文件头的处理
12.5.2对代码段的处理
12.5.3对导入表的处理
12.5.4对部分字段值的修正
12.5.5修改后的文件结构
12.5.6修改后的文件分析
12.5.7目标文件更小的实例分析
12.6小结
第13章pe补丁技术
13.1动态补丁
13.1.1进程间的通信机制
13.1.2读写进程内存
13.1.3目标进程枚举
13.1.4执行远程线程
13.2静态补丁
13.2.1整体替换pe文件
13.2.2整体替换dll文件
13.2.3部分修改pe文件
13.3嵌入补丁程序
13.3.1嵌入补丁程序框架
13.3.2嵌入补丁程序编写规则
13.3.3嵌入补丁字节码实例分析
13.4万能补丁码
13.4.1原理
13.4.2源代码
13.4.3字节码
13.4.4运行测试
13.5小结
第14章在pe空闲空间中插入程序
14.1什么是pe空闲空间
14.1.1pe文件中的可用空间
14.1.2获取pe文件可用空间的代码
14.1.3获取pe文件可用空间的测试
14.2添加注册表启动项的补丁程序实例
14.2.1补丁程序的源代码
14.2.2补丁程序的字节码
14.2.3目标pe的字节码
14.3手工打造目标pe的步骤
14.3.1基本思路
14.3.2对代码段的处理
14.3.3对导入表的处理
14.3.4对数据段的处理
14.3.5修改前后pe文件对比
14.4开发补丁工具
14.4.1编程思路
14.4.2数据结构分析
14.4.3运行测试
14.4.4适应性测试实例分析
14.5小结
第15章在pe间隙中插入程序
15.1什么是pe间隙
15.1.1构造间隙一
15.1.2间隙一与参数
15.2插入helloworld的补丁程序实例
15.2.1补丁程序字节码
15.2.2目标pe结构
15.3开发补丁工具
15.3.1编程思路
15.3.2数据结构分析
15.3.3主要代码
15.3.4运行测试
15.4存在绑定导入数据的pe补丁程序实例
15.4.1改进补丁程序
15.4.2修正补丁工具
15.4.3为记事本程序打补丁
15.5小结
第16章在pe新增节中插入程序
16.1新增pe节的方法
16.2在本地建立子目录的补丁程序实例
16.2.1补丁程序源代码
16.2.2目标pe结构
16.3开发补丁工具
16.3.1编程思路
16.3.2为变量赋值
16.3.3构造新文件数据
16.3.4修正字段参数
16.3.5主要代码
16.3.6运行测试
16.4小结
第17章在pe最后一节中插入程序
17.1网络文件下载器补丁程序实例
17.1.1用到的api函数
17.1.2补丁功能的预演代码
17.1.3补丁程序的源代码
17.1.4目标pe结构
17.2开发补丁工具
17.2.1编程思路
17.2.2主要代码
17.2.3运行测试
17.3小结
第三部分pe的应用案例
第18章exe捆绑器
18.1基本思路
18.2exe执行调度机制
18.2.1相关api函数
18.2.2控制进程同步运行实例分析
18.3字节码转换工具hex2db
18.3.1hex2db源代码
18.3.2运行测试
18.4执行调度程序_host.exe
18.4.1主要代码
18.4.2数据结构分析
18.5宿主程序host.exe
18.5.1宿主程序的功能
18.5.2宿主程序的状态
18.5.3遍历文件
18.5.4释放文件
18.5.5宿主程序主函数
18.6exe捆绑器bind.exe
18.6.1绑定列表定位
18.6.2捆绑步骤及主要代码
18.6.3测试运行
18.7小结
第19章软件安装自动化
19.1基本思路
19.2补丁程序patch.exe
19.2.1相关api函数
19.2.2执行线程函数
19.2.3简单测试
19.3消息发送器_message.exe
19.3.1窗口枚举回调函数
19.3.2调用窗口枚举函数
19.3.3向指定窗口发送消息
19.3.4消息发送器源代码
19.3.5测试运行
19.4消息发送器生成工厂messagefactory.exe
19.4.1消息发送函数
19.4.2键盘虚拟码
19.4.3改进的消息发送器实例分析
19.4.4消息发送器生成工厂代码结构
19.4.5代码与数据的定位
19.4.6提取代码字节码
19.5软件安装自动化主程序autosetup.exe
19.5.1主要代码
19.5.2测试运行
19.6小结
第20章exe加锁器
20.1基本思路
20.2免资源文件的窗口程序nores.asm
20.2.1窗口创建函数createwindowex
20.2.2创建用户登录窗口的控件
20.2.3窗口程序源代码
20.3免重定位的窗口程序login.asm
20.4补丁程序patch.asm
20.4.1获取导入库及函数
20.4.2按照补丁框架修改login.asm
20.4.3补丁程序主要代码
20.5附加补丁运行
20.6小结
第21章exe加密
21.1基本思路
21.2加密算法
21.2.1加密算法的分类
21.2.2自定义可逆加密算法实例
21.2.3构造加密基表
21.2.4利用基表测试加密数据
21.3开发补丁工具
21.3.1转移数据目录
21.3.2传递程序参数
21.3.3加密节区内容
21.4处理补丁程序
21.4.1还原数据目录表
21.4.2解密节区内容
21.4.3加载目标dll
21.4.4修正目标iat
21.5小结
第22章pe病毒提示器
22.1基本思路
22.1.1志愿者的选择条件
22.1.2判断病毒感染的原理
22.2手工打造pe病毒提示器
22.2.1编程思路
22.2.2分析目标文件的导入表
22.2.3补丁程序的源代码
22.2.4补丁程序的字节码
22.2.5修正函数地址
22.2.6测试运行
22.3补丁版的pe病毒提示器
22.3.1将提示器写入启动项
22.3.2检测特定位置校验和
22.3.3测试运行
22.4小结
第23章破解pe病毒
23.1病毒保护技术
23.1.1花指令
23.1.2反跟踪技术
23.1.3反调试技术
23.1.4自修改技术
23.1.5注册表项保护技术
23.1.6进程保护技术
23.2pe病毒补丁程序解析
23.2.1病毒特征
23.2.2补丁程序的源代码分析
23.2.3病毒传播测试
23.2.4感染前后pe结构对比
23.3解毒代码的编写
23.3.1基本思路
23.3.2计算病毒代码大小
23.3.3获取原始入口地址
23.3.4修正pe头部的其他参数
23.3.5主要代码
23.3.6运行测试
23.4小结
后记
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价