bug.cpp

来自「网络渗透技术配书源码」· C++ 代码 · 共 51 行

CPP
51
字号
/* bug.cpp
*
*  《网络渗透技术》演示程序
*  作者:san, alert7, eyas, watercloud
*
*  模拟真实情况的溢出试验
*/

#include<iostream.h> 
#include<fstream.h> 
#include<unistd.h> 

class ClassBase 
{ 
public: 
  char buff[128]; 

  void getBuff() 
  { 
     ifstream myin; 
     myin.open("bug.conf"); 
     cout << "Get buff from file : bug.conf" << endl; 
     myin >> buff;    // 看,这种用法的人不是少数吧 ! 
  }; 
  virtual void printBuffer(void){}; 
}; 

class  ClassA :public ClassBase 
{ 
public: 
  void printBuffer(void) 
  { 
     cout << "Name :" << buff << endl; 
  }; 
}; 


int main(void) 
{ 
  ClassA a; 
  ClassBase * pa = &a; 


  cout << &a << endl; 

  a.getBuff();   // ----这个里边没有边界检查 ! 
  pa->printBuffer(); 

  return 0; 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?