独辟蹊径的编程思维

独辟蹊径的编程思维

李瑞民, 著

出版社:电子工业出版社

年代:2014

定价:89.0

书籍简介:

自底层到高层,由简单到复杂,分别介绍了从操作系统、共享文件、静态程序文件、无界面程序、有界面程序、B/S 界面、Office 文件、控制嵌入、界面嵌入、程序调用时过滤、网络通信时监听、串口通信时监听、运行的程序、Hook 钩子程序等14 种环境中,进行调用、嗅探、扩展、二次开发的方式,并统称为“拿来主义”的编程技术。这些技术,有些可以单独使用,有些可以组合使用,有些则只、是特定环境下的唯一选择,灵活运用,融会贯通,势必大有裨益。

作者介绍:

李瑞民,工学博士,高级工程师,资深网络安全专家兼高级系统架构师,多年来一直专注于计算机安全技术、网络设备监控与信号监控等领域的研究与应用,对网络攻防、物联网、计算机及设备串口监控、网口监控、SCSI接口监控、电话线接口等设备类监控技术有深刻的认识,并在实践中总结出了各种设备基于接口的统一监控方式。目前拥有发明专利、软件著作权8项,出版和翻译书籍有:《网络扫描技术揭秘》(专业书籍:机械工业出版社出版)、《设备监控技术》(专业书籍:机械工业出版社出版)、《Hacking Exposed Wireless》(外文书翻译:McGraw-Hill books)、《精美一族Photoshop5.5基础》(专业书籍:科学出版社出版),发表专业核心论文数十篇。曾以主要完成人的身份参与过河南省科技厅《基于智能查询的中文海量信息检索系统研究》、《基于IPv6的实时流媒体传输系统》等项目。

书籍目录:

第 1 章绪论1

1.1 “拿来主义”编程技术简介............1

1.1.1 什么是“拿来主义” ..........1

1.1.2 为什么要采用“拿来主义”.............................2

1.2 常用的“拿来主义”编程技术......3

1.3 “拿来主义”编程技术的分类........5

1.3.1 静态分析型的拿来技术......5

1.3.2 功能型的拿来技术.6

1.3.3 输出型的拿来技术.7

1.3.4 嵌入型的拿来技术.8

1.3.5 中间嗅探型的拿来技术......8

1.3.6 控制交互型的拿来技术......9

第 1 部分静态分析型的拿来技术

第 2 章操作系统数据的拿来.........12

2.1 本章的预备知识..............12

2.1.1 进制的表示与转换............12

2.1.2 DOS 下的地址表示...........14

2.1.3 Debug 工具的使用............15

2.2 裸机时代的可用数据......19

2.2.1 裸机的启动过程...19

2.2.2 CMOS 内存中的数据........20

2.2.3 中断与中断向量...25

2.2.4 BIOS 数据区........28

2.2.5 ROM 中的数据.....36

2.3 DOS 中的全局变量.........42

2.3.1 曾经辉煌的DOS..43

2.3.2 DOS 的内存映射..44

2.3.3 DOS 数据区.........46

2.3.4 DOS 的“拿来”实例.......47

2.4 Windows 中的共享数据..49

2.4.1 如日中天的Windows ........49

2.4.2 Windows 中的环境变量....50

VIII 独辟蹊径的编程思维――“拿来主义”编程

2.4.3 Windows 环境变量的意义.52

2.4.4 Windows 环境变量的编程.53

2.4.5 修改Windows 的全局环境变量......................56

2.5 编程实例:基于WinIO 的CMOS 数据读写.............56

2.5.1 程序主界面..........57

2.5.2 程序代码..............57

第 3 章系统共享文件中的拿来 ....61

3.1 操作系统配置文件的拿来............61

3.1.1 对配置文件的读/写...........62

3.1.2 Boot.ini .................65

3.2 目录名称的拿来..............66

3.2.1 与用户名相同的目录名....67

3.2.2 所安装的软件列表............68

3.2.3 与用户相关的特定目录名.68

3.3 数据库访问式的共享......69

3.3.1 ODBC 数据访问方式........69

3.3.2 ADO 数据连接.....82

3.4 注册表的共享.................86

3.4.1 基于注册表访问的API .....86

3.4.2 注册表项的操作...92

3.5 文件级的拿来.................93

3.5.1 网络配置文件.......93

3.5.2 日志文件..............97

3.5.3 Windows 目录自带的音频文件资源.............103

3.6 编程实例1:通过ODBC 对txt 文件进行读/写......108

3.6.1 程序主界面........109

3.6.2 程序代码............109

3.7 编程实例2:通过ADO 对Excel 文件进行读/写.... 112

3.7.1 程序主界面........ 112

3.7.2 程序代码............ 113

第 4 章静态程序文件中资源的拿来 ...................... 115

