图书介绍

Windows PE权威指南【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

Windows PE权威指南
  • 戚利著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111354185
  • 出版时间:2011
  • 标注页数:658页
  • 文件大小:121MB
  • 文件页数:681页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Windows PE权威指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分PE的原理和基础2

第1章Windows PE开发环境2

1.1开发语言MASM32 2

1.1.1设置开发环境3

1.1.2开发第一个源程序HelloWorld.asm5

1.1.3运行HelloWorld.exe7

1.2调试软件OllyDBG10

1.2.1调试HelloWorld.exe10

1.2.2修改EXE文件字节码16

1.3十六进制编辑软件FlexHex18

1.4破解实例:U盘监控器20

1.5初识PE文件23

1.6小结26

第2章 三个小工具的编写27

2.1构造基本窗口程序27

2.1.1构造窗口界面27

2.1.2编写相关的资源文件28

2.1.3通用程序框架的实现29

2.2 PEDump的实现32

2.2.1编程思路32

2.2.2 PEDump编码34

2.2.3 PEDump代码中的数据结构38

2.2.4运行PEDump39

2.3 PEComp的实现40

2.3.1编程思路41

2.3.2定义资源文件41

2.3.3 PEComp编码41

2.3.4运行PEComp47

2.4 PEInfo的实现47

2.4.1编程思路48

2.4.2 PEInfo编码48

2.4.3运行PEInfo52

2.5小结53

第3章PE文件头54

3.1 PE的数据组织方式54

3.2与PE有关的基本概念58

3.2.1地址58

3.2.2指针60

3.2.3数据目录60

3.2.4节60

3.2.5对齐61

3.2.6 Unicode字符串62

3.3 PE文件结构62

3.3.1 16位系统下的PE结构62

3.3.2 32位系统下的PE结构66

3.3.3程序员眼中的PE结构68

3.4 PE文件头部解析69

3.4.1 DOS MZ头IMAGE_DOS_HEADER69

3.4.2 PE头标识Signature69

3.4.3标准PE头IMAGE_FILE HEADER70

3.4.4扩展PE头IMAGE_ OPTIONAL HEADER3270

3.4.5 PE头IMAGE_NT_HEADERS71

3.4.6数据目录项IMAGE_DATA_DIRECTORY71

3.4.7节表项IMAGE_SECTION_HEADER74

3.5数据结构字段详解74

3.5.1 PE头IMAGE_NT_HEADER的字段75

3.5.2标准PE头IAMGE_FILE_HEADER的字段75

3.5.3扩展PE头IMAGE_OPTIONAL_HEADER32的字段78

3.5.4数据目录项IMAGE_DATA_DIRECTORY的字段87

3.5.5节表项IMAGE_SECTION_HEADER的字段87

3.5.6解析HelloWorld程序的字节码88

3.6 PE内存映像92

3.7 PE文件头编程93

3.7.1 RVA与FOA的转换93

3.7.2数据定位95

3.7.3标志位操作101

3.7.4 PE校验和102

3.8小结104

第4章 导入表105

4.1何谓导入表105

4.2导入函数105

4.2.1 invoke指令分解106

4.2.2导入函数地址107

4.2.3导入函数宿主109

4.3 PE中的导入表112

4.3.1导入表定位112

4.3.2导入表描述符IMAGE_IMPORT_DESCRIPTOR113

4.3.3导入表的双桥结构114

4.3.4导入函数地址表116

4.3.5构造调用同一个DLL文件的多个函数的导入表117

4.4导入表编程121

4.4.1导入表遍历的思路121

4.4.2编写函数_getImportInfo122

4.4.3运行测试124

4.5绑定导入124

4.5.1绑定导入机制124

4.5.2绑定导入数据定位125

4.5.3绑定导入数据结构126

4.5.4绑定导入实例分析127

4.6手工重组导入表128

4.6.1常用注册表API128

4.6.2构造目标指令132

4.6.3 PE头部变化135

4.6.4手工重组136

4.6.5程序实现141

4.6.6思考:关于IAT的连贯性142

4.6.7思考:关于导入表的位置143

4.7小结144

第5章 导出表145

5.1导出表的作用145

5.1.1分析动态链接序功能145

5.1.2获得导出函数地址146

5.2构造含导出表的PE文件146

5.2.1 DLL源代码147

5.2.2编写def文件151

