自定义博客皮肤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!

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

转载 c++五种内存分配、堆与栈区别

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。

2009-02-06 12:19:00 3191 3

转载 【转帖】c++经典书藉

 这是本人总结的一些认为C++比较经典的书籍,希望对大家有用下面链接好像失效了,新发一个:www.it689.net/Webs/Books/List.aspxThinking in C++ C++编程思想 C++入门书籍,不多介绍 http://www.laixp.cn/soft/sort01/sort02/down-12215.html C++ Primer 3 th 也是一本入门书

2009-01-18 20:43:00 4215 3

转载 Python正则表达式操作指南

传送门 Python正则表达式操作指南

2015-06-17 19:19:02 943

转载 Python 字符串操作

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符串 #strcpy(sStr1,sStr) sStr= 'strcpy' sStr = sStr sStr= 'strcpy' print sSt

2015-06-17 19:05:09 873

转载 Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

创建列表sample_list = ['a',1,('a','b')]Python 列表操作sample_list = ['a','b',0,1,3]得到列表中的某一个值value_start = sample_list[0]end_value = sample_list[-1]删除列表的第一个值del sample_list[0]在列表中插入一个值sample_lis

2015-06-17 17:25:46 1034

原创 VC++中播放声音wav

因为只需在Windows上执行,先想到用MCI接口。试了一下,用mciSendCommand可以实现基本的播放wav文件的功能。但循环播放wav就麻烦了,必须向窗口传送MM_MCINOTIFY消息。google了一下,才发现原来有更简单的方法——用sndPlaySound。一条语句sndPlaySound(filename, SND_ASYNC | SND_LOOP)就可以循环播放声音文件,完

2012-06-27 14:05:50 4357

原创 VC 对话框背景透明

