初看缓冲区(堆栈)溢出

先看一段简单的小程序

#include <stdio.h>
#include <string.h>

char name[]="NEUQ_CSA";

int main()
{
	char output[8];
	strcpy(output,name);
	
	for(int i=0;i<8&&output[i];i++)
		printf("\\0x%x",output[i]);
	
	return 0;
}

首先, #include<stdio.h> 和 #include<string.h> 是包含后面使用的strcpy函数和printf函数的头文件。
 

然后, char name[] = “NEUQ_CSA”; 是把‘name’这个数组赋值,往里面放入‘NEUQ_CSA’这几个字符。
 
然后是 int main(){ …… } ,这个是重点啦,这就是我们常说的主函数!程序进来就是先找到这个地方,执行里面的语句。
 
接下来的 char output[8]; strcpy(output, name);  就是让系统给output变量分配8个char的空间,然后把‘name’里面装的字符拷贝给它。
 
 strcpy(des,source) 这个拷贝函数是把第二个参数source的值拷给第一个参数des。它不检查拷贝的长度,它会一直拷贝,直到source到结尾。这就是它的弱点!
 
下面的 for(int i=0;i<8&&output[i];i++) printf("\\0x%x",output[i]);  只

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
目录 4 前言 6 作者简介 6 主要角色简介 6 阅读指南 6 第一章、Windows下堆栈溢出入门 8 1.1 梦,已经展开 8 1.2 啤酒和杯子――缓冲区溢出原理 8 1.3 神秘的Windows系统 10 1.4 ShellCode编写简介 17 1.5 窥豹一斑――本地缓冲区溢出简单利用 21 1.6 小结——摘自小强的日记 28 1.7 首次实战――FoxMail溢出漏洞编写 29 1.8 牛刀小试――Printer溢出漏洞编写 41 1.9 JMP /CALL EBX——另一种溢出利用方式 42 1.10 拾阶而上——IDA/IDQ溢出漏洞编写 55 课后解惑 58 第二章、Windows下ShellCode编写初步 60 2.1 ShellCode是什么? 60 2.2 简单的例子——编写控制台窗口的ShellCode 63 2.3 ShellCode通用性的初步分析 78 2.4 弹出Windows对话框ShellCode的编写 82 2.5 添加用户ShellCode的编写 88 课后解惑 98 第三章、后门的编写和ShellCode的提取 100 3.1 预备知识 101 3.2 后门总体思路 121 3.3 Telnet后门的高级语言实现 125 3.4 生成ShellCode 136 3.5 进一步的探讨 156 3.6 反连后门ShellCode的编写 160 课后解惑 166 第四章 Windows下堆溢出利用编程 168 4.1 堆溢出初探 168 4.2 RtlAllcoateHeap的失误 170 4.3 实例——Message堆溢出漏洞的利用 191 4.4 RtlFreeHeap的失误 197 4.5 堆溢出的其他利用方式 204 4.6 实例——JPEG处理堆溢出漏洞的利用 208 课后解惑 215 第五章 ShellCode变形编码大法 217 5.1 为什么要编码 217 5.2 简单的编码——异或大法 221 5.3 简便的变形——微调法 231 5.4 直接替换法 233 5.5 字符拆分法 239 5.6 内存搜索法 247 5.7 搜索实例——Serv_U漏洞的利用 249 5.8 “计算与你同行”—— Computing & Society 257 课后解惑 258 第六章 ShellCode编写高级技术 260 6.1 通用ShellCode的编写 260 6.2 ShellCode的高效提取技巧 285 6.3 ShellCode的高级功能 294 课后解惑 305 第七章、漏洞的发现、分析和利用 308 7.1 CCProxy 漏洞的分析 308 7.2 黑盒法探测漏洞和Python脚本 319 7.3 白盒法和IDA分析漏洞 333
本书定位于初学缓冲区溢出利用的读者;并照顾想学习缓冲区溢出技术的朋友。<br>本书的目的是用幽默的语言和通俗的解释,对Windows缓冲区溢出编程的思路和思维进行详细分析;并用大量实例对溢出的实际利用进行一次又一次详尽的讲解。<br>本书没有枯燥的、大段汇编代码的解释;没有复杂的、Windows系统结构的定义,阅读起来不会有混混欲睡的乏味感!<br>书里面,有的是活波生动的语言;有的是的美好纯真的校园生活;有的是可遇不可求的经验;有的是直截了当、图文并茂的手把手操作;有的是引导读者感受程序设计的艺术,并在缓冲区溢出的美妙世界中遨游;有的提示和建议是能引起读者浓厚的兴趣,能够自觉下去再找相关的资料完善自己。<br>知识就像一个圆;圆的面积是你所知道的东西;圆的边长是你不知道的东西。圆越大,那么边就越长。所以当你知道得越多,那么你不清楚的就更多!<br>所以,我们都要自觉的学习,不断的勤奋学习,这样才能不落伍,才能与当今纷杂的社会竞争!<br>缓冲区溢出是安全论坛上最常见的问题,包括堆栈缓冲区的利用思想,ShellCode的初步编写、变形、高级利用,以及堆溢出的利用,漏洞的亲自分析等。当然,每个部分都有大量的实例,让大家实际操作,学以致用。<br>后一章都以前一章为基础,逐渐深入并展开。在学习前面的内容时,如果有些地方不了解,可以在后面的章节中找到答案;后面不清晰的地方,也可以翻看前面的知识,以进一步巩固自己!<br>如果读者能在白忙之中抽出5分钟时间来翻看这本书,那么我希望能吸引你再用几个小时的时间来读完这本书。然后用更多的时间,去实际操作书中的每一个例子,进一步的学习,进一步的寻找答案。<br>“课后解惑”部分,是根据作者学习中遇到的问题和论坛上较常见的提问整理出来的经验之谈。有些可能是翻遍资料都找不到答案的注意事项。<br>最后,希望阅读这本书没有浪费你宝贵的时间!<br>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值