递归确实是很多算法的基础思想。但外部因素导致递归会栈溢出。 但却是不甘心如此简练的有效的算法,放弃不用。 所以一般栈类型放入参数,模拟递归调用。 用快速排序,测试并总结了下。 1)本例大概 排序30000个数字,递归就溢出。 2)用局部变量的栈类型。也不超过90000个数字。 3)栈类型用指针,放入 ...
分类:
其他好文 时间:
2016-10-13 07:42:34
阅读次数:
119
#include<stdio.h>#include<stdlib.h>void attack(){ while(1){ printf("hello world\n"); } getchar();} int main(int arg1,char* args[]){ int var[5]={0}; va ...
分类:
其他好文 时间:
2016-10-12 13:56:33
阅读次数:
110
学习了一下L-CTF中介绍的一个栈溢出利用技巧,记录一下。样例代码如下:/*
*blackngel‘svulnerableprogramslightlymodifiedbygb_master
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidfvuln(char*str1,intage)
{
char*ptr1,name[32];
in..
分类:
其他好文 时间:
2016-10-09 14:43:32
阅读次数:
139
第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了: Java.lang.OutOfMemoryError: ......Java heap space..... 也就是当你看到heap相关的时候就肯定 ...
分类:
其他好文 时间:
2016-10-08 16:25:47
阅读次数:
181
1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的。 (2)参数位于栈上,太大的数组拷贝将导致栈溢出。 (3)将数组名看做常量指针,传递的是数组的首元素地 ...
分类:
编程语言 时间:
2016-09-27 09:08:57
阅读次数:
256
1.基础知识。 在x86处理器中:EIP(Instruction Pointer)是指令寄存器,指向处理器下条等待执行的指令地址(代码段内的偏移量),每次执行完相应汇编指令EIP值就会增加。 ESP(Stack Pointer)是堆栈指针寄存器,存放执行函数对应栈帧的栈顶地址(也是系统栈的顶部),且 ...
分类:
其他好文 时间:
2016-09-25 10:43:23
阅读次数:
124
使用51单片机开发会容易出现DATA区内存不足的情况,有时体现为某SEGMENT OVERFLOW。这个时候可以充分利用128字节的片外RAM,在定义较大的数据类型时在最前面加上idata,在后面的程序中直接调用就可以了。 另外经常会出现栈溢出的问题。如果在主函数中单独调用子函数不会出错,而在另一个 ...
分类:
其他好文 时间:
2016-09-19 06:39:21
阅读次数:
140
Winamp作为一款在90年代最主流的音乐播放器,到现在仍有大量的忠实粉丝。当然也存在很多漏洞。下面具体分析的就是打开软件的更新历史信息而触发的一个缓冲区溢出漏洞。 0X01漏洞重现 正常的whatsnew.txt文件位于Winamp文件夹中,保存的是软件的更新历史信息。我们为了重现漏洞,需要将特殊 ...
递归、二维数组顺时针旋转90°、正则表达式 1、 递归算法是一种直接或间接调用自身算法的过程。 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多容易造成栈溢出 要求: 每次调用递归规模上有所减小 前一次为后一次做准备 规模较小时必须直接给出解答而不 ...
分类:
编程语言 时间:
2016-08-29 22:40:24
阅读次数:
186
这里有A,B,C 三个edittext,他们三个之间通过后台的计算来改变互相的值。具体来说,A在变得时候,BC会随之而变;B在变得时候AC会随之而变。因此,一开始我给他们三个都分别添加textChangedListener的时候就出现的StackOver 栈溢出的问题。原因是他们进入了死循环!! 解 ...
分类:
其他好文 时间:
2016-08-29 17:23:45
阅读次数:
136