资源简介
本书定位于初学缓冲区溢出利用的读者;并照顾想学习缓冲区溢出技术的朋友。
本书的目的是用幽默的语言和通俗的解释,对Windows缓冲区溢出编程的思路和思维进行详细分析;并用大量实例对溢出的实际利用进行一次又一次详尽的讲解。
本书没有枯燥的、大段汇编代码的解释;没有复杂的、Windows系统结构的定义,阅读起来不会有混混欲睡的乏味感!
书里面,有的是活波生动的语言;有的是的美好纯真的校园生活;有的是可遇不可求的经验;有的是直截了当、图文并茂的手把手操作;有的是引导读者感受程序设计的艺术,并在缓冲区溢出的美妙世界中遨游;有的提示和建议是能引起读者浓厚的兴趣,能够自觉下去再找相关的资料完善自己。
代码片段和文件信息
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32“)
#include
#define MAX_NUM 2
#define clear(p) ZeroMemory(p sizeof (p) );
//---------------------------------------------------------------------------
// 4bit binary to char 0-F
char Hex2Chr( unsigned char n )
{
n &= 0xF;
if ( n < 10 )
return ( char )( n + ‘0‘ );
else
return ( char )( n - 10 + ‘A‘ );
}
//---------------------------------------------------------------------------
// char 0-F to 4bit binary
unsigned char Chr2Hex( char c )
{
if ( c >= ‘a‘ && c <= ‘z‘ ) // it‘s toupper
c = c - ‘a‘ + ‘A‘;
if ( c >= ‘0‘ && c <= ‘9‘ )
return ( int )( c - ‘0‘ );
else if ( c >= ‘A‘ && c <= ‘F‘ )
return ( int )( c - ‘A‘ + 10 );
else
return -1;
}
//---------------------------------------------------------------------------
// base64 code table
// 0-63 : A-Z(25) a-z(51) 0-9(61) +(62) /(63)
char base2Chr( unsigned char n )
{
n &= 0x3F;
if ( n < 26 )
return ( char )( n + ‘A‘ );
else if ( n < 52 )
return ( char )( n - 26 + ‘a‘ );
else if ( n < 62 )
return ( char )( n - 52 + ‘0‘ );
else if ( n == 62 )
return ‘+‘;
else
return ‘/‘;
}
//---------------------------------------------------------------------------
unsigned char Chr2base( char c )
{
if ( c >= ‘A‘ && c <= ‘Z‘ )
return ( unsigned char )( c - ‘A‘ );
else if ( c >= ‘a‘ && c <= ‘z‘ )
return ( unsigned char )( c - ‘a‘ + 26 );
else if ( c >= ‘0‘ && c <= ‘9‘ )
return ( unsigned char )( c - ‘0‘ + 52 );
else if ( c == ‘+‘ )
return 62;
else if ( c == ‘/‘ )
return 63;
else
return 64; // 无效字符
}
//---------------------------------------------------------------------------
// aLen 为 aSrc 的大小, aDest 所指的缓冲区必须至少为 aLen 的 3 倍!!!
// 返回 aDest 的长度
int QPEncode( char * const aDest const unsigned char * aSrc int aLen )
{
char * p = aDest;
int i = 0;
while ( i++ < aLen )
{
*p++ = ‘=‘;
*p++ = Hex2Chr( *aSrc >> 4 );
*p++ = Hex2Chr( *aSrc++ );
}
*p = 0; // aDest is an ASCIIZ string
return ( p - aDest ); // exclude the end of zero
}
//---------------------------------------------------------------------------
// aDest 所指的缓冲区必须至少为 aSrc 长度的 1/3 !!!
// 返回 aDest 的长度
int QPDecode( unsigned char * const aDest const char * aSrc )
{
unsigned char * p = aDest;
int n = strlen( aSrc );
unsigned char ch cl;
while ( *aSrc ) // aSrc is an ASCIIZ string
{
if ( ( *aSrc == ‘=‘ ) && ( n - 2 > 0 ) )
{
ch = Chr2Hex( aSrc[1] );
cl = Chr2Hex( aSrc[2] );
if ( ( ch == ( unsigned char )-1 ) || ( cl == ( unsigned char )-1 ) )
*p++ = *aSrc++;
else
{
*p++ = ( ch << 4 ) | cl;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 798 2008-08-04 18:51 Q版缓冲区溢出教程源代码\chapter1\test\over.cpp
文件 9898 2004-11-23 22:58 Q版缓冲区溢出教程源代码\chapter1\printer\PrinterCallEbx.c
文件 9894 2004-10-01 05:32 Q版缓冲区溢出教程源代码\chapter1\printer\iis5hackByIsno.c
文件 8131 2004-10-01 05:32 Q版缓冲区溢出教程源代码\chapter1\printer\printer.c
文件 4766 2004-10-01 05:32 Q版缓冲区溢出教程源代码\chapter1\printer\printerJmpEbx.c
文件 36864 2008-08-04 08:55 Q版缓冲区溢出教程源代码\chapter1\JMPESP2JMPEBX\轻松将jmp esp方式 改写为jmp ebx方式.doc
文件 2228 2004-12-07 23:10 Q版缓冲区溢出教程源代码\chapter1\IdaIdq\idaidq.c
文件 10718 2004-12-07 20:42 Q版缓冲区溢出教程源代码\chapter1\Foxmail\foxmail2.c
文件 10718 2004-12-07 20:42 Q版缓冲区溢出教程源代码\chapter1\Foxmail\foxmail3.c
文件 10844 2004-12-07 20:42 Q版缓冲区溢出教程源代码\chapter1\Foxmail\foxmail4.c
文件 11203 2004-12-07 21:32 Q版缓冲区溢出教程源代码\chapter1\Foxmail\foxmail5.c
文件 10678 2008-07-31 16:27 Q版缓冲区溢出教程源代码\chapter1\Foxmail\foxmail1.c
文件 351 2008-08-04 17:22 Q版缓冲区溢出教程源代码\chapter2\自动查找函数地址\GetAddr.cpp
文件 1189 2004-12-07 23:28 Q版缓冲区溢出教程源代码\chapter2\添加用户ShellCode\AddUserASM.cpp
文件 1109 2004-10-20 04:46 Q版缓冲区溢出教程源代码\chapter2\添加用户ShellCode\NetUserAddC.cpp
文件 162 2009-09-11 16:33 Q版缓冲区溢出教程源代码\chapter2\添加用户ShellCode\AddUserC.c
文件 108 2004-03-18 17:19 Q版缓冲区溢出教程源代码\chapter2\开dos窗口ShellCode\cmd.cpp
文件 867 2008-07-31 19:48 Q版缓冲区溢出教程源代码\chapter2\开dos窗口ShellCode\cmdAsm1.cpp
文件 520 2008-08-04 18:52 Q版缓冲区溢出教程源代码\chapter2\开dos窗口ShellCode\cmdCode.cpp
文件 979 2008-08-04 17:23 Q版缓冲区溢出教程源代码\chapter2\开dos窗口ShellCode\cmdAsm2.cpp
文件 347 2008-08-01 11:10 Q版缓冲区溢出教程源代码\chapter2\开dos窗口ShellCode\cmdGetAddr.cpp
文件 122 2004-11-30 05:37 Q版缓冲区溢出教程源代码\chapter2\Windows对话框ShellCode\MessageBox.cpp
文件 344 2004-12-07 23:25 Q版缓冲区溢出教程源代码\chapter2\Windows对话框ShellCode\MessageCode.cpp
文件 955 2009-09-25 15:49 Q版缓冲区溢出教程源代码\chapter2\Windows对话框ShellCode\MessageASM.cpp
文件 1066 2004-11-22 19:39 Q版缓冲区溢出教程源代码\chapter3\零管道后门\pipe0C.cpp
文件 1885 2004-11-09 06:23 Q版缓冲区溢出教程源代码\chapter3\测试双管道ShellCode\testBindCode1.cpp
文件 1935 2004-11-09 06:15 Q版缓冲区溢出教程源代码\chapter3\测试双管道ShellCode\testBindCode2.cpp
文件 1883 2004-11-07 18:24 Q版缓冲区溢出教程源代码\chapter3\查找网络函数地址\GetBindAddr.cpp
文件 930 2004-11-08 07:10 Q版缓冲区溢出教程源代码\chapter3\反向后门\backC.cpp
文件 5047 2008-08-05 17:40 Q版缓冲区溢出教程源代码\chapter3\双管道后门\pipe2ASM.cpp
............此处省略130个文件信息
相关资源
- ffmpeg3.2.4_Win32开发库文件
- 简单易懂的 lingo11软件教程
- 三维可视化Coin3d 罕见的中文教程
- 人脸识别教程非常全面
- keil使用TortoiseSVN版本控制服务器与本
- 植物大战僵尸变态功能系列开发教程
- linux 学习手册 linux基础 linux高级教程
- ArcInfo基础教程
- 史上最强-Kettle-培训教程
- 《最全Pycharm教程 - 精编版》收集自山
- 操作系统教程第四版孙钟秀.zip
- u-boot-2017.07移植到s5pv210教程(含对应
- 最全Pycharm教程
- 南方cass7.1 for CAD2004_2005_2006安装和破解
- MAPGIS67操作教程配套演示数据
- InVEST教程
- director有关技巧及插件超全
- 数据库系统教程第三版施伯乐 课后
- 打包工具SetupFactory7.0.1破解汉化版含教
- adams—view_2013官方帮助文件
- Cocos2d-x高级开发教程:制作自己的《
- Unity按照官方教程完成Roll a Ball
- X-HDL v4.21 +破解工具+破解教程
- AGP过驱动教程源码
- 国嵌-嵌入式Linux教程课件及配套例程
- EDA技术实用教程-VerilogHDL版(第四版)
- 最全Pycharm教程 - 精编版.pdf
- Ledit破解版画图软件
- 开源GIS与空间数据库实战教程(清华
- Fundamentals of Multimedia(多媒体技术教程
评论
共有 条评论