5.2.3编译和链接152

5.2.4编写头文件152

5.2.5使用导出函数152

5.3导出表数据结构155

5.3.1导出表定位155

5.3.2导出目录IMAGE_EXPORT_DIRECTORY156

5.3.3导出表实例分析158

5.4导出表编程160

5.4.1根据编号查找函数地址160

5.4.2根据名字查找函数地址160

5.4.3遍历导出表162

5.5导出表的应用165

5.5.1导出函数覆盖165

5.5.2导出私有函数167

5.6小结169

第6章 栈与重定位表170

6.1栈170

6.1.1栈的应用场合170

6.1.2 call调用中的栈实例分析173

6.1.3栈溢出177

6.2代码重定位181

6.2.1重定位的提出181

6.2.2实现重定位的方法182

6.2.3重定位编程183

6.3 PE文件头中的重定位表189

6.3.1重定位表定位189

6.3.2重定位表项IMAGE_BASE_RELOCATION190

6.3.3重定位表的结构191

6.3.4遍历重定位表192

6.3.5重定位表实例分析195

6.4小结196

第7章 资源表197

7.1资源分类197

7.1.1位图、光标、图标资源199

7.1.2菜单资源199

7.1.3对话框资源200

7.1.4自定义资源201

7.2 PE资源表组织202

7.2.1资源表的组织方式202

7.2.2资源表数据定位203

7.2.3资源目录头IMAGE_RESOURCE_DIRECTORY204

7.2.4资源目录项IMAGE_RESOURCE_DIRECTORY_ENTRY205

7.2.5资源数据项IMAGE_RESOURCE_DATA_ENTRY206

7.2.6三级结构中目录项的区别207

7.3资源表遍历208

7.4 PE资源深度解析213

7.4.1资源脚本213

7.4.2使用PEInfo分析资源表214

7.4.3菜单资源解析216

7.4.4图标资源解析218

7.4.5图标组资源解析223

7.4.6对话框资源解析224

7.5资源表编程228

7.5.1更改图标实验229

7.5.2提取程序图标实例231

7.5.3更改程序图标实例241

7.6小结244

第8章 延迟加载导入表245

8.1延迟加载导入的概念及其作用245

8.1.1提高应用程序加载速度246

8.1.2提高应用程序兼容性246

8.1.3提高应用程序可整合性247

8.2 PE中的延迟加载导入表247

8.2.1延迟加载导入表数据定位247

8.2.2延迟加载导入描述符IMAGE_DELAY_IMPORT_DESCRIPTOR248

8.2.3延迟加载导入表实例分析249

8.3延迟加载导入机制详解251

8.4延迟加载导入编程253

8.4.1修改资源文件pe.rc 253

8.4.2修改源代码pe.asm 253

8.5关于延迟加载导入的两个问题255

8.5.1异常处理255

8.5.2 DLL的卸载255

8.6小结256

第9章 线程局部存储257

9.1 Windows进程与线程257

9.1.1 Windows体系结构257

9.1.2进程与线程创建258

9.1.3进程环境块PEB262

9.1.4线程环境块TEB264

9.2什么是线程局部存储265

9.3动态线程局部存储267

9.3.1动态TLS实例267

9.3.2获取索引TlsAlloc274

9.3.3按索引取值TlsGetValue275

9.3.4按索引存储T1sSetValue275

9.3.5释放索引T1sFree275

9.4静态线程局部存储276

9.4.1 TLS定位277

9.4.2 TLS目录结构IMAGE_TLS_DIRECTORY32278

9.4.3静态TLS实例分析278

9.4.4 TLS回调函数279

9.4.5测试静态TLS下的线程存储初始化回调函数280

9.5小结281

第10章 加载配置信息282

10.1何谓加载配置信息282

10.2 Windows结构化异常处理282

10.2.1什么是SEH283

10.2.2 Windows异常分类285

10.2.3内核模式下的异常处理286

10.2.4用户模式下的异常处理289

10.2.5 Windows SEH机制解析294

10.2.6 SEH编程实例295

10.3 PE中的加载配置信息299

10.3.1加载配置信息定位300

10.3.2加载配置目录IMAGE LOAD CONFIG DIRECTORY300

10.3.3加载配置信息实例分析302

10.4加载配置编程303

10.4.1程序源代码分析304

10.4.2为PE添加加载配置信息306