4.1 常见可执行文件的格式 115

4.1.1 DOS 下的COM 和EXE 文件的格式简介.... 115

4.1.2 Windows 下PE 文件的格式.......................... 118

4.2 VC 软件编程人员眼中的程序资源.......................... 119

4.3 在可执行文件中调整资源..........121

4.3.1 从可执行文件中提取资源.............................121

4.3.2 更换可执行文件中的资源.............................122

4.4 软件汉化与界面调整....122

4.4.1 软件汉化............123

目录IX

4.4.2 软件界面调整.....125

4.5 界面复制.......................126

4.5.1 将可执行文件中的界面复制到工程中..........126

4.5.2 对两个工程之间界面的复制.........................128

第 2 部分功能型的拿来技术

第 5 章无界面程序命令行中的拿来 ......................132

5.1 什么是命令行...............132

5.1.1 常用的DOS 内部命令....134

5.1.2 常用的DOS 外部命令....138

5.2 命令行的组合使用........149

5.2.1 设备文件............149

5.2.2 重定向技术........151

5.2.3 管道技术............155

5.3 命令行的编程技术........156

5.3.1 可嵌入DOS 命令行的几个函数...................156

5.3.2 管道编程的几个函数......161

5.4 编程实例1:使用重定向接收外部程序运行结果...162

5.4.1 程序主界面........162

5.4.2 程序代码............163

5.5 编程实例2:使用管道接收外部程序运行结果......164

5.5.1 程序主界面........164

5.5.2 程序代码............165

第 6 章有界面程序消息式的拿来 ........ 167

6.1 消息机制.......................167

6.1.1 消息的定义........168

6.1.2 消息的队列和非队列模式.............................169

6.1.3 与消息有关的几个函数..170

6.2 Visual C++自带的消息处理工具175

6.2.1 程序界面上的控件..........175

6.2.2 Visual C++下提供的标准控件.......................176

6.2.3 消息查询工具Spy++.......177

6.3 通过消息控制程序........182

6.3.1 与窗口有关的几个函数..182

6.3.2 与消息控制有关的几个函数.........................186

6.4 编程实例:通过消息控制程序..191

6.4.1 程序主界面........191

6.4.2 程序代码............192

X 独辟蹊径的编程思维――“拿来主义”编程

第3 部分输出接收型的拿来技术

第 7 章读取 B/S 界面上输出的数据......................200

7.1 Web 服务器的安装和测试.........201

7.1.1 Web 服务器的安装和验证............................201

7.1.2 检验Web 服务器的效果.205

7.2 基于Web 应用的编程接口........207

7.2.1 CInternetSession 类..........208

7.2.2 CInternetConnection 类....216

7.2.3 CHttpConnection 类.........217

7.2.4 CFtpConnection 类...........218

7.2.5 CInternetFile 类..222

7.2.6 CInternetException 类......224

7.3 编程实例:基于Web 的拿来方式...........................225

7.3.1 原理分析............226

7.3.2 程序主界面........228

7.3.3 程序代码............228

第 8 章对 Office 文件输出的接收操作.................231

8.1 Microsoft Office 简介....232

8.2 输出式的拿来简介........233

8.2.1 COM/DCOM 的概念.......234

8.2.2 AfxOleInit 函数..234

8.2.3 COleVariant 类....235

8.2.4 COleDispatchDriver 类....240

8.3 程序员眼中的Office.....241

8.3.1 Office 的结构框架...........242

8.3.2 Office 组件的导入...........242

8.4 Word 的结构输出..........244

8.4.1 Word 简介...........244

8.4.2 Word 中的要素...244

8.5 Excel 的结构输出..........245

8.5.1 Excel 简介..........246

8.5.2 Excel 中的要素...246

8.6 PowerPoint 的结构输出.247

8.6.1 PowerPoint 简介.248

8.6.2 PowerPoint 中的要素.......248

8.7 输出式的拿来技术在信息安全领域内的应用.........249

8.7.1 数字水印简介.....249

8.7.2 Word 中格式输出类的数字水印...................250

8.7.3 Word 中内容格式的数字水印.......................251

8.8 编程实例1:读取Word 文件中的纯文本内容........252

目录XI

8.8.1 程序主界面........252

8.8.2 程序代码............253

8.9 编程实例2:读写Excel 中的数据..........................254

8.9.1 程序主界面........255

8.9.2 程序代码............255

8.10 编程实例3:控制PPT 的输出258

8.10.1 程序主界面.......258

8.10.2 程序代码..........259

第 4 部分嵌入型的拿来技术

第 9 章控件嵌入式的拿来 ..........264

9.1 ActiveX 技术简介.........264

9.2 在Windows 程序中嵌入ActiveX 控件....................266

9.2.1 设置对ActiveX 控件的支持.........................266