BOOL CCommonDlg::OnInitDialog(){ CDialog::OnInitDialog(); // TODO: Add extra initialization here //VS2003以上版本 SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL

2012-06-13 14:53:45 3608

原创 对话框窗口加上阴影效果

参考实例  Bring your frame window a shadowhttp://www.codeproject.com/KB/dialog/FrameShadow.aspx?display=Print

2012-06-05 10:01:37 4480 1

原创 vs2008中编译动态库时生成lib的设置

vs2008中编译动态库时,有时候不会生成对应的lib文件首先在工程中像vc6一样生成def文件,然后只需要在工程设置中加载这个文件就行了:Project -> Properties -> Configuration Properties -> Linker -> Input:在右侧的Module Definition File中,选择你生成好的def文件,然后编译,就会生成l

2012-06-01 17:51:20 1515

原创 vs2008中编译动态库时生成lib的设置

vs2008中编译动态库时,有时候不会生成对应的lib文件首先在工程中像vc6一样生成def文件,然后只需要在工程设置中加载这个文件就行了:Project -> Properties -> Configuration Properties -> Linker -> Input:在右侧的Module Definition File中,选择你生成好的def文件,然后编译,就会生成l

2012-06-01 17:49:34 3962

转载 CDHtmlDialog的基本使用

因为我的部门只有我一个人(无奈之极,只有我一个做C++的,其他的都在做C#),所以我去跟技术顾问讨论我们客户端到底该怎么呈现。他说按照以往(上一套系统)的经验,升级很频繁,建议还是使用内嵌 HTML的方式来显示界面,这样以后只要升级HTML就可以了。我听了之后,牙掉了一半,我拖了半个月的对话框就这么给否了,心里着实不是滋味。然后就开始寻找MFC显示HTML页面的方法,找了一些自定义的HTML类

2012-05-21 15:08:51 18843 9

转载 recv函数返回值说明

http://blog.csdn.net/chenziwen/article/details/5798507recv函数int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明

2012-03-21 17:50:08 5747

转载 套接字选项

有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接字的选项了.  8.1 getsockopt和setsockopt  int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen) int setsockopt(int sockfd,int level

2012-03-12 12:49:30 1069

转载 Win7 CreateRemoteThread 另类使用方法

http://blog.csdn.net/wangningyu/archive/2011/05/31/6456607.aspx>同样的代码,在XP下面随便你怎么整,WIN7的话是相当纠结的,具体哪些错误就不解释了~~ gg点了二十多页,在韩国某大牛的博客上总算找到一点思路(虽然看不懂韩文,但代码还算勉强看得懂吧) 原来是要用动态调用ntdll.dll >> Nt

2012-03-09 18:27:52 3036

转载 N种内核注入DLL的思路及实现

《N种内核注入DLL的思路及实现》Author :   sudami   [[email protected]]Time   :   01-11-2008Links   :  http://hi.baidu.com/sudami     内核注入,技术古老但很实用。现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中。可能有部分人会说:“都进内核了.什么不能干?

2012-03-09 18:21:00 2517

转载 你工作快乐么?你的工作好么?——2011年终倾情奉献

原帖:http://bbs.chinaunix.net/thread-3655382-1-1.html2011年马上就要画上一个句号了,各位蓝色的朋友们,你工作快乐么?你的工作好么?       有没有觉得干了一段时间以后工作很不开心?有没有觉得自己入错了行?有没有觉得自己没有得到应有的待遇?有没有觉得工作像一团乱麻每天上班都是一种痛苦?有没有很想换个工作?有没有觉得其实现在的公司并没

2012-01-12 16:13:47 2632

原创 IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系

假如将播放器的控制音量切割成0-100的话,由于IDirectSoundBuffer::SetVolume(LONG lVolume)中参数的输入值是[-10000,0]MySetVolume( DWORD inputVolume){ double decibels; DWORD dsVol; if (inputVolume==0) dsVol

2011-12-14 14:52:52 4465

原创 设置非阻塞的recvfrom

int iMode= 1; //1,非阻塞;0,阻塞  ioctlsocket(socketc,FIONBIO,(u_long FAR*) &iMode);//非阻塞设置  n=recvfrom(socket,rbuf,sizeof(szbuf),0,(SOCKADDR*)&addr,&len);int ioctlsocket (  SOCKETs,          lo

2011-12-13 16:48:23 3715

转载 两个经典的windbg调试案例,值得学习。

1. 调试Bug的神兵利器:通过WinDbg条件断点收集Log 原文地址:http://blogs.msdn.com/yizhang/archive/2009/03/30/bug-windbg-log.aspx调试Bug的神兵利器:通过WinDbg条件断点收集Log 前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的,他们的Testcas

2011-12-12 17:57:08 4400

原创 C++ DLL远程注入与卸载函数

代码是别处的第一个函数是成功的,第二个函数运行发现会将目标程序挂死,也许是目标程序有保护机制支持Unicode编码。 //----------------------------------------------------------------------------------------------------------- // 函数:

2011-11-30 14:52:28 6306 2

转载 DLL的远程注入及卸载技术详解

DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可谓一

2011-11-30 13:27:37 3765

转载 C++模板类 容器之map 及 对象副本 深/浅拷贝 等问题

一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能修改一个相关的值时,map 最为有用.map提供一个键值对容器,在map(也叫关联数组)中我们提供一个键/值对,键用来索引,而值用作被存储和检索的数据.在使用map和set时两个最主要的动作是向里面放入元素以及查询元素是否存在.首先要包含头文件#include 定义并生成map为定义map对象我们

2011-11-28 17:56:53 25589

原创 Visual Studio 2008 中的可执行文件中嵌入清单文件(manifest) Vista/win7 UAC中把应用程序标注为“需要管理员权限”

由于需要提升应用程序的权限,所以找了一些文章之前看到一些参考Vista UAC中把应用程序标注为“需要管理员权限”的四种方法  http://www.cnblogs.com/taoxu0903/archive/2007/09/07/885588.html如何在 Visual Studio 2005 中可执行文件中嵌入清单文件http://support.microsoft.

2011-11-07 17:30:44 3314

原创 C++进行base64编码和解码

cpp 文件base64.cpp#include "base64.h"#include static const std::string base64_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

2011-10-17 16:09:39 45358 7

原创 C++ URL encode/decode (gb2312)

char Dec2HexChar(short int n) { if ( 0 <= n && n <= 9 ) { return char( short('0') + n ); } else if ( 10 <= n && n <= 15 ) {

2011-09-13 16:03:35 3452

转载 一个URL编码和解码的C++类

#pragma once#include #include #include using namespace std;class strCoding{public: strCoding(void); ~strCoding(void);

2011-09-13 15:58:52 5415 1

转载 HTTP代理协议(HTTP CONNECT)

Abstract   This memo explains how to usethe Upgrade mechanism in HTTP/1.1 to   initiate Transport LayerSecurity (TLS) over an existi

2011-08-04 14:03:01 9605 2

原创 怎样快速判断代理ip是否可用

在命令行下输入telnet XXX.XX.XX.XXX  XX 即 telnet ipaddress port例如: telnet 213.197.81.50 3128如果连接上,说明有效

2011-08-03 16:40:59 15467 4

转载 HTTP协议的头信息详解

HTTP协议的头信息详解 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、U

2011-08-03 14:16:57 2764

原创 GCC调试基础知识

The History of GCC  --------------------------------------------------------------------------------  1984年,Richard Stallman发起了自由软件运动,GNU (G

2011-07-14 22:17:55 5521

转载 代理服务器工作原理的研究

代理服务器工作原理的研究(1) 代理服务原理代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。当机器通过代理服务器上网时。 代理服务器工作原理的研究(1) 代理服务原

2011-07-13 16:04:44 2076

转载 linux修改启动项

查看启动项:chkconfig --list增加启动项:chkconfig –add mysqld startChkconfig –add httpd startChkconfig –level 5 httpd onChkconfig –level 5 iptables offC

2011-07-10 20:16:43 2832

转载 wireshark过滤表达式实例介绍

wireshark过滤表达式实例介绍wireshark过滤表达式实例介绍~~wireshark,实例,表达wireshark,实例,表达----------------------------------------------------------------------------------------1、wireshark基本的语法字符 /d0-9的数字

2011-06-28 15:42:00 4117

转载 异常处理方法

1. Windows SEH 与 C++ Exception 1)      Windows SEH 结构化异常结构化异常是Windows操作系统提供的与语言无关的异常处理机制, SHE使用Win32API中的RaiseException()函数来抛出异常,在VC中使用关键字__try和关键字__except来捕获,并用宏函数GetEx

2011-06-10 11:31:00 3043

转载 try catch throw用法

要防止因为异常产生的内存泄漏,可以使用智能指针,也可以用 __try { } __finally { } 《Windows核心编程》一书第23~25章是很好的参考资料。----------------------------------------------------try,catch,throw:try包含你要防护的代码,称为防护块. 防护块如

2011-06-10 11:26:00 57701 1

原创 解决VS2008 调试启动特别慢

<br /> Resolving Very Slow Symbol Loading with VS 2008 during debugging<br />Recently, I was encountering insanely slow project loading times during debugging in Visual Studio 2008. Interestingly, this only happened while loading the project only in

2011-05-23 11:48:00 10666

转载 C/C++中回调函数初探

<br />什么是回调函数?<br />简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。<br />为什么要使用回调函数?<br />因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。<br />如果想知道回调函数在实际中有什么作用,先假设有这样一种情况,我们要编写一个库,它提供了某些排序算法的实

2011-05-18 16:28:00 1144

转载 C++ 事件机制实现

http://www.cppblog.com/zhuweisky/archive/2005/09/11/193.html 事件是面向组件开发的必要特性之一,但C++不直接支持事件,没关系,我自己实现了一个,感觉很好用,分享给大家!   最开始打算用函数指针模拟事件,但由于C++中成员函数指针不能和void*相互强转,而且 typedef中不能含有模板,所以才不得已以接口继承实现。这样效果也不错 :)一. 先看看事件接口定义和实现#ifndef IEVENT_H#define IEVENT_H/*

2011-05-18 16:19:00 1295

转载 异步消息的传递-回调机制

<br />原帖:http://www.ibm.com/developerworks/cn/linux/l-callback/<br /><br /> <br />简介: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种

2011-05-18 16:14:00 3990

转载 回调机制的通俗理解

回调函数 与 回调机制1.  什么是回调函数<br />    回调函数(callback Function),顾名思义,用于回调的函数。  回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。回调函数包含下面几个特性:    属于工作流的一个部分;     必须按照工作流指定的调用约定来申明(定义);     他的调用时机由工作流决定,回调函数的实现者不能直接调用回调函数来实现工作流的功能; <br /> 2. 回调

2011-05-18 16:11:00 1190

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文件的内容 &lt;pma_xml_export version=&quot;1.0&quot; xmlns:pma=&quot;http://www.phpmyadmin.net/some_doc_url/&quot;&gt; &lt;database name=&quot;dsxiong&quot;&gt; &lt;!-- 表 jw_region --&gt; &lt;table name=&quot;jw_region&quot;&gt; &lt;column name=&quot;region_id&quot;&gt;1&lt;/column&gt; &lt;column name=&quot;parent_id&quot;&gt;0&lt;/column&gt; &lt;column name=&quot;region_name&quot;&gt;中国&lt;/column&gt; &lt;column name=&quot;region_type&quot;&gt;0&lt;/column&gt; &lt;column name=&quot;agency_id&quot;&gt;0&lt;/column&gt; &lt;/table&gt; &lt;table name=&quot;jw_region&quot;&gt; &lt;column name=&quot;region_id&quot;&gt;2&lt;/column&gt; &lt;column name=&quot;parent_id&quot;&gt;1&lt;/column&gt; &lt;column name=&quot;region_name&quot;&gt;北京&lt;/column&gt; &lt;column name=&quot;region_type&quot;&gt;1&lt;/column&gt; &lt;column name=&quot;agency_id&quot;&gt;0&lt;/column&gt; &lt;/table&gt; &lt;/database&gt; &lt;/pma_xml_export&gt;

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关注的人

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