新書推薦:
《
甲骨文丛书·古代中国的军事文化
》
售價:HK$
99.7
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:HK$
250.7
《
半导体纳米器件:物理、技术和应用
》
售價:HK$
181.7
《
创客精选项目设计与制作 第2版 刘笑笑 颜志勇 严国陶
》
售價:HK$
63.3
《
佛山华家班粤菜传承 华家班59位大厨 102道粤菜 图文并茂 菜式制作视频 粤菜故事技法 佛山传统文化 广东科技
》
售價:HK$
227.7
《
武人琴音(十周年纪念版 逝去的武林系列收官之作 形意拳一门三代:尚云祥、韩伯言、韩瑜的人生故事 凸显百年武人命运)
》
售價:HK$
44.9
《
剑桥斯堪的纳维亚戏剧史(剑桥世界戏剧史译丛)
》
售價:HK$
158.7
《
禅心与箭术:过松弛而有力的生活(乔布斯精神导师、世界禅者——铃木大拙荐)
》
售價:HK$
66.1
|
編輯推薦: |
揭秘“拿来主义”编程——当下程序员统筹“时间、质量、成本”项目管理三要素之后的一项的全新编程思路重要“基本功”+ ,,IT领域的制胜利器。
怎么拿?如何拿?操作系统变量、共享文件、命令行重定向、BS界面采集、Office组件、ActiveX控件、程序界面变脸、DLL文件过滤操作、网络通信嗅探、串口通信嗅探、程序消息管理、Hook技术……14种拿来技术魔术般的揭秘,让你从目瞪口呆,到信心爆棚。
学会了,怎么练,书中所有技术所用的程序,全部源码级公开,让你迅速上手。
首创的开发思路,不是最好的,却没有更好的;不是最全的,却没有更全的。
最实在、最干货的编程大牛工作经验分享!
《独辟蹊径的编程思维——“拿来主义”编程》,每个编程人员都值得拥有的编程技能书。
|
內容簡介: |
当微软必应推出“基于决策”的功能时,谷歌为了保护自己的主导地位,也很快发布了类似的功能。当谷歌试图超越Facebook,在自家社交网络中对信息分享严加控制,并展开各种创新时,Facebook也立刻跟进……
在发展之快令人咋舌的IT领域,自己计划很久的一个功能,还没等实施,就已经被对手实现并发布……这样的情况已如家常便饭一样让人感觉平淡、波澜不惊。
在IT界,无论是老牌企业还是新秀公司,无论是编程老鸟,还是编程菜鸟,他们无不在思虑同样的问题:如何能更快、更高效?如何追赶甚至超越对手?有没有更好的方法?
答案是:“拿来主义”编程技术。正如InfoQ编辑所说:在编程中选择别人现在已有的功能来实现自己所需要的功能,当下已经成为程序员的一项重要“基本功”。
《独辟蹊径的编程思维——“拿来主义”编程》分别通过静态分析、功能调用、输出接收、界面嵌入、中间嗅探、控制交互等方法详细介绍了多达14种拿来技术。全书集编程思想、技术、实践为一体,融会贯通,灵活运用,势必大有裨益。
《独辟蹊径的编程思维——“拿来主义”编程》适用于对网络黑客攻防程序开发、反向工程及程序原理分析感兴趣的人员,也适用于监控类和测试类程序开发人员,还可作为高校编程实验用书。
《独辟蹊径的编程思维——“拿来主义”编程》所涉及的各项技术,除了原理阐述和技术分析之外,均附有完整的程序源代码,这些源代码可免费从均提供完整的网上下载!所以也是各类编程爱好者学习、验证和修改时的宝典!
|
關於作者: |
李瑞民,男,工学博士,高级工程师,资深网络安全专家兼高级系统架构师。多年来一直专注于网络设备监控与信号监控、计算机安全技术等领域的研究与应用,对计算机监控、设备监控、网络攻防、物联网等领域有深刻的认识。目前拥有发明专利、软件著作权8项,出版和翻译的书籍有《网络扫描技术揭秘》、《设备监控技术》、《Hacking Exposed Wireless》等,发表专业核心论文数十篇。
|
目錄:
|
第 1章绪论
1.1 “拿来主义”编程技术简介
1.1.1 什么是“拿来主义”
1.1.2 为什么要采用“拿来主义”
1.2 常用的“拿来主义”编程技术
1.3 “拿来主义”编程技术的分类
1.3.1 静态分析型的拿来技术
1.3.2 功能型的拿来技术
1.3.3 输出型的拿来技术
1.3.4 嵌入型的拿来技术
1.3.5 中间嗅探型的拿来技术
1.3.6 控制交互型的拿来技术
第 1部分静态分析型的拿来技术
第 2章操作系统数据的拿来
2.1 本章的预备知识
2.1.1 进制的表示与转换
2.1.2 DOS下的地址表示
2.1.3 Debug工具的使用
2.2 裸机时代的可用数据
2.2.1 裸机的启动过程
2.2.2 CMOS内存中的数据
2.2.3 中断与中断向量
2.2.4 BIOS数据区
2.2.5 ROM中的数据
2.3 DOS中的全局变量
2.3.1 曾经辉煌的 DOS
2.3.2 DOS的内存映射
2.3.3 DOS数据区
2.3.4 DOS的“拿来”实例
2.4 Windows中的共享数据
2.4.1 如日中天的 Windows
2.4.2 Windows中的环境变量
2.4.3 Windows环境变量的意义
2.4.4 Windows环境变量的编程
2.4.5 修改 Windows的全局环境变量
2.5 编程实例:基于 WinIO的 CMOS数据读写
2.5.1 程序主界面
2.5.2 程序代码
第 3章系统共享文件中的拿来
3.1 操作系统配置文件的拿来
3.1.1 对配置文件的读写
3.1.2 Boot.ini.....
3.2 目录名称的拿来
3.2.1 与用户名相同的目录名
3.2.2 所安装的软件列表
3.2.3 与用户相关的特定目录名
3.3 数据库访问式的共享
3.3.1 ODBC数据访问方式
3.3.2 ADO数据连接
3.4 注册表的共享
3.4.1 基于注册表访问的 API
3.4.2 注册表项的操作
3.5 文件级的拿来
3.5.1 网络配置文件
3.5.2 日志文件
3.5.3 Windows目录自带的音频文件资源
3.6 编程实例 1:通过 ODBC对 txt文件进行读写
3.6.1 程序主界面
3.6.2 程序代码
3.7 编程实例 2:通过 ADO对 Excel文件进行读写
3.7.1 程序主界面
3.7.2 程序代码
第 4章静态程序文件中资源的拿来
4.1 常见可执行文件的格式
4.1.1 DOS下的 COM和 EXE文件的格式简介
4.1.2 Windows下 PE文件的格式
4.2 VC软件编程人员眼中的程序资源
4.3 在可执行文件中调整资源
4.3.1 从可执行文件中提取资源
4.3.2 更换可执行文件中的资源
4.4 软件汉化与界面调整
4.4.1 软件汉化
4.4.2 软件界面调整
4.5 界面复制
4.5.1 将可执行文件中的界面复制到工程中
4.5.2 对两个工程之间界面的复制
第 2部分功能型的拿来技术
第 5章无界面程序命令行中的拿来
5.1 什么是命令行
5.1.1 常用的 DOS内部命令
5.1.2 常用的 DOS外部命令
5.2 命令行的组合使用
5.2.1 设备文件
5.2.2 重定向技术
5.2.3 管道技术
5.3 命令行的编程技术
5.3.1 可嵌入 DOS命令行的几个函数
5.3.2 管道编程的几个函数
5.4 编程实例 1:使用重定向接收外部程序运行结果
5.4.1 程序主界面
5.4.2 程序代码
5.5 编程实例 2:使用管道接收外部程序运行结果
5.5.1 程序主界面
5.5.2 程序代码
第 6章有界面程序消息式的拿来
6.1 消息机制.....
6.1.1 消息的定义
6.1.2 消息的队列和非队列模式
6.1.3 与消息有关的几个函数
6.2 Visual C++自带的消息处理工具
6.2.1 程序界面上的控件
6.2.2 Visual C++下提供的标准控件
6.2.3 消息查询工具 Spy++
6.3 通过消息控制程序.
6.3.1 与窗口有关的几个函数
6.3.2 与消息控制有关的几个函数
6.4 编程实例:通过消息控制程序
6.4.1 程序主界面
6.4.2 程序代码
第 3部分输出接收型的拿来技术
第 7章读取 BS界面上输出的数据
7.1 Web服务器的安装和测试
7.1.1 Web服务器的安装和验证
7.1.2 检验 Web服务器的效果
7.2 基于 Web应用的编程接口
7.2.1 CInternetSession类
7.2.2 CInternetConnection类
7.2.3 CHttpConnection类
7.2.4 CFtpConnection类
7.2.5 CInternetFile类
7.2.6 CInternetException类
7.3 编程实例:基于 Web的拿来方式
7.3.1 原理分析
7.3.2 程序主界面
7.3.3 程序代码
第 8章对 Office文件输出的接收操作
8.1 Microsoft Office简介
8.2 输出式的拿来简介
8.2.1 COMDCOM的概念
8.2.2 AfxOleInit函数
8.2.3 COleVariant类
8.2.4 COleDispatchDriver类
8.3 程序员眼中的 Office
8.3.1 Office的结构框架
8.3.2 Office组件的导入
8.4 Word的结构输出
8.4.1 Word简介
8.4.2 Word中的要素
8.5 Excel的结构输出
8.5.1 Excel简介
8.5.2 Excel中的要素
8.6 PowerPoint的结构输出
8.6.1 PowerPoint简介
8.6.2 PowerPoint中的要素
8.7 输出式的拿来技术在信息安全领域内的应用
8.7.1 数字水印简介
8.7.2 Word中格式输出类的数字水印
8.7.3 Word中内容格式的数字水印
8.8 编程实例 1:读取 Word文件中的纯文本内容
8.8.1 程序主界面
8.8.2 程序代码
8.9 编程实例 2:读写 Excel中的数据
8.9.1 程序主界面
8.9.2 程序代码
8.10 编程实例 3:控制 PPT的输出
8.10.1 程序主界面
8.10.2 程序代码
第 4部分嵌入型的拿来技术
第 9章控件嵌入式的拿来
9.1 ActiveX技术简介
9.2 在 Windows程序中嵌入 ActiveX控件
9.2.1 设置对 ActiveX控件的支持
9.2.2 从系统注册的组件中导入要使用的 ActiveX控件
9.2.3 从 DLL文件中导入要使用的 ActiveX控件
9.3 编程实例 1:嵌入式视频播放器
9.3.1 播放器编程的简介
9.3.2 VLC简介
9.3.3 程序主界面
9.3.4 程序代码
9.4 编程实例 2:嵌入式 PDF阅读器
9.4.1 在 VC对 PDF的可视化使用
9.4.2 程序主界面
9.4.3 程序代码
第 10章界面嵌入式的拿来
10.1 屏幕式的嵌入
10.1.1 图形桌面
10.1.2 实现界面嵌入式要考虑的问题
10.1.3 实现像素级操作主要涉及的 API
10.1.4 实现桌面级操作主要涉及的 API
10.1.5 屏幕的截取.
10.2 内容式的嵌入
10.2.1 通过 IE调用访问网络地址
10.2.2 通过嵌入页面方式访问网络地址
10.2.3 通过资源管理器方式访问本地文件系统
10.2.4 CHhtmlView的 API
10.3 编程实例 1:将程序界面自己程序的一部分进行嵌入
10.3.1 程序主界面
10.3.2 程序代码
10.4 编程实例 2:嵌入整个 Web页面和资源管理器
10.4.1 程序主界面
10.4.2 程序代码
第 5部分中间嗅探型的拿来技术
第 11章程序调用时的数据过滤
11.1 DLL文件的意义和用法
11.1.1 DLL文件的意义
11.1.2与 DLL调用相关的函数
11.1.3 DLL文件的调用步骤
11.2从 EXE或 DLL文件中找到函数
11.2.1 Depends的使用方式
11.2.2从 ICMP.DLL中抽取函数
11.2.3 ICMP.DLL中各函数的用法
11.3重载 DLL文件
11.3.1 DLL文件重载的原理
11.3.2 DLL文件重载的意义
11.4具有重载特性的 DLL文件创建步骤
11.4.1普通 DLL文件的创建步骤
11.4.2重载 DLL文件的创建步骤
11.5编程实例 1:通过 ICMP.DLL制作 tracert命令
11.5.1程序主界面
11.5.2程序代码
11.6编程实例 2:重载 ICMP.DLL以记录 ICMP协议操作
11.6.1程序主界面
11.6.2程序代码
第 12章网络通信时的数据监听
12.1 网络通信简介
12.1.1 网络嗅探技术
12.1.2 网络协议分析和行为分析
12.1.3 黑客级别的分析
12.2 数据流的截获
12.2.1 单机数据流的获取
12.2.2 网络数据流的获取
12.3 Socket编程接口
12.3.1 几个重要的概念
12.3.2 Windows Socket结构
12.3.3 Windows socket转换类函数
12.3.4 Windows socket通信类函数返回值
12.3.5 Windows socket通信类函数
12.4 编程实例:RAW Socket嗅探器
12.4.1 程序主界面
12.4.2 程序代码
第 13章串口通信时的数据监控
13.1 串口的通信与监听
13.1.1 串口简介
13.1.2 串口通信中的“拿来”技术
13.2 基于 VSPE的串口开发技术
13.2.1 VSPE简介
13.2.2 VSPE的术语
13.2.3 VSPE的串口嗅探功能
13.2.4 VSPE的使用与开发
13.2.5 VSPE的 API
13.3 编程实例:串口嗅探器
13.3.1 程序主界面
13.3.2 程序代码
第 6部分控制交互型的拿来技术第
14章从运行的程序中拿来
14.1 Windows内存模式
14.1.1 Windows的对内存读写的限制
14.1.2 Windows的内存管理
14.1.3 调试程序简介
14.2 基于 WinIO的内存读取编程
14.2.1 WinIO的 API
14.2.2 WinIO的编程
14.3 基于 API的程序调试函数
14.3.1 Windows调试程序的结构
14.3.2 Windows调试程序的 API
14.3.3 Windows的进程 API
14.3.4 Windows的动态内存 API
14.3.5 Windows调试程序的编写方式
14.4 编程实例:读正在执行程序的数据
14.4.1 程序主界面
14.4.2 程序代码
第 15章 Hook控制式的拿来
15.1 Hook简介
15.1.1 什么是 Hook
15.1.2 Hook的运行机制
15.1.3 怎么使用 Hook
15.2 Hook函数
15.2.1 SetWindowsHookEx函数
15.2.2 UnhookWindowsHookEx函数
15.2.3 CallNextHookEx函数
15.2.4 回调函数
15.3 Hook 的类型
15.3.1 WH_CALLWNDPROC
15.3.2 WH_CBT
15.3.3 WM_QUEUESYNC
15.3.4 WH_DEBUG
15.3.5 WH_FOREGROUNDIDLE
15.3.6 WH_GETMESSAGE
15.3.7 WH_HARDWARE
15.3.8 WH_JOURNALRECORD
15.3.9 WH_JOURNALPLAYBACK
15.3.10 WH_KEYBOARD
15.3.11 WH_MOUSE
15.3.12 WH_MSGFILTER
15.3.13 WH_SHELL
15.3.14 WH_SYSMSGFILTER
15.4 编程实例1:线程Hook 程序编写
15.4.1 程序主界面.
15.4.2 程序代码
15.5 编程实例2:全局Hook 程序编写
15.5.1 程序主界面
15.5.2 DLL 程序代码
15.5.3 调用程序代码
附录A 本书容易混淆概念解析
A.1 同名不同义概念
A.2 同义不同名概念
A.3 易混概念
附录B 详解ASCII 码
附录C HTTP 错误返回码
参考文献
后记
|
內容試閱:
|
4.5 界面复制
4.3.2节和4.4节只是对第三方软件的界面进行修改和调整,但终究程序仍然是别人的程序,要“拿来”作为自己的界面,还是有诸多问题。而有时则需要在自己的程序界面上,显示一个与第三方程式完全相同的界面,一种简单的办法就是参照第三方程序的界面“比葫芦画瓢”,一个个地绘制出自己界面上的各个元素。还有一种快速的办法,即“界面复制”的办法。
所谓界面复制,就是将一个程序界面上的主要元素都复制到另一个程序的界面上,虽然复制的只是界面上的控件元素,但二者的界面相似度很高,可达到良好的仿真效果。
4.5.1将可执行文件中的界面复制到工程中
在一个VC程序中,各对话框和Form界面之间及各控件元素之间是可以直接复制的,但在不同的VC程序之间则无法复制。因而首要的问题是将两个界面在同一个VC中打开。这个操作并不难,因为后者是自己要编写的程序,即一个工程文件;前者则是以资源的方式打开第三方可执行文件的操作,只是一种打开某文件的方式。前后者之间没有互斥性,因而可以分步操作。
下面假设要编写一个与“计算器”界面一样的程序。首先运行Visual C++,然后按照本书中绝大多数编程实例的方式,新建一个基于对话框的程序Calculator。
|
|