10.4.3运行测试306

10.4.4注册多个异常处理函数示例307

10.5小结309

第11章 动态加载技术310

11.1 Windows虚拟地址空间分配310

11.1.1用户态低2GB空间分配310

11.1.2核心态高2GB空间分配311

11.1.3 HelloWorld进程空间分析312

11.2 Windows动态库技术313

11.2.1 DLL静态调用313

11.2.2 DLL动态调用314

11.2.3导出函数起始地址实例314

11.3在编程中使用动态加载技术315

11.3.1获取kernel32.dll基地址316

11.3.2获取GetProcAddress地址322

11.3.3在代码中使用获取的函数地址编程325

11.3.4动态API技术编程实例327

11.4小结330

第二部分PE进阶332

第12章PE变形技术332

12.1变形技术的分类332

12.1.1结构重叠技术332

12.1.2空间调整技术333

12.1.3数据转移技术334

12.1.4数据压缩技术338

12.2变形技术可用的空间341

12.2.1文件头部未用的字段341

12.2.2大小不固定的数据块343

12.2.3因对齐产生的补足空间344

12.3 PE文件变形原则344

12.3.1关于数据目录表344

12.3.2关于节表344

12.3.3关于导入表344

12.3.4关于程序数据345

12.3.5关于对齐345

12.3.6几个关注的字段345

12.4将PE变小的实例HelloWorldPE346

12.4.1源程序HelloWorld的字节码(2560字节)346

12.4.2目标PE文件的字节码(432字节)348

12.5打造目标PE的步骤349

12.5.1对文件头的处理349

12.5.2对代码段的处理350

12.5.3对导入表的处理351

12.5.4对部分字段值的修正351

12.5.5修改后的文件结构352

12.5.6修改后的文件分析353

12.5.7目标文件更小的实例分析354

12.6小结359

第13章PE补丁技术360

13.1动态补丁360

13.1.1进程间的通信机制360

13.1.2读写进程内存363

13.1.3目标进程枚举368

13.1.4执行远程线程373

13.2静态补丁379

13.2.1整体替换PE文件379

13.2.2整体替换DLL文件385

13.2.3部分修改PE文件387

13.3嵌入补丁程序388

13.3.1嵌入补丁程序框架388

13.3.2嵌入补丁程序编写规则394

13.3.3嵌入补丁字节码实例分析395

13.4万能补丁码396

13.4.1原理396

13.4.2源代码397

13.4.3字节码399

13.4.4运行测试399

13.5小结399

第14章在PE空闲空间中插入程序400

14.1什么是PE空闲空间400

14.1.1 PE文件中的可用空间400

14.1.2获取PE文件可用空间的代码400

14.1.3获取PE文件可用空间的测试403

14.2添加注册表启动项的补丁程序实例403

14.2.1补丁程序的源代码403

14.2.2补丁程序的字节码404

14.2.3目标PE的字节码405

14.3手工打造目标PE的步骤408

14.3.1基本思路408

14.3.2对代码段的处理408

14.3.3对导入表的处理413

14.3.4对数据段的处理418

14.3.5修改前后PE文件对比421

14.4开发补丁工具422

14.4.1编程思路422

14.4.2数据结构分析423

14.4.3运行测试427

14.4.4适应性测试实例分析430

14.5小结434

第15章在PE间隙中插入程序435

15.1什么是PE间隙435

15.1.1构造间隙一436

15.1.2间隙一与参数436

15.2插入HelloWorld的补丁程序实例437

15.2.1补丁程序字节码437

15.2.2目标PE结构439

15.3开发补丁工具439

15.3.1编程思路439

15.3.2数据结构分析440

15.3.3主要代码442

15.3.4运行测试447

15.4存在绑定导入数据的PE补丁程序实例448

15.4.1改进补丁程序448

15.4.2修正补丁工具450

15.4.3为记事本程序打补丁456

15.5小结457

第16章在PE新增节中插入程序458

16.1新增PE节的方法458

16.2在本地建立子目录的补丁程序实例458

16.2.1补丁程序源代码459

16.2.2目标PE结构464

16.3开发补丁工具465

16.3.1编程思路465

16.3.2为变量赋值466

16.3.3构造新文件数据466

16.3.4修正字段参数466

16.3.5主要代码467

16.3.6运行测试475

16.4小结475

第17章在PE最后一节中插入程序476

