成功加入购物车
图书条目标准图
戚利 著 / 机械工业出版社 / 2011-10 / 平装
售价 ¥ 198.00
品相 八五品
优惠 满包邮
延迟发货说明
上书时间2024-01-17
卖家超过10天未登录
Windows PE权威指南:剖析Windows PE文件格式的原理及编程技术
内容全面,详尽地剖析了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小结 后记
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30