9.2.2 从系统注册的组件中导入要使用的ActiveX 控件..................267

9.2.3 从DLL 文件中导入要使用的ActiveX 控件.268

9.3 编程实例1:嵌入式视频播放器.............................268

9.3.1 播放器编程的简介..........268

9.3.2 VLC 简介...........269

9.3.3 程序主界面........274

9.3.4 程序代码............274

9.4 编程实例2:嵌入式PDF 阅读器............................276

9.4.1 在VC 对PDF 的可视化使用........................276

9.4.2 程序主界面........277

9.4.3 程序代码............278

第 10 章界面嵌入式的拿来........280

10.1 屏幕式的嵌入..............280

10.1.1 图形桌面..........281

10.1.2 实现界面嵌入式要考虑的问题...................283

10.1.3 实现像素级操作主要涉及的API................286

10.1.4 实现桌面级操作主要涉及的API................288

10.1.5 屏幕的截取.......293

10.2 内容式的嵌入..............297

10.2.1 通过IE 调用访问网络地址.........................297

10.2.2 通过嵌入页面方式访问网络地址...............297

10.2.3 通过资源管理器方式访问本地文件系统....298

10.2.4 CHhtmlView 的API.......299

10.3 编程实例1:将程序界面自己程序的一部分进行嵌入....................301

10.3.1 程序主界面.......302

10.3.2 程序代码..........303

XII 独辟蹊径的编程思维――“拿来主义”编程

10.4 编程实例2:嵌入整个Web 页面和资源管理器...306

10.4.1 程序主界面.......307

10.4.2 程序代码..........307

第 5 部分中间嗅探型的拿来技术

第 11 章程序调用时的数据过滤 .............................310

11.1 DLL 文件的意义和用法...........310

11.1.1 DLL 文件的意义........... 311

11.1.2 与DLL 调用相关的函数.............................312

11.1.3 DLL 文件的调用步骤....315

11.2 从EXE 或DLL 文件中找到函数...........................316

11.2.1 Depends 的使用方式.....316

11.2.2 从ICMP.DLL 中抽取函数...........................317

11.2.3 ICMP.DLL 中各函数的用法........................318

11.3 重载DLL 文件............321

11.3.1 DLL 文件重载的原理....321

11.3.2 DLL 文件重载的意义....322

11.4 具有重载特性的DLL 文件创建步骤.....................322

11.4.1 普通DLL 文件的创建步骤.........................323

11.4.2 重载DLL 文件的创建步骤.........................324

11.5 编程实例1:通过ICMP.DLL 制作tracert 命令....325

11.5.1 程序主界面.......326

11.5.2 程序代码..........327

11.6 编程实例2:重载ICMP.DLL 以记录ICMP 协议操作....................330

11.6.1 程序主界面.......330

11.6.2 程序代码..........331

第 12 章网络通信时的数据监听.............................335

12.1 网络通信简介..............336

12.1.1 网络嗅探技术...336

12.1.2 网络协议分析和行为分析...........................336

12.1.3 黑客级别的分析............339

12.2 数据流的截获..............344

12.2.1 单机数据流的获取........344

12.2.2 网络数据流的获取........346

12.3 Socket 编程接口..........348

12.3.1 几个重要的概念............349

12.3.2 Windows Socket 结构....350

12.3.3 Windows socket 转换类函数........................353

12.3.4 Windows socket 通信类函数返回值............357

12.3.5 Windows socket 通信类函数........................359

目录XIII

12.4 编程实例:RAW Socket 嗅探器............................368

12.4.1 程序主界面.......368

12.4.2 程序代码..........369

第 13 章串口通信时的数据监控.............................377

13.1 串口的通信与监听......377

13.1.1 串口简介..........377

13.1.2 串口通信中的“拿来”技术.......................379

13.2 基于VSPE 的串口开发技术....380

13.2.1 VSPE 简介........381

13.2.2 VSPE 的术语....381

13.2.3 VSPE 的串口嗅探功能..386

13.2.4 VSPE 的使用与开发......388

13.2.5 VSPE 的API ....388

13.3 编程实例:串口嗅探器...........392

13.3.1 程序主界面.......393

13.3.2 程序代码..........394

第 6 部分控制交互型的拿来技术

第 14 章从运行的程序中拿来 ...402

14.1 Windows 内存模式......402

14.1.1 Windows 的对内存读写的限制...................403

14.1.2 Windows 的内存管理....404

14.1.3 调试程序简介...407

14.2 基于WinIO 的内存读取编程...408

14.2.1 WinIO 的API ...408

14.2.2 WinIO 的编程...412

14.3 基于API 的程序调试函数.......412

14.3.1 Windows 调试程序的结构...........................413

14.3.2 Windows 调试程序的API ...........................422

14.3.3 Windows 的进程API.....428

14.3.4 Windows 的动态内存API ...........................429

