自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gary's Blog --- A C++ programmer

Welcome to Gary's blog! Thank you!

  • 博客(23)
  • 资源 (27)
  • 收藏
  • 关注

转载 各种排序算法的总结和比较【转帖】

1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4) 对两边利用递归排序数列。快速排序比大部分排序算法都要快。尽管我们可以在某

2009-09-22 16:06:00 913

原创 直接选择排序 C代码

void StraightSelectionSort(int array[], unsigned int n){ /* 注:关键字值类型为int,数组的索引是从0开始 1. 初始状态无序区为array【0, n - 1】,有序区为空。 2. 第1趟排序从array【0, n - 1】中找到下标为k的关键字最小值,把array【k】和 array【0】交换。现在无序区为a

2009-09-22 16:02:00 4051

转载 图及其算法复习(Java实现) 一:存储结构,深度优先周游,广度优先周游

原文地址:http://www.blogjava.net/javacap/archive/2007/12/14/167764.html一 图的基本概念及存储结构图G是由顶点的有穷集合,以及顶点之间的关系组成,顶点的集合记为V,顶点之间的关系构成边的集合EG=(V,E).说一条边从v1,连接到v2,那么有v1Ev2(E是V上的一个关系)《=》∈E.图有有向图,无向图之分,无向图的一条边相当于有向

2009-09-22 09:24:00 2178

转载 排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序

原文地址:http://www.blogjava.net/javacap/archive/2007/12/14/167618.html 六 归并排序算法思想是每次把待排序列分成两部分,分别对这两部分递归地用归并排序,完成后把这两个子部分合并成一个序列。归并排序借助一个全局性临时数组来方便对子序列的归并,该算法核心在于归并。Code highlighting produced by

2009-09-22 09:18:00 861

原创 归并排序算法 C代码实现

合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路

2009-09-18 11:02:00 3390 2

原创 cygwin下编译ffmpeg ffserver的编译

网上很多是在mingw/msys环境下编译ffmpeg的。由于mingw/msys环境编译不处ffserver。 这里说说我在cygwin下编译的过程和问题。1、首先安装cygwin;2、下载ffmpeg源码包:http://ffmpeg.mplayerhq.hu/download.html(此地址下载需要SVN)http://www.bairuitech.com/html/ruanj

2009-09-16 09:56:00 10907 5

转载 【转】ffserver和ffmpeg配合完成的实时流媒体服务

ffmpeg和ffserver配合使用可以实现实时的流媒体服务,这里实时的数据来自摄像头,如果考虑到应用程序和网络状况,这里客户端看到的画面还是会落后与摄像头本地获取的画面,最糟糕时甚至看不到画面(扯远了),这里我们关注的是ffmpeg和ffserver之间是如何配合工作的,了解了他们之间的关系,对个别问题也能有的放矢。ffserver先于ffmpeg启动,它在启动的时候需要加参数-f指定

2009-09-15 14:59:00 13317

转载 MinGW下简单编译FFmpeg(详细步骤)

2009.03.31补充:ffmpeg-0.5的动态库编译。增加5.2步。2009.04.18补充:加入libamr库,支持amr格式解码。参见第14步。2009.07.13补充:加入libmp3lame库,支持MP3编码。参见第15步。2009.07.14补充:加入faac及faad支持。参见第16步。2009.07.28补充:设置Msys的字体及背景。参见第17步。2009

2009-09-15 13:34:00 2618

转载 怎么样在C/C++中调用Java

Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少。怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢?其实现在很多流行的开发环境例如JBuilder、Eclipse都是使用纯Java开发的集成环境。这些集成环境启动的时候并不会打开一个命令窗

2009-09-14 15:03:00 652

原创 【转】几种常见的排序算法之比较

对常见的这几种排序算法的练习,对我们的思路的规范化是很好的。学习前人是如何优化算法节约时间和空间的。   我们所练习的排序主要是内部排序,所谓内部排序,就是整个排序过程都在内存进行的排序,称为内部排序;反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序。内排序适用于记录个数不是很多的小文件,而外排序则适用于记录个数太多,不能一次性放人内存的大文件。   对排序算法的分析可以从以下

2009-09-10 16:30:00 1754

原创 几种排序算法的比较

 一、引言排序算法,是计算机编程中的一个常见问题。在日常的数据处理中,面对纷繁的数据,我们也许有成百上千种要求,因此只有当数据经过恰当的排序后,才能更符合用户的要求。因此,在过去的数十载里,程序员们为我们留下了几种经典的排序算法,他们都是智慧的结晶。本文将带领读者探索这些有趣的排序算法,其中包括介绍排序算法的某些基本概念以及几种常见算法,分析这些算法的时间复杂度,同时在最后将介绍我们独创的

2009-09-10 16:22:00 4859

转载 希尔排序算法--过程输出

转一段代码,帮助理解Shell排序 #include #include #define ARRAY_LENGTH 9void shellsort(int v[], int n);void arrayPrintf(int v[], int n);void traceShellsort(int v[], int n);int traceOut(int n, int ga

2009-09-10 14:40:00 1192

原创 几种排序算法的实现代码

本程序在VC6.0下测试通过。具体实现见代码。 #include using namespace std;/* ============================================================================= 1、稳定排序和非稳定排序 简单地说就是所有相等的数经过某种排序

2009-09-09 17:39:00 4124 3

转载 【转帖】视频聊天网站的研究、发展以及趋势

 摘要:  此文讲述了视频聊天网站相关的技术、发展过程以及未来的发展趋势。我长时间从事外包业务开发和技术开发的,从客户那里了解到了很多的视频聊天网站相关的需求,经过自己长时间对视频聊天网站运营模式、盈利模式、系统架构以及相关技术的研究,写下这篇文章。团林网络现在已经推出了自己的以TLCHAT视频聊天系统为首的视频聊天应用,以及未来将以视频为主线进行产品研发。希望通过写下这篇文章,一来是整理

2009-09-09 10:05:00 1440

转载 【转】流媒体技术简介合集

一.以Action Script 3.0(简称AS)开发Browser Player时,需要用NetStream,但现在NetStream.play只支持Http和File两种协议。上网检查youtube,tudou和youku,发现他们用的播放协议也都是Http。而以Flash Media Server(简称FMS)或Red5作为流媒体服务器时,它们提供的是RTMP协议,且这两种流媒体服务器是专

2009-09-08 17:46:00 3293

转载 【转】RTP/RTCP流媒体服务器技术研究

转自:http://www.chinavideo.org/index.php?option=com_content&task=view&sectionid=2&catid=7&id=185&Itemid=5  1 引言  随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道的大多是利用现有的流媒体服

2009-09-08 16:52:00 1159

转载 如何架设流媒体服务器

一、前言 随着越来越多的朋友开始选择ADSL、Cable Modem或FTTB+ LAN作为首要的上网方式,宽频时代即将到来,这使我们“宽频 KTV、影音聊天室、线上电影院、远程教育”的梦想即将成为现实,而与其密切相关的“流媒体(Streaming Media)”也成了许多人谈论的热门话题,因为“流媒体”正是实现这些宽频应用的技术动力。 宽频时代的到来还使得网民们不再满足于仅仅作为一项服务

2009-09-08 15:41:00 1766

转载 Flash多媒体服务器的优势与应用

本文转自http://www.chinavideo.org/index.php?option=com_content&task=view&sectionid=2&catid=34&id=301&Itemid=5  本文将介绍利用Flash MX和Flash Communication ServerMX构建多媒体服务器的方法。       多媒体服务器现状      1.几种常见的多媒体

2009-09-07 16:42:00 988

转载 RTSP协议与HTTP协议

 一。RTSP协议简介  流媒体技术是一系列的网络协议的集合,包括:  1. 实时传输协议RTP(Real-time Transport protocol)  2. 实时传输控制协议RTCP(Real-time Transport Control protocol)  3. 实时流协议RTSP(Real Time Streaming protocol)  4. 资源预留协议RSVP(Resourc

2009-09-07 16:30:00 6830 4

转载 基于RTSP协议流媒体服务器的实现

【转】 基于RTSP协议流媒体服务器的实现 RTSP,实时流协议,是一个C/S多媒体节目协议,它可以控制流媒体数据在IP网络上的发送,同时提供用于音频和视频流的“VCR模式”远程控制功能,如停止、快进、快退和定位。同时RTSP又是一个应用层协议,用来与诸如RTP、RSVP等更低层的协议一起,提供基于Internet的整套流化服务。基于RTSP协议流媒体服务器的实现方案可以让流媒体在IP上自由翱

2009-09-07 16:29:00 9117

转载 安装和使用ffmpeg转换视频为flv文件

1、环境winxp-sp2下:从 http://ffdshow.faireal.net/mirror/ffmpeg/ 下载最新版本的 FFMpeg.exe直接用就行(须rar解压)。 以下的东西是为对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等)转换用的,从http://mediacoder.sourceforge.net/download_zh.htm下载最

2009-09-07 16:23:00 2172

转载 【课本】二叉树前序、中序、后序三种遍历的非递归算法

1.先序遍历非递归算法void PreOrderUnrec(Bitree *t){ Stack s; StackInit(s); Bitree *p=t; while (p!=NULL || !StackEmpty(s)) { while (p!=NULL) //遍历左子树

2009-09-02 10:52:00 7353

转载 B+树的结构和部分操作的实现

1、B+树索引的总体结构①B+树索引是一个多级索引,但是其结构不同于多级顺序索引;②B+树索引采用平衡树结构,即每个叶结点到根的路径长度都相同;③每个非叶结点有到n个子女,n对特定的树是固定的;④B+树的所有结点结构都相同,它最多包含n-1个搜索码值K1、K2、…、Kn-1,以及n个指针P1、P2、…、Pn,每个结点中的搜索码值按次序存放,即如果i图1所示。

2009-09-01 16:56:00 1173

source insight3.5汉化注册版 (官方安装文件+注册码)

SourceInsight是一款非常好用的适合撰写如C/C++或Java等程序语言的编辑器,可以自动列出程序的变量,量数等。 文件包含注册码和汉化版,官方版 也可自己从官方下,然后使用压缩包中的注册码注册即可

2010-07-28

Beginning_Linux_Programming_4th_Edition.pdf.tar.gz

Beginning_Linux_Programming_4th_Edition.pdf.tar.gz 这个不用多说吧

2010-07-20

Inno Setup中文帮助

Inno Setup 5.0.7中文帮助 Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。 关键功能: ★ 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003, XP,Me,NT 4.0 (不需要服务包)。 ★ 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表。同时也 支持磁盘延伸。 ★ 标准的 Windows 2000/XP 样式向导界面。 ★ 定制安装类型,例如:完整安装,最小安装,自定义安装。 ★ 完整的卸载功能。 ★ 文件安装: 包括完全的“压缩”支持,bzip2 和 7-Zip LZMA 文件压缩。安装程序可以比较文件版 本信息,替换正在使用的文件,使用共享文件计数,注册 DLL/OCX 和类型库,以及安装 字体。 ★ 可以在任意地方创快捷方式建,包括开始菜单和桌面。 ★ 创建注册表和 .INI 项目。 ★ 完整的 Pascal 脚本引擎。 ★ 支持 multilingualLanguagessection 安装。 ★ 支持密码和加密安装。 ★ 后台安装和后台卸载。 ★ 全部源代码公开 (Borland Delphi 2.0-5.0)。

2010-07-08

Linux C 函数 使用手册

Linux C 函数 使用手册 Linux C 函数手册chm版,方便大家查询函数,还有例程。

2010-07-05

天书夜读:从汇编语言到Windows内核编程(完整版 二)

总共20多兆,太大了,权限不够,一次上传不了。 第一个包:http://download.csdn.net/source/2517241 入手篇 熟悉汇编   本书的第一部分,将帮助读者消除对汇编的恐惧,熟悉汇编。本部分包括第1~3章。稍显枯燥的是,它们和Windows内核无关,是纯C语言与汇编语言的关系的章节。如果读者已经精通汇编语言,并能顺利阅读汇编代码,请直接跳过本部分。   第1章 汇编指令与C语言 2   1.1 上机建立第一个工程 4   1.1.1 用Visual Studio创建工程 4   1.1.2 用Visual Studio查看汇编代码 5   1.2 简要复习常用的汇编指令 6   1.2.1 堆栈相关指令 6   1.2.2 数据传送指令 7   1.2.3 跳转与比较指令 8   1.3 C函数的参数传递过程 9   第2章 C语言的流程和处理 14   2.1 C语言的循环反汇编 15   2.1.1 for循环 15   2.1.2 do循环 16   2.1.3 while循环 17   2.2 C语言判断与分支的反汇编 18   2.2.1 if-else判断分支 18   2.2.2 switch-case判断分支 19   2.3 C语言的数组与结构 22   2.4 C语言的共用体和枚举类型 24   第3章 练习反汇编C语言程序 26   3.1 算法的反汇编 27   3.1.1 算法反汇编代码分析 27   3.1.2 算法反汇编阅读技巧 28   3.2 发行版的反汇编 29   3.3 汇编反C语言练习 33   基础篇 内核编程   本书的第二部分,是编写Windows内核程序编程方法的基础。本部分包括第4~7章,如果读者对Windows内核编程已经有一定的了解,可以跳过本部分;如果读者从未接触过Windows内核编程,本部分将指导读者开始Windows内核编程,学会使用WDK,并熟悉内核编程的习惯与方法。   第4章 内核字符串与内存 38   4.1 字符串的处理 39   4.1.1 使用字符串结构 39   4.1.2 字符串的初始化 41   4.1.3 字符串的拷贝 42   4.1.4 字符串的连接 42   4.1.5 字符串的打印 43   4.2 内存与链表 45   4.2.1 内存的分配与释放 45   4.2.2 使用LIST_ENTRY 46   4.2.3 使用长长整型数据 49   4.2.4 使用自选锁 50   第5章 文件与注册表操作 52   5.1 文件操作 53   5.1.1 使用OBJECT_ATTRIBUTES 53   5.1.2 打开和关闭文件 54   5.1.3 文件读/写操作 58   5.2 注册表操作 60   5.2.1 注册表键的打开 60   5.2.2 注册表值的读 62   5.2.3 注册表值的写 65   第6章 时间与线程 67   6.1 时间与定时器 68   6.1.1 获得当前滴答数 68   6.1.2 获得当前系统时间 69   6.1.3 使用定时器 70   6.2 线程与事件 73   6.2.1 使用系统线程 73   6.2.2 在线程中睡眠 75   6.2.3 使用同步事件 76   第7章 驱动、设备与请求 79   7.1 驱动与设备 80   7.1.1 驱动入口与驱动对象 80   7.1.2 分发函数和卸载函数 80   7.1.3 设备与符号链接 82   7.1.4 设备的安全创建 83   7.1.5 设备与符号链接的用户相关性 85   7.2 请求处理 86   7.2.1 IRP与IO_STACK_LOCATION 86   7.2.2 打开与关闭请求的处理 88   7.2.3 应用层信息传入 89   7.2.4 驱动层信息传出 91   探索篇 研究内核   本书的第三部分,开始探索Windows内核程序,并尝试阅读反汇编代码作为指引。本部分包括第8~10章。如果读者对Windows内核编程已经有一定的了解,这一部分会比较有趣;如果读者从未接触过Windows内核编程,读者应该先学习第二部分。能自己编写内核程序并不意味着可以读懂内核,虽然反过来是一定成立的。读懂别人编写的没有代码的程序,比自己编写更困难一些,但的确是值得的。   第8章 进入Windows内核 96   8.1 开始Windows内核编程 97   8.1.1 内核编程的环境准备 97   8.1.2 用C语言写一个内核程序 99   8.2 学习用WinDbg进行调试 102   8.2.1 软件的准备 102   8.2.2 设置Windows XP调试执行 103   8.2.3 设置VMWare虚拟机调试 104   8.2.4 设置被调试机为Vista的情况 105   8.2.5 设置Windows内核符号表 106   8.2.6 调试例子diskperf 106   8.3 认识内核代码函数调用方式 107   8.4 尝试反写C内核代码 111   8.5 如何在代码中寻找需要的信息 113   第9章 用C++编写的内核程序 117   9.1 用C++开发内核程序 118   9.1.1 建立一个C++的内核工程 118   9.1.2 使用C接口标准声明 119   9.1.3 使用类静态成员函数 120   9.1.4 实现new操作符 121   9.2 开始阅读一个反汇编的类 122   9.2.1 new操作符的实现 122   9.2.2 构造函数的实现 124   9.3 了解更多的C++特性 126   第10章 继续探索Windows内核 131   10.1 探索Windows已有内核调用 132   10.2 自己实现XP的新调用 135   10.2.1 对照调试结果和数据结构 135   10.2.2 写出C语言的对应代码 137   10.3 没有符号表的情况 138   10.4 64位操作系统下的情况 141   10.4.1 分析64位操作系统的调用 143   10.4.2 深入了解64位内核调用参数传递 145   深入篇 修改内核   这是本书的第四部分。读者已经尝试过探索Windows内核程序,并尝试阅读反汇编代码。那么接下来,必须掌握修改内核的方法。每一个Windows内核程序,都可以看做Windows内核本身的一个“补丁”。有时只需要独立存在,就能起到它的作用;有时却必须对已有的内核二进制代码进行部分修改。本部分包括第11~13章,主要介绍的是内核Hook。   第11章 机器码与反汇编引擎 150   11.1 了解Intel的机器码 151   11.1.1 可执行指令与数据 151   11.1.2 单条指令的组成 152   11.1.3 MOD-REG-R/M的组成 155   11.1.4 其他的组成部分 157   11.2 反汇编引擎XDE32基本数据结构 159   11.3 反汇编引擎XDE32具体实现 162   第12章 CPU权限级与分页机制 166   12.1 Ring0和Ring3权限级 167   12.2 保护模式下的分页内存保护 169   12.3 分页内存不可执行保护 172   12.3.1 不可执行保护原理 172   12.3.2 不可执行保护的漏洞 173   12.4 权限级别的切换 177   12.4.1 调用门及其漏洞 178   12.4.2 sysenter和sysexit指令 181   第13章 开发Windows内核Hook 186   13.1 XP下Hook系统调用IoCallDriver 187   13.2 Vista下IofCallDriver的跟踪 189   13.3 Vista下inline hook 193   13.3.1 写入跳转指令并拷贝代码 193   13.3.2 实现中继函数 196   实战篇 实际开发   实战部分是本书最深入和复杂的一部分,包括第14~17章。为了让前面练习的成果,在实际应用中产生价值,在这部分我们补充更多的理论知识并尝试用它们去做一点什么。这一部分包括指令分析、硬件基础知识、内核Hook的实际开发练习,以及将完成一个用到内核Hook的有趣的实例,这个实例有助于计算机阻挡各种病毒和木马的侵袭。   此外,本部分还包括特殊的一章,涉及如何巧妙地编写代码,来防止被其他不受欢迎的读者阅读。这与本书的主旨完全相反,正所谓物极必反。   第14章 反病毒、木马实例开发 200   14.1 反病毒、木马的设想 201   14.2 开发内核驱动 204   14.2.1 在内核中检查可执行文件 204   14.2.2 在内核中生成设备接口 208   14.2.3 在内核中等待监控进程的响应 210   14.3 开发监控进程 216   14.4 本软件进一步展望 218   第15章 Rootkit与HIPS 220   15.1 Rootkit为何很重要 222   15.2 Rootkit如何逃过检测 224   15.3 HIPS如何检测Rootkit 234   第16章 手写指令保护代码 237   16.1 混淆字符串 238   16.2 隐藏内核函数 244   16.3 混淆流程与数据操作 251   16.3.1 混淆函数出口 251   16.3.2 插入有意义的花指令 253   第17章 用VMProtect保护代码 258   17.1 安装VMProtect 259   17.2 使用VMProtect 261   17.3 查看VMProtect效果 267   参考文献 270

2010-07-05

天书夜读:从汇编语言到Windows内核编程(完整版一)

总共20多兆,太大了,权限不够,一次上传不了。 总共2个包,这是第一个包 第二个包:http://download.csdn.net/source/2517250 入手篇 熟悉汇编   本书的第一部分,将帮助读者消除对汇编的恐惧,熟悉汇编。本部分包括第1~3章。稍显枯燥的是,它们和Windows内核无关,是纯C语言与汇编语言的关系的章节。如果读者已经精通汇编语言,并能顺利阅读汇编代码,请直接跳过本部分。   第1章 汇编指令与C语言 2   1.1 上机建立第一个工程 4   1.1.1 用Visual Studio创建工程 4   1.1.2 用Visual Studio查看汇编代码 5   1.2 简要复习常用的汇编指令 6   1.2.1 堆栈相关指令 6   1.2.2 数据传送指令 7   1.2.3 跳转与比较指令 8   1.3 C函数的参数传递过程 9   第2章 C语言的流程和处理 14   2.1 C语言的循环反汇编 15   2.1.1 for循环 15   2.1.2 do循环 16   2.1.3 while循环 17   2.2 C语言判断与分支的反汇编 18   2.2.1 if-else判断分支 18   2.2.2 switch-case判断分支 19   2.3 C语言的数组与结构 22   2.4 C语言的共用体和枚举类型 24   第3章 练习反汇编C语言程序 26   3.1 算法的反汇编 27   3.1.1 算法反汇编代码分析 27   3.1.2 算法反汇编阅读技巧 28   3.2 发行版的反汇编 29   3.3 汇编反C语言练习 33   基础篇 内核编程   本书的第二部分,是编写Windows内核程序编程方法的基础。本部分包括第4~7章,如果读者对Windows内核编程已经有一定的了解,可以跳过本部分;如果读者从未接触过Windows内核编程,本部分将指导读者开始Windows内核编程,学会使用WDK,并熟悉内核编程的习惯与方法。   第4章 内核字符串与内存 38   4.1 字符串的处理 39   4.1.1 使用字符串结构 39   4.1.2 字符串的初始化 41   4.1.3 字符串的拷贝 42   4.1.4 字符串的连接 42   4.1.5 字符串的打印 43   4.2 内存与链表 45   4.2.1 内存的分配与释放 45   4.2.2 使用LIST_ENTRY 46   4.2.3 使用长长整型数据 49   4.2.4 使用自选锁 50   第5章 文件与注册表操作 52   5.1 文件操作 53   5.1.1 使用OBJECT_ATTRIBUTES 53   5.1.2 打开和关闭文件 54   5.1.3 文件读/写操作 58   5.2 注册表操作 60   5.2.1 注册表键的打开 60   5.2.2 注册表值的读 62   5.2.3 注册表值的写 65   第6章 时间与线程 67   6.1 时间与定时器 68   6.1.1 获得当前滴答数 68   6.1.2 获得当前系统时间 69   6.1.3 使用定时器 70   6.2 线程与事件 73   6.2.1 使用系统线程 73   6.2.2 在线程中睡眠 75   6.2.3 使用同步事件 76   第7章 驱动、设备与请求 79   7.1 驱动与设备 80   7.1.1 驱动入口与驱动对象 80   7.1.2 分发函数和卸载函数 80   7.1.3 设备与符号链接 82   7.1.4 设备的安全创建 83   7.1.5 设备与符号链接的用户相关性 85   7.2 请求处理 86   7.2.1 IRP与IO_STACK_LOCATION 86   7.2.2 打开与关闭请求的处理 88   7.2.3 应用层信息传入 89   7.2.4 驱动层信息传出 91   探索篇 研究内核   本书的第三部分,开始探索Windows内核程序,并尝试阅读反汇编代码作为指引。本部分包括第8~10章。如果读者对Windows内核编程已经有一定的了解,这一部分会比较有趣;如果读者从未接触过Windows内核编程,读者应该先学习第二部分。能自己编写内核程序并不意味着可以读懂内核,虽然反过来是一定成立的。读懂别人编写的没有代码的程序,比自己编写更困难一些,但的确是值得的。   第8章 进入Windows内核 96   8.1 开始Windows内核编程 97   8.1.1 内核编程的环境准备 97   8.1.2 用C语言写一个内核程序 99   8.2 学习用WinDbg进行调试 102   8.2.1 软件的准备 102   8.2.2 设置Windows XP调试执行 103   8.2.3 设置VMWare虚拟机调试 104   8.2.4 设置被调试机为Vista的情况 105   8.2.5 设置Windows内核符号表 106   8.2.6 调试例子diskperf 106   8.3 认识内核代码函数调用方式 107   8.4 尝试反写C内核代码 111   8.5 如何在代码中寻找需要的信息 113   第9章 用C++编写的内核程序 117   9.1 用C++开发内核程序 118   9.1.1 建立一个C++的内核工程 118   9.1.2 使用C接口标准声明 119   9.1.3 使用类静态成员函数 120   9.1.4 实现new操作符 121   9.2 开始阅读一个反汇编的类 122   9.2.1 new操作符的实现 122   9.2.2 构造函数的实现 124   9.3 了解更多的C++特性 126   第10章 继续探索Windows内核 131   10.1 探索Windows已有内核调用 132   10.2 自己实现XP的新调用 135   10.2.1 对照调试结果和数据结构 135   10.2.2 写出C语言的对应代码 137   10.3 没有符号表的情况 138   10.4 64位操作系统下的情况 141   10.4.1 分析64位操作系统的调用 143   10.4.2 深入了解64位内核调用参数传递 145   深入篇 修改内核   这是本书的第四部分。读者已经尝试过探索Windows内核程序,并尝试阅读反汇编代码。那么接下来,必须掌握修改内核的方法。每一个Windows内核程序,都可以看做Windows内核本身的一个“补丁”。有时只需要独立存在,就能起到它的作用;有时却必须对已有的内核二进制代码进行部分修改。本部分包括第11~13章,主要介绍的是内核Hook。   第11章 机器码与反汇编引擎 150   11.1 了解Intel的机器码 151   11.1.1 可执行指令与数据 151   11.1.2 单条指令的组成 152   11.1.3 MOD-REG-R/M的组成 155   11.1.4 其他的组成部分 157   11.2 反汇编引擎XDE32基本数据结构 159   11.3 反汇编引擎XDE32具体实现 162   第12章 CPU权限级与分页机制 166   12.1 Ring0和Ring3权限级 167   12.2 保护模式下的分页内存保护 169   12.3 分页内存不可执行保护 172   12.3.1 不可执行保护原理 172   12.3.2 不可执行保护的漏洞 173   12.4 权限级别的切换 177   12.4.1 调用门及其漏洞 178   12.4.2 sysenter和sysexit指令 181   第13章 开发Windows内核Hook 186   13.1 XP下Hook系统调用IoCallDriver 187   13.2 Vista下IofCallDriver的跟踪 189   13.3 Vista下inline hook 193   13.3.1 写入跳转指令并拷贝代码 193   13.3.2 实现中继函数 196   实战篇 实际开发   实战部分是本书最深入和复杂的一部分,包括第14~17章。为了让前面练习的成果,在实际应用中产生价值,在这部分我们补充更多的理论知识并尝试用它们去做一点什么。这一部分包括指令分析、硬件基础知识、内核Hook的实际开发练习,以及将完成一个用到内核Hook的有趣的实例,这个实例有助于计算机阻挡各种病毒和木马的侵袭。   此外,本部分还包括特殊的一章,涉及如何巧妙地编写代码,来防止被其他不受欢迎的读者阅读。这与本书的主旨完全相反,正所谓物极必反。   第14章 反病毒、木马实例开发 200   14.1 反病毒、木马的设想 201   14.2 开发内核驱动 204   14.2.1 在内核中检查可执行文件 204   14.2.2 在内核中生成设备接口 208   14.2.3 在内核中等待监控进程的响应 210   14.3 开发监控进程 216   14.4 本软件进一步展望 218   第15章 Rootkit与HIPS 220   15.1 Rootkit为何很重要 222   15.2 Rootkit如何逃过检测 224   15.3 HIPS如何检测Rootkit 234   第16章 手写指令保护代码 237   16.1 混淆字符串 238   16.2 隐藏内核函数 244   16.3 混淆流程与数据操作 251   16.3.1 混淆函数出口 251   16.3.2 插入有意义的花指令 253   第17章 用VMProtect保护代码 258   17.1 安装VMProtect 259   17.2 使用VMProtect 261   17.3 查看VMProtect效果 267   参考文献 270

2010-07-05

wire shark教程.rar

Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。可破解局域网内QQ、邮箱、msn、账号等的密码!! wireshark的原名是Ethereal,新名字是2006年起用的。当时Ethereal的主要开发者决定离开他原来供职的公司,并继续开发这个软件。但由于Ethereal这个名称的使用权已经被原来那个公司注册,Wireshark这个新名字也就应运而生了。

2010-05-30

从Windows转向Linux教程E3000基础学习.pdf

从Windows转向Linux教程E3000基础学习 以fedora为例,介绍linux的安装和一些使用。

2010-05-18

多级XML的读取 tinyXML的使用

C++ 语言 用tinyxml读取XML文件的内容 <pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/"> <database name="dsxiong"> <!-- 表 jw_region --> <table name="jw_region"> <column name="region_id">1</column> <column name="parent_id">0</column> <column name="region_name">中国</column> <column name="region_type">0</column> <column name="agency_id">0</column> </table> <table name="jw_region"> <column name="region_id">2</column> <column name="parent_id">1</column> <column name="region_name">北京</column> <column name="region_type">1</column> <column name="agency_id">0</column> </table> </database> </pma_xml_export>

2010-05-12

CListCtrl各种应用

Everything you need to know about using the standard list control in your applications

2010-04-20

Visual.Assist.X10.4.1624.zip

非常好的vc插件,自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误,等等啦……支持VC++ 6, VC++ 5 andVC 3!

2009-04-08

ARM开发详解.pdf

ARM开发详解 ARM开发详解 ARM开发详解 英文版PDF+中文版WORD 英文版PDF+中文版WORD 英文版PDF+中文版WORD

2009-03-25

汇编C++指令字典2005.zip

集成了多种语言查询的“指令字典2005” 增加了新的功能,新的语言,新的界面, 还对原有语言进行了全面扩充与完善(例如:C、C++的函数增加到了350多个, 开放了文件修改功能等等)还有很多扩充完善这里就不多做介绍了,快来下载吧 "_"

2009-03-25

汇编入门秘诀.pdf

汇编入门秘诀.pdf 汇编入门秘诀.pdf 汇编入门秘诀.pdf 汇编入门秘诀.pdf

2009-03-25

C++ Templates 全览.pdf

C++ Templates 全览.pdf C++ Templates 全览.pdf C++ Templates 全览.pdf 侯捷译 侯捷译 侯捷译

2009-03-25

More Effective C++中文

More Effective C++中文 More Effective C++中文 More Effective C++中文 More Effective C++中文 侯捷编译 侯捷编译 侯捷编译 侯捷编译

2009-03-25

FFMpeg SDK 开发手册

FFMpeg SDK 开发手册 FFMpeg SDK 开发手册 FFMpeg SDK 开发手册

2009-03-21

DLL中函数地址查看器

查看DLL提供的函数接口以及各个函数在DLL中的地址

2009-03-17

赵丽5500词汇.doc

背单词技巧 赵丽5500词汇.doc 赵丽5500词汇.doc 赵丽5500词汇.doc 赵丽5500词汇.doc

2009-03-04

ATL开发指.rar

ATL开发指.rar ATL开发指.rar ATL开发指.rar ATL开发指.rar

2009-02-12

GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf

不多介绍了 GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf

2009-02-12

GDI泄露侦察器 .zip

GDILeakDetector 用于GDI+ 开发中检查GDI的对象数量 需要.NET平台支持

2009-02-12

GDI+ SDK参考(翻译版本).doc

GDI+ SDK参考(翻译版本).doc

2009-02-03

开发辅助小工具---测坐标以及放大器

开发时候用的测坐标工具,还有一个放大器。 开发时候用的测坐标工具,还有一个放大器。 开发时候用的测坐标工具,还有一个放大器。 开发时候用的测坐标工具,还有一个放大器。 开发时候用的测坐标工具,还有一个放大器。

2008-12-18

程序调试思想与实践.pdf

教你如何将调试作为一门可反复使用的学问。 使用对象: 专业的软件开发人员、软件管理人员、软件测试人员,软件调度员 学习正确的调试方法 学习避免Bug

2008-09-03

Visual.C.Sharp.2005.Step.by.Step.chm

微软出版社出版,Visual.C.Sharp.2005.Step.by.Step.chm

2008-01-08

VC技术内幕第五版.chm

VC技术内幕第五版,不多说

2008-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除