liujiayu2的专栏

玩点技术

C++中的友元关系

在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定影响程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的“后门”——友元关系; C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。 友元函数:既将一个普通的函数在...

2015-03-31 16:37:57

阅读数:334

评论数:0

C++静态成员和静态成员函数

类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。  静态类成员包括静态数据成员和静态函数成员两部分。  一 静态数据成员:  类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员...

2015-03-31 10:39:13

阅读数:300

评论数:0

C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。   我们知道,如果类的成员函数不会改变对...

2015-03-31 10:34:02

阅读数:316

评论数:0

c语言中的static变量和static函数

在C语言中,static的字面意思很容易把我们导入歧途,其实它的修饰变量作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c...

2015-03-27 13:58:58

阅读数:366

评论数:0

监听以太网(四) Packet32函数SDK

Packet32包中的函数说明:  No.3. PacketSetHwFilter (设置过滤器)  设置一个hardware filter。比如,Filter参数传递NDIS_PACKET_TYPE_PROMISCUOUS,就可以设置网卡为混杂模式。  BOOLEAN Pack...

2015-03-26 17:42:40

阅读数:1001

评论数:0

监听以太网(三) Packet32数据结构说明

Packet32包中的数据结构:  第一个重要的数据结构:_ADAPTER(关于Network Adapter的)  typedef struct _ADAPTER  {  // 一个打开的NPF driver实例的句柄:  HANDLE hFile;  // 当前打开的网卡的...

2015-03-26 17:42:04

阅读数:639

评论数:0

监听以太网(二) Packet32包说明

Packet32包中的函数说明:  No.2. PacketOpenAdapter (打开网卡)  根据传入的设备名,打开它。  LPADAPTER PacketOpenAdapter(  LPTSTR AdapterName  );  Parameters:  Ad...

2015-03-26 17:40:55

阅读数:440

评论数:0

监听以太网(一) Packet32包说明

简述  监听网络上的所有数据,是一个比较有趣的题目。流传比较广的一些监听程序,它们都使用了一个更加著名的开发包Packet32。比如,ntsniff、EthernetSpy、ntpacket等,还有赫赫有名的WinPcap。应用程序通过它可以设置网卡的工作模式,直接在网卡上读写数据,等等。 ...

2015-03-26 17:39:39

阅读数:431

评论数:0

原始套接字嗅探

设置杂收模式 宏  #define SIO_RCVALL  (0x80000000 | (0x18000000) | (1)) IP头: typedef struct _IPHeader  {                        //IP数据包头  BYTE Ver_HLen...

2015-03-26 17:17:24

阅读数:376

评论数:0

OSI七层网络模型与TCP/IP四层网络

网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有被其他协议处...

2015-03-24 11:20:43

阅读数:850

评论数:0

C++运算符重载

C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如:  class complex  {   public:    complex(double r=0.0,double I=0.0){real=r;imag=I;}  ...

2015-03-24 11:04:10

阅读数:328

评论数:0

C++虚函数---我的理解

先了解一些基础知识 1.构造函数和析构函数一般是公有成员,否则该类不能实例化 2.类成员默认访问权限是private类型(strcut默认访问权限是public)   3.析构函数一般是虚函数,否则可能会造成内存泄漏 4.拥有虚函数的的类都会有一个虚表,该虚表的指针位于类的首地址 虚表...

2015-03-23 19:26:38

阅读数:435

评论数:0

VC 编译器的C++关键字 __super

今天在看一开源代码时,发现一个新关键字 __super,以为是C++新出的关键字,后来发现原来这是VS2005推出的C++关键字,其它编译器并不能支持。 它类似于 Java 的 super,不过它不是用 [.] 操作符,而是用 [::] 操作符,如: class A { public:    ...

2015-03-23 16:19:45

阅读数:491

评论数:0

C++中空指针调用类成员函数的原理

有下面的一个简单的类: class CNullPointCall { public:     static void Test1();     void Test2();     void Test3(int iTest);     void Test4(); private:     sta...

2015-03-23 14:28:58

阅读数:461

评论数:0

C++中函数指针的使用

在C/C++中存在着函数指针,即指向函数的指针。我目前已知的两种使用方法是:    [cpp] view plaincopy #include    #include    typedef int* PINNT;   #define PP int*      int func...

2015-03-23 12:57:27

阅读数:467

评论数:0

C++ 析构函数设为虚函数的好处

[转] 一个帖子,很能说明这个问题 问题:  以下这段代码执行后会不会有问题?  基类:  class CBase   {  public:      virtual void VirtualFun1(CString strFun1) = 0;  };  子类:  clas...

2015-03-23 10:25:44

阅读数:467

评论数:0

基于嗅探原理的原始套接字木马

首先我们说说现有木马的特点和功能。早期木马一般都是基于TCP连接的,现在这种木马的生存能力 非常有限,因为直接基于连接的木马很容易被拦截或者发现。然后有通过改变协议来实现通讯隐藏的木马, 比如采用UDP或者ICMP或者其他协议的,当然,这些协议通常对于主机来说并不常用,所以很多安全配置 上就...

2015-03-20 17:29:41

阅读数:359

评论数:0

原始套接字与sniffer

原始套接字与sniffer 2009-05-11 23:40:30 分类: LINUX 下面是原文件附的代码.我运行过,很好. 文件: source.rar 大小: 7KB 下载: 下载...

2015-03-20 17:26:37

阅读数:553

评论数:0

Windows内存管理

本博文很大程度上参考了,潘爱民先生的《Windows内核原理与实现》一书,在此对他表示感谢。 记得是在学C语言指针的时候,首次比较实际的使用内存寻址。也是在那个时候知道不能使用未初始化的指针,记得当时老师还说过,如果使用了未初始化的指针,轻则运行错误,重则操作系统崩溃。现在看起来那个重则系统...

2015-03-20 17:12:16

阅读数:250

评论数:0

基于原始套接字的嗅探器

嗅探器这个代码我去年的时候就已经写过了,这个学期并不是非常忙,顺手复习网络,就又尝试着写了一遍。 其实在写嗅探器的时候,最主要的还是要将网卡设置为混杂模式。在此基础之上,对抓到的数据包进行分析。 这个是我写出来的效果图,目前只是方便于查看,连菜单都没添加: 左面的界面显示的是主机和主机之...

2015-03-20 17:05:33

阅读数:1313

评论数:0

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