14.3.5 Windows 调试程序的编写方式...................433

14.4 编程实例:读正在执行程序的数据......................434

14.4.1 程序主界面.......435

14.4.2 程序代码..........435

第 15 章 Hook 控制式的拿来.....440

15.1 Hook 简介...................440

15.1.1 什么是Hook.....441

15.1.2 Hook 的运行机制..........442

15.1.3 怎么使用Hook.443

XIV 独辟蹊径的编程思维――“拿来主义”编程

15.2 Hook 函数...................443

15.2.1 SetWindowsHookEx 函数............................444

15.2.2 UnhookWindowsHookEx 函数.....................446

15.2.3 CallNextHookEx 函数....446

15.2.4 回调函数..........447

15.3 Hook 的类型................447

15.3.1 WH_CALLWNDPROC..447

15.3.2 WH_CBT..........448

15.3.3 WM_QUEUESYNC.......452

15.3.4 WH_DEBUG ....452

15.3.5 WH_FOREGROUNDIDLE.......................... 453

15.3.6 WH_GETMESSAGE .....453

15.3.7 WH_HARDWARE.........453

15.3.8 WH_JOURNALRECORD............................453

15.3.9 WH_JOURNALPLAYBACK.......................454

15.3.10 WH_KEYBOARD .......455

15.3.11 WH_MOUSE ..455

15.3.12 WH_MSGFILTER........455

15.3.13 WH_SHELL....456

15.3.14 WH_SYSMSGFILTER.456

15.4 编程实例1:线程Hook 程序编写........................456

15.4.1 程序主界面.......456

15.4.2 程序代码..........457

15.5 编程实例2:全局Hook 程序编写........................459

15.5.1 程序主界面.......459

15.5.2 DLL 程序代码..460

15.5.3 调用程序代码...462

附录A 本书容易混淆概念解析..464

A.1 同名不同义概念...........464

A.2 同义不同名概念...........464

A.3 易混概念......................466

附录B 详解ASCII 码.......468

附录C HTTP 错误返回码...........474

参考文献....479

后记.............481

内容摘要:

当微软必应推出“基于决策”的功能时,谷歌为了保护自己的主导地位,也很快发布了类似的功能。当谷歌试图超越Facebook,在自家社交网络中对信息分享严加控制,并展开各种创新时,Facebook也立刻跟进……
  在发展之快令人咋舌的IT领域,自己计划很久的一个功能,还没等实施,就已经被对手实现并发布……这样的情况已如家常便饭一样让人感觉平淡、波澜不惊。
  在IT界,无论是老牌企业还是新秀公司,无论是编程老鸟,还是编程菜鸟,他们无不在思虑同样的问题:如何能更快、更高效?如何追赶甚至超越对手?有没有更好的方法?
  答案是:“拿来主义”编程技术。正如InfoQ编辑所说:在编程中选择别人现在已有的功能来实现自己所需要的功能,当下已经成为程序员的一项重要“基本功”。
  《独辟蹊径的编程思维——“拿来主义”编程》分别通过静态分析、功能调用、输出接收、界面嵌入、中间嗅探、控制交互等方法详细介绍了多达14种拿来技术。全书集编程思想、技术、实践为一体,融会贯通,灵活运用,势必大有裨益。
  《独辟蹊径的编程思维——“拿来主义”编程》适用于对网络黑客攻防程序开发、反向工程及程序原理分析感兴趣的人员,也适用于监控类和测试类程序开发人员,还可作为高校编程实验用书。
  《独辟蹊径的编程思维——“拿来主义”编程》所涉及的各项技术,除了原理阐述和技术分析之外,均附有完整的程序源代码,这些源代码可免费从均提供完整的网上下载!所以也是各类编程爱好者学习、验证和修改时的宝典!

编辑推荐:

揭秘“拿来主义”编程——当下程序员统筹“时间、质量、成本”项目管理三要素之后的全新编程思路,IT领域的制胜利器。
  怎么拿?如何拿?操作系统变量、共享文件、命令行重定向、B/S界面采集、Office组件、ActiveX控件、程序界面变脸、DLL文件过滤、网络通信嗅探、串口通信嗅探、程序消息管理、Hook技术……14种拿来技术魔术般的揭秘,让你从目瞪口呆,到信心爆棚。
  学会了,怎么练,书中所有技术所用的程序,全部源码级公开,让你迅速上手。

书籍规格:

书籍详细信息
书名独辟蹊径的编程思维站内查询相似图书
9787121223990
如需购买下载《独辟蹊径的编程思维》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)89.0语种简体中文
尺寸18 × 26装帧平装
页数 496 印数

书籍信息归属:

独辟蹊径的编程思维是电子工业出版社于2014.3出版的中图分类号为 TP311.1 的主题关于 程序设计 的书籍。