- 博客(44)
- 资源 (33)
- 收藏
- 关注
转载 C++中的友元关系
在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定影响程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的“后门”——友元关系;C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。友元函数:既将一个普通的函数在一个类中说明为一个friend属性;其定义(大多数会访问该类的成员)应在类后;友元成员函数:
2015-03-31 16:37:57 537
转载 C++静态成员和静态成员函数
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时
2015-03-31 10:39:13 471
转载 C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的
2015-03-31 10:34:02 467
转载 c语言中的static变量和static函数
在C语言中,static的字面意思很容易把我们导入歧途,其实它的修饰变量作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global va
2015-03-27 13:58:58 537
转载 监听以太网(四) Packet32函数SDK
Packet32包中的函数说明: No.3. PacketSetHwFilter (设置过滤器) 设置一个hardware filter。比如,Filter参数传递NDIS_PACKET_TYPE_PROMISCUOUS,就可以设置网卡为混杂模式。 BOOLEAN PacketSetHwFilter( LPADAPTER AdapterObject, ULONG F
2015-03-26 17:42:40 1839
转载 监听以太网(三) Packet32数据结构说明
Packet32包中的数据结构: 第一个重要的数据结构:_ADAPTER(关于Network Adapter的) typedef struct _ADAPTER { // 一个打开的NPF driver实例的句柄: HANDLE hFile; // 当前打开的网卡的名字: CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; //
2015-03-26 17:42:04 1107
转载 监听以太网(二) Packet32包说明
Packet32包中的函数说明: No.2. PacketOpenAdapter (打开网卡) 根据传入的设备名,打开它。 LPADAPTER PacketOpenAdapter( LPTSTR AdapterName ); Parameters: AdapterName: [in] 要打开的设备的名字。 Return Values: 如果打开成
2015-03-26 17:40:55 893
转载 监听以太网(一) Packet32包说明
简述 监听网络上的所有数据,是一个比较有趣的题目。流传比较广的一些监听程序,它们都使用了一个更加著名的开发包Packet32。比如,ntsniff、EthernetSpy、ntpacket等,还有赫赫有名的WinPcap。应用程序通过它可以设置网卡的工作模式,直接在网卡上读写数据,等等。 一般使用的Packet32的实现版本,是微软的Packet32.c和Packet32.h。
2015-03-26 17:39:39 766
转载 原始套接字嗅探
设置杂收模式 宏 #define SIO_RCVALL (0x80000000 | (0x18000000) | (1))IP头:typedef struct _IPHeader { //IP数据包头 BYTE Ver_HLen; //版本+报头长度 BYTE TOS; //服务类型
2015-03-26 17:17:24 691
转载 OSI七层网络模型与TCP/IP四层网络
网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合
2015-03-24 11:20:43 1400
转载 C++运算符重载
C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如: class complex { public: complex(double r=0.0,double I=0.0){real=r;imag=I;} void display(); private: double real;
2015-03-24 11:04:10 460
原创 C++虚函数---我的理解
先了解一些基础知识1.构造函数和析构函数一般是公有成员,否则该类不能实例化2.类成员默认访问权限是private类型(strcut默认访问权限是public) 3.析构函数一般是虚函数,否则可能会造成内存泄漏4.拥有虚函数的的类都会有一个虚表,该虚表的指针位于类的首地址虚表展示: 5.没有虚函数的类,首地址是成员变量(先后顺序和在类声明里面的一直,与公私有无关
2015-03-23 19:26:38 623
转载 VC 编译器的C++关键字 __super
今天在看一开源代码时,发现一个新关键字 __super,以为是C++新出的关键字,后来发现原来这是VS2005推出的C++关键字,其它编译器并不能支持。它类似于 Java 的 super,不过它不是用 [.] 操作符,而是用 [::] 操作符,如:class A {public: void Test () { printf ("xxxx"); }}; cla
2015-03-23 16:19:45 690
转载 C++中空指针调用类成员函数的原理
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();private: static int m_iStatic; int m_iTest;};
2015-03-23 14:28:58 770
转载 C++中函数指针的使用
在C/C++中存在着函数指针,即指向函数的指针。我目前已知的两种使用方法是: [cpp] view plaincopy#include #include typedef int* PINNT; #define PP int* int funcA(int a,int b); int funcB(int
2015-03-23 12:57:27 712
转载 C++ 析构函数设为虚函数的好处
[转] 一个帖子,很能说明这个问题问题: 以下这段代码执行后会不会有问题? 基类: class CBase { public: virtual void VirtualFun1(CString strFun1) = 0; }; 子类: class CDerived : public CBase { public: CDer
2015-03-23 10:25:44 657
转载 Windows内存管理
本博文很大程度上参考了,潘爱民先生的《Windows内核原理与实现》一书,在此对他表示感谢。记得是在学C语言指针的时候,首次比较实际的使用内存寻址。也是在那个时候知道不能使用未初始化的指针,记得当时老师还说过,如果使用了未初始化的指针,轻则运行错误,重则操作系统崩溃。现在看起来那个重则系统崩溃还是比较可笑的,如果真的这么容易就让系统崩溃,那么Windows早就被用户抛弃了。而且我在调程序的
2015-03-20 17:12:16 362
转载 基于原始套接字的嗅探器
嗅探器这个代码我去年的时候就已经写过了,这个学期并不是非常忙,顺手复习网络,就又尝试着写了一遍。其实在写嗅探器的时候,最主要的还是要将网卡设置为混杂模式。在此基础之上,对抓到的数据包进行分析。这个是我写出来的效果图,目前只是方便于查看,连菜单都没添加:左面的界面显示的是主机和主机之间的链接信息,而右面则是选中主机信息之间的数据交互情况。我觉得我这个嗅探器应该
2015-03-20 17:05:33 2486 2
转载 网卡MAC地址相关信息大全
原文链接:http://blog.csdn.net/piggyxp/article/details/170250首先要感谢jzyhummel(刀锋[篱影]) 兄弟提供的部分资料^_^ 网卡地址这个概念有点混淆不清。因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的
2015-03-20 13:25:09 1317
转载 手把手教你捕获数据包
原文链接:http://blog.csdn.net/piggyxp/article/details/24444前 言 经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,也写过很多的sniffer,所以就想写一系列的文章来详细深入的探讨关于数据包的知识。我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅
2015-03-20 13:19:12 1314
转载 c++异常Try catch
c++异常Try catch分类: c++专区 功能函数测试集锦2014-04-09 17:43 1505人阅读 评论(0) 收藏 举报一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1 #include //包含头文件2 #include3
2015-03-20 12:50:58 650
转载 C++ SYN攻击源码
// DOS.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #pragma comment(lib, "ws2_32.lib")#define SEQ 0x28376839 //随机号码int threadn
2015-03-16 00:08:41 4201 1
转载 Raw Socket编程
Windows2000在TCP/IP协议组件上做了很多改进,功能也有增强。比如在协议栈上的调整,增大了默认窗口大小,以及高延迟链接新算法。同时在安全性上,可应用IPSec加强安全性,比NT下有不少的改进。 Microsoft TCP/IP 组件包含“核心协议”、“服务”及两者之间的“接口”。传输驱动程序接口 (TDI) 与网络设备接口规范 (NDIS) 是公用的。此外,还有许多用户模
2015-03-15 22:24:35 1274 1
转载 icmp后门的编写
1 关于icmp的介绍 ICMP 的全称为(Internet Control Message Protocal)。它是一种差错报告机制,可以被用来向目的主机报告或者请求各种网络信息。这些信息包括回送应答(ping),目的地不可达,源站抑制,回送请求,掩码请求和掩码应答,还有是路由跟踪等。这些信息是用ICMP数据报报头中一个字节长度的类型码来区别的。 ICMP协议有一个
2015-03-15 22:21:55 1876
转载 #pragma预处理命令
#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令:#pragma comment(lib,"XXX.lib")表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。 #pragma comment(linker,"/ENTRY:main_function")表示指定链接器选项/ENTRY:main_func
2015-03-13 16:08:04 497
转载 函数实现不放在头文件的原因,及何时可以放头文件的情况
1 、引子 在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现。从开始接触,到熟练使用,几乎已经形成了下意识的流程。尽管这样的做法无可厚非,而且在不少情况下是相对合理甚至必须的,但我还是要给大家介绍 一下把实现全部放置到头文件中的方式,给出可供大家使用的另一个选择。同时针对这一做法,也顺便说
2015-03-12 16:52:09 540
转载 C++中的内联函数inline总结
突然看到C++Primer中讲到,对于vector的一个循环,调用语句:(示例代码i=v.begin()不是很规范,虽然不会出错,客官请将就着看)[cpp] view plaincopyfor (int i=v.begin() ; i{ .... } 对于size()的调用,其实是内联。想到以前貌似是看《高质量C/C++编程》时,提过
2015-03-12 16:32:37 572
转载 在类模板的声明和定义中把.h与.cpp分离
看了几位大吓的回复,深深地感觉到了这篇附笔中可能存在错误,于是把最初遇到此问题时的环境再模拟了一下,现在可以确认这篇附笔中的确存在问题,现在就修正一下,并对各位表示歉意.6月初的一个项目中需要写一个高性能网络服务端程序,在网上找到了一份很好的代码(请参见),在使用过程中发现在多个cpp文件中引入这份代码的h文件时,会出现很多重复定义错误,当时很头疼,没能很好的解决问题.现总结一条:在使用类
2015-03-12 13:06:23 2282
转载 c++模板类学习
1、模板的概念我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y){ return(x>y)?x:y ; }//函数2.float
2015-03-12 12:30:57 396
转载 C/C++中容易造成内存溢出的函数
1.strcpy()strcpy()函数将源字符串复制到缓冲区。没有指定要复制字符的具体数目。复制字符的数目直接取决于源字符串中的数目。如果源字符串碰巧来自用户输入,且没有专门限制其大小,则有可能会陷入大的麻烦中!建议使用strncpy.2.strcat()strcat()函数非常类似于 strcpy(),除了它可以将一个字符串合并到缓冲区末尾。它也有一个类似的、更安全的替代方法
2015-03-12 09:30:09 392
转载 C++中explicit关键字的作用
explicit用来防止由构造函数定义的隐式转换。 在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且...
2015-03-11 17:55:11 376
转载 C++ 虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述
2015-03-11 15:50:33 366
转载 C++的精髓——虚函数
纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};void Move();private:};class CChild : public CMan{public:vir
2015-03-11 14:31:35 442
转载 c++中虚函数和纯虚函数定义
只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。所以虚函数只能用于类的继承层次结构中。 一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同的参数(包括个数和类型)和函数返回值类型的同名函数。 根据什么考虑是否把一个
2015-03-11 14:21:04 436
转载 C++虚函数和纯虚函数的区别
1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类之中,被继承的子类重载,目的是提供
2015-03-11 13:40:52 402
转载 C++ 虚函数与纯虚函数
纯虚函数定义如下: virtual functionname (parameter ) =0 ;类的一个成员定位虚函数的实际意义在于让C++知道该函数并无意义,它的作用只是为了让派生类进行函数重载保留位置。纯虚函数的定义方法就是在类的虚函数后面加上 “ =0 ” 标记,类中一旦出现了纯虚函数的定义,那么此类为抽象类。实例 1.#include #include #inclu
2015-03-11 13:23:15 419
转载 STL::list 遍历元素方法
void printit(DAT vals){ printf("ss= %d\n",vals.val);} list mylist; DAT mydat; for(int i=0;i { mydat.val = rand() % 1000;//(i-1)*(i-2)*(i-11)*(i-7); mylist.push_back(myda
2015-03-10 14:58:36 5875
转载 STL中list用法详解
本文转载自百度文库。作者如下。其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度。标准模板库(STL)介绍 作者:Scott Field 本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2
2015-03-10 14:51:38 1933
原创 关于UAC执行级别的研究
用户帐户控制 (User Account Control)简称UAC,是Windows Vista以及之后操作系统中一组新的基础结构技术,可以帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统,同时也可以帮助组织部署更易于管理的平台。UAC执行级别在VS里面的设置如下: 测试动作:拷贝文件(从C盘考到C盘)测试记录:纵行:用户横行:编译时设置as
2015-03-10 13:51:34 5787
转载 终于把CString转化为char*了
看了无数帖子,试了n种方法,终于成功了!正确方法:CString m_Head;char *codefile;codefile=(LPSTR)(LPCTSTR)m_Head;//正确,想办法去掉后缀补充:int fnlen = m_Head.GetLength() ; //strcspn(str,".");codefile=new char[fnlen+4];cod
2015-03-10 10:44:09 513
SSDTHook实现进程保护
2017-06-09
SkinSharp开发库+百款皮肤+皮肤编辑器
2017-05-24
minhook-1.3.2
2017-05-09
python2.7.8 32
2016-05-25
AStar 算法实例
2015-07-18
Visual Assist X补丁
2015-06-18
cmake-3.14.3-win64-x64.zip
2019-09-05
跨平台高性能TCP服务器框架 &boost;
2018-06-25
网狐IOCP压缩版
2018-06-22
用C++实现的壳
2017-09-14
像加载DLL一样加载EXE
2017-09-10
protobuf-2.61最新版
2017-08-28
Gh0stVC6到VS2010迁移所有问题的解决方法
2017-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人