- 博客(36)
- 资源 (47)
- 收藏
- 关注
转载 缓冲区溢出报告
1 概述1.1 编写背景 网络防范技术的日益成熟,使木马、病毒这类恶意代码的植入变得困难。网络黑客开始针对系统和程序自身存在的漏洞,编写相应的攻击程序。其中最常见的就是对缓冲区溢出漏洞的攻击,而在诸多缓冲区溢出中又以堆栈溢出的问题最有代表性。目前,利用缓冲区溢出漏洞进行的攻击已经占到了整个网络攻击次数的一半以上。 对缓冲区溢出漏洞攻击,可以导致程序运行失败
2009-05-26 14:27:00 2300
转载 字节对齐详解
一、什么是字节对齐,为什么对齐现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开
2009-05-26 14:20:00 1506
原创 Everything You Need To Know To Start Programming 64-Bit Windows Systems
Everything You Need To Know To Start Programming 64-Bit Windows Systemshttp://msdn.microsoft.com/en-us/magazine/cc300794.aspx
2009-05-26 14:09:00 565
原创 VC++ & MFC实现的优秀的开源项目
List of Best Open Souce projects written in VC++/MFC7-Zip (http://sourceforge.net/projects/sevenzip/) : 7-Zip is a file archiver with the high compression ratio. The program supports 7z, ZIP, C
2009-05-25 14:53:00 950
转载 在VS 2008下成功编译Chrome
http://blog.csdn.net/celestialwy/archive/2008/12/01/3422970.aspx
2009-05-25 14:52:00 585
原创 XPCOM--跨平台的组件开发技术
XPCOM--跨平台的组件开发技术http://blog.csdn.net/celestialwy/archive/2006/05/02/705326.aspx
2009-05-25 14:49:00 604
转载 C++ 学习 5 levels
当读者有一定c/c++基础推荐的阅读顺序:level 1从>开始,短小精悍,可以对c++能进一步了解其特性以>作字典和课外读物,因为太厚不可能一口气看完 level 2然后从>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻接着是>,个人认为Herb Sutter主席大人的语言表达能力不及Scott Meyers总是在教育第一线的好顺下来就是>和>,请
2009-05-25 14:28:00 553
转载 OTL资料简编
OTL资料简编 1. 序.... 22. 简介.... 22.1. OTL介绍... 22.2. OTL的使用... 33. 常用otl类.... 63.1. otl_connect类... 63.2. otl_stream类... 73.3. otl的数据类型... 83.4. otl
2009-05-25 14:14:00 2119 1
原创 C++中 __stdcall,__cdecl, __fastcal区别简介
调用约定:__cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:)函数参数的压栈顺序,)由调用者还是被调用者把参数弹出栈,)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈, 2、_cdecl是C和C++程序的缺省
2009-05-21 16:38:00 1394
原创 交换a,b, 不使用中间变量
第一种方法: a = a + b; b = a - b; a = a - b; printf("a = %d, b = %d/n", a, b); ----------------------------------------------------------------------------第二种方法: swap69(a, b, &a, &b);
2009-05-21 16:35:00 559
转载 COM逐步教程
介绍对于我来说,理解COM(Component Object Model,组件对象模型)绝不亚于一次长途旅行。我相信,每一个想要理解COM之后基本原理的程序员都必须使用普通的C++编写至少一个简单的COM对象,也就是说,不依靠MFC/ATL所提供的任何模板或宏的支持。在本文中,我将要逐步介绍如何从基本原理出发来创建简单的COM对象。这些组件可用于VC/VB的客户端程序。作为练习,我们将要尝试设计一
2009-05-21 16:10:00 585
转载 矩阵类
此次的矩阵类可以使用双下标,并且带有越界检查能力用例: jks::CMatrix m(3,4); int i,j; for (i=0;i { for (j=0;j { m[i][j] = i*10+j; } } cerr=========================================================================
2009-05-21 13:27:00 784
转载 ATL布幔之下的秘密(5)
介绍 很多人认为ATL只是用来编写COM组件的,其实你也可以使用ATL中的窗口类来创建基于窗口的应用程序。虽然你可以将基于MFC的程序转换为ATL,但是ATL中对于UI(译注:用户界面)组件的支持太少了。所以,这就要求你需要自己编写很多代码。例如,在ATL中没有文档/视图,所以在你想使用它的时候就需要自己实现了。在本篇中,我们将要探究一些关于窗口类的秘密,以及ATL技术实现的秘密。WTL(Wi
2009-05-21 13:15:00 525
转载 ATL布幔之下的秘密(3)
介绍 如果你是个模板的高手,你就可以将ATL的学习作为一种享受。在这一节中,我将要尝试解释一些ATL使用的模板技术。我不能保证你读完本节后能成为一个模板高手,只能是尽我所能让你在读完本文后能够更轻松地理解ATL的源码。程序35.#include using namespace std;template T Maximum(const T& a, const T& b) { return a
2009-05-21 13:13:00 438
转载 ATL布幔之下的秘密(4)
http://blog.csdn.net/titilima/archive/2004/07/30/56960.aspx
2009-05-21 13:13:00 450
转载 ATL布幔之下的秘密(2)
介绍 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术,这是本系列的第二篇文章。 现在让我们来探究一些虚函数背后更加有趣的资料。为了和上文保持一致,在本文的讨论中我将使用相同的顺序,程序的序号从20开始。 让我们看看下面这个程序:程序20.#include using namespace std;class Base {public: virtual void f
2009-05-21 13:12:00 538
转载 ATL布幔之下的秘密(1)
介绍 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术。 在讨论的开始,让我们先看看一个程序的内存分布。首先,编写一个简单的程序,它没有任何的数据成员,你可以看看它的内存结构。程序1.#include using namespace std;class Class {};int main() { Class objClass; cout cout r
2009-05-21 13:11:00 450
转载 COM逐步教程
介绍对于我来说,理解COM(Component Object Model,组件对象模型)绝不亚于一次长途旅行。我相信,每一个想要理解COM之后基本原理的程序员都必须使用普通的C++编写至少一个简单的COM对象,也就是说,不依靠MFC/ATL所提供的任何模板或宏的支持。在本文中,我将要逐步介绍如何从基本原理出发来创建简单的COM对象。这些组件可用于VC/VB的客户端程序。作为练习,我们将要尝试设计一
2009-05-21 13:10:00 432
转载 ATL的GUI程序设计(4)
第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何操作对话框上的各种控件。题外话先
2009-05-21 12:40:00 542
转载 ATL的GUI程序设计(3)
第三章 ATL的窗口类CWindowImpl、CWindow、CWinTraits,ATL窗口类的奥秘尽在此三者之中。在本章里,李马将为你详细解说它们的使用方法。另外,本章的内容也可以算是本书的核心部分——如果你要进行ATL的GUI程序设计的话,就必须将ATL的窗口类设计理念了然于心。窗口的组成把ATL的窗口类撇开不谈先。我在上一章中提到:窗口类并非任何一种OOP语言中的类——它
2009-05-21 12:39:00 564
转载 ATL的GUI程序设计(2)
第二章 一个最简单窗口程序的转型我知道,可能会有很多朋友对上一章的“Hello, World!”ATL版不以为然,因为它并不能算是什么ATL程序——毕竟它只不过是有了个CComModule而已。不过不管怎样我还是要说,它几乎仍然拥有了一个ATL GUI程序的所有组成部分:入口、初始化、程序体、卸载……“等等!”也许你会突然打断我,“——还有注册窗口类、消息循环呢?”当然,对于一个
2009-05-21 12:38:00 448
转载 ATL的GUI程序设计(1)
ATL的GUI程序设计(前言)http://blog.csdn.net/titilima/archive/2006/01/17/581610.aspx第一章 不能免俗的“Hello, World!”在这一章里,就像所有的入门级教程一样,我也将不能免俗地以一个“Hello, World!”程序开始我的教程。然后,我将逐步深入,向你介绍这个ATL版本程序中所有必要的信息。此外,我还将介
2009-05-21 12:35:00 503
转载 WTL调用ActiveX
以调用Flash控件为例:1.包含相关文件:#include #include 2.导入ShockwaveFlash类型库:#import "C:/WINDOWS/SYSTEM32/MACROMED/FLASH/Flash.ocx"using namespace ShockwaveFlashObjects;3.WinMain中进行初始化:AtlAxWinInit();4.添加一个ActiveX
2009-05-21 12:34:00 864
转载 WTL学习笔记(1)
一、ATL的GUI类1.ATL中和窗口相关的类ATL中的CWindow类定义了窗口的接口,它封装了绝大部分以HWND作为第一个参数的API函数,并直接将m_hWnd作为public成员提供。另外,它还重载了operator HWND,这样就可以将CWindow对象直接当作一个窗口句柄使用了。ATL中窗口的实现是由CWindowImpl完成的,其中包括窗口类的注册、窗口的子类化、消息映射以及一个基
2009-05-21 12:33:00 454
原创 Winsock程序设计入门(2)
二、简单的TCP客户端介绍本文是《Winsock程序设计入门(1) - 简单的TCP服务器》一文的结局,如果你还没有读过第1部分的话,我还是建议你首先读一下。在本文中,我将示范给你如何编写一个简单的TCP客户端程序。我们要编写一个程序,这个程序将连接到一个HTTP服务器,并获得一个文件。一个简单的TCP客户端程序流程1、使用WSAStartup()初始化WinSock库。
2009-05-21 12:32:00 355
转载 Winsock程序设计入门(1)
一、简单的TCP服务器介绍WinSock API是一套供Microsoft Windows操作系统使用的套接字程序库,它最初基于Berkeley套接字,但是其中加入了一些Microsoft的特殊改动。在这篇文章中,我要试着给你介绍如何使用WinSock来进行套接字程序设计,并假设你没有在任何操作系统上进行过网络编程的经验。如果你只有一台单独的机器,那么不用着急,你仍然可以进行WinS
2009-05-21 12:31:00 475
原创 用SDK玩转ActiveX
调用ActiveX控件?呃,这实在不是一件容易的事情:用各种封装精良的Framework(MFC、VCL等等)的话,最后成品EXE的体积难免偏大;用SDK虽然可以有效地减小这个体积,但是往往又无从下手——总之,这似乎是一件鱼与熊掌不能兼得的憾事。还好,“不容易”并不代表“不可能”,李马在本文中要介绍给诸位的,就是“玩转”ActiveX的一种方法,这种方法包括了从ActiveX控件调用到Activ
2009-05-21 12:30:00 511
转载 “QQ尾巴病毒”核心技术的实现
2003这一年里,QQ尾巴病毒可以算是风光了一阵子。它利用IE的邮件头漏洞在QQ上疯狂传播。中毒者在给别人发信息时,病毒会自动在信息文本的后边添上一句话,话的内容多种多样,总之就是希望信息的接收者点击这句话中的URL,成为下一个中毒者。下图就是染毒后的QQ发送的消息,其中中毒者只打了“你好”两个字,其它的就全是病毒的杰作了。 下面我将要讨论的,就是QQ尾巴病毒使用的这一技术。由于病毒的源代码无
2009-05-21 11:54:00 485
转载 解说Win32的窗口子类化
也许你需要一个特殊的Edit来限制浮点数的输入,但是现有的Edit却并不能完成这项工作——因为它只能够单纯的限制大小写或者纯数字。当你在论坛上求救的时候,某个网友告诉你:“用子类化。”你也许会在看到一线曙光的同时多出了一连串的问题:何为子类化?子类化的原理是什么?如何实现子类化?下面就让我从一个简单的C++程序开始,一步步解开你的疑团吧。 首先,我为你列出以下这个C++程序:#include
2009-05-21 11:50:00 415
转载 编程提交表单
char accept[] = "Accept: */*";char frmdata[] = "param1=str1¶m2=str2¶m3=str3";HINTERNET hSession = InternetOpen("MyAgent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);HINTERNET hConnect = Inte
2009-05-21 11:45:00 440
原创 单链表的排序
#include using namespace std; template struct node // 节点结构{ node *next; T data;};template class slist // 单链表结构{public: slist() { head.next = NULL; } ~slist() { clear(); } void c
2009-05-21 11:42:00 428
原创 注册COM服务器
BOOL RegisterDLL(LPCTSTR lpszDLLPath){ BOOL bRet; HMODULE hDLL = LoadLibrary(lpszDLLPath); if (hDLL == NULL) return FALSE; FARPROC pfn = GetProcAddress(hDLL, "DllRegisterServer"); if (pfn !
2009-05-21 11:35:00 430
转载 一个用来翻转、旋转的矩阵类
templateclass LMatrix{ int m_x; int m_y; T *m_data;public: // 构造函数,横坐标范围0~(x - 1),纵坐标范围0~(y - 1) LMatrix(int x, int y) : m_x(x), m_y(y), m_data(new T[x * y]) {} // 析构函数 ~LMatrix(
2009-05-21 11:33:00 480
转载 删除一个文件夹
BOOL DelTree(LPCTSTR lpszPath){ SHFILEOPSTRUCT FileOp; FileOp.fFlags = FOF_NOCONFIRMATION; FileOp.hNameMappings = NULL; FileOp.hwnd = NULL; FileOp.lpszProgressTitle = NULL; FileOp.pFrom = lps
2009-05-21 11:29:00 520
转载 DLL的远程注入技术
DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可谓
2009-05-21 11:17:00 533
转载 向其他进程注入代码的三种方法
向其他进程注入代码的三种方法 本文章翻译自Robet Kuster的Three Ways to Inject Your Code into Another Process一文,原版地址见下面。本文章版权归原作者所有。 如果转载该译文,请保证文章的完整性,并注明来自www.farproc.com袁晓辉 2005/5/20原版地址:http://www.codeproject.
2009-05-20 14:24:00 568
C++ Memory Leak Detect
2009-08-31
WinCE 下内存泄露检测大杀器Code snitch
2009-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人