17.1网络文件下载器补丁程序实例476

17.1.1用到的API函数476

17.1.2补丁功能的预演代码482

17.1.3补丁程序的源代码484

17.1.4目标PE结构485

17.2开发补丁工具486

17.2.1编程思路486

17.2.2主要代码487

17.2.3运行测试490

17.3小结491

第三部分 PE的应用案例494

第18章EXE捆绑器494

18.1基本思路494

18.2 EXE执行调度机制495

18.2.1相关API函数495

18.2.2控制进程同步运行实例分析499

18.3字节码转换工具hex2db500

18.3.1 hex2db源代码500

18.3.2运行测试507

18.4执行调度程序_host.exe508

18.4.1主要代码508

18.4.2数据结构分析510

18.5宿主程序host.exe511

18.5.1宿主程序的功能511

18.5.2宿主程序的状态511

18.5.3遍历文件512

18.5.4释放文件514

18.5.5宿主程序主函数517

18.6 EXE捆绑器bind.exe517

18.6.1绑定列表定位517

18.6.2捆绑步骤及主要代码518

18.6.3测试运行523

18.7小结524

第19章 软件安装自动化525

19.1基本思路525

19.2补丁程序patch.exe525

19.2.1相关API函数526

19.2.2执行线程函数526

19.2.3简单测试528

19.3消息发送器_Message.exe529

19.3.1窗口枚举回调函数529

19.3.2调用窗口枚举函数530

19.3.3向指定窗口发送消息531

19.3.4消息发送器源代码532

19.3.5测试运行535

19.4消息发送器生成工厂MessageFactory.exe535

19.4.1消息发送函数535

19.4.2键盘虚拟码537

19.4.3改进的消息发送器实例分析540

19.4.4消息发送器生成工厂代码结构542

19.4.5代码与数据的定位544

19.4.6提取代码字节码545

19.5软件安装自动化主程序AutoSetup.exe548

19.5.1主要代码548

19.5.2测试运行552

19.6小结554

第20章EXE加锁器555

20.1基本思路555

20.2免资源文件的窗口程序nores.asm556

20.2.1窗口创建函数CreateWindowEx556

20.2.2创建用户登录窗口的控件558

20.2.3窗口程序源代码558

20.3免重定位的窗口程序 login.asm562

20.4补丁程序patch.asm570

20.4.1获取导入库及函数570

20.4.2按照补丁框架修改login.asm571

20.4.3补丁程序主要代码572

20.5附加补丁运行573

20.6小结575

第21章EXE加密576

21.1基本思路576

21.2加密算法577

21.2.1加密算法的分类577

21.2.2自定义可逆加密算法实例578

21.2.3构造加密基表579

21.2.4利用基表测试加密数据581

21.3开发补丁工具582

21.3.1转移数据目录582

21.3.2传递程序参数585

21.3.3加密节区内容587

21.4处理补丁程序588

21.4.1还原数据目录表588

21.4.2解密节区内容590

21.4.3加载目标DLL592

21.4.4修正目标IAT594

21.5小结595

第22章PE病毒提示器596

22.1基本思路596

22.1.1志愿者的选择条件596

22.1.2判断病毒感染的原理597

22.2手工打造PE病毒提示器597

22.2.1编程思路597

22.2.2分析目标文件的导入表598

22.2.3补丁程序的源代码601

22.2.4补丁程序的字节码608

22.2.5修正函数地址609

22.2.6测试运行610

22.3补丁版的PE病毒提示器611

22.3.1将提示器写入启动项611

22.3.2检测特定位置校验和612

22.3.3 测试运行615

22.4小结617

第23章 破解PE病毒618

23.1病毒保护技术618

23.1.1花指令619

23.1.2反跟踪技术620

23.1.3反调试技术621

23.1.4自修改技术624

23.1.5注册表项保护技术625

23.1.6进程保护技术627

23.2 PE病毒补丁程序解析632

23.2.1病毒特征633

23.2.2补丁程序的源代码分析633

23.2.3病毒传播测试648

23.2.4感染前后PE结构对比650

23.3解毒代码的编写650

23.3.1基本思路651

23.3.2计算病毒代码大小651

23.3.3获取原始入口地址652

23.3.4修正PE头部的其他参数652

23.3.5主要代码653

23.3.6运行测试656

23.4小结657

后记658

热门推荐