这是一个简单的会溢出的程序 run时返现程序程序终止,并得到以下提示栈溢出而奔溃。eip的值并没有被改变。 查看寄存器的内容,发现eip的值并没有发生改变,这是因为gcc默认开启堆栈保护,当检测到有栈溢出时就会自动终止。 如果我们希望修改eip时不退出调试,比如编写shellcode时,我们需要关闭 ...
分类:
其他好文 时间:
2017-04-24 12:20:24
阅读次数:
268
个人:尾调用时函数式编程的一个重要概念, 栈溢出: 函数调用会在内存形成一个“调用记录”,又称“调用帧”(call frame),保存调用位置和内部变量等信息。如果在函数A的内部调用函数B,那么在A的调用帧上方,还会形成一个B的调用帧。等到B运行结束,将结果返回到A,B的调用帧才会消失。如果函数B内 ...
分类:
其他好文 时间:
2017-04-21 09:41:17
阅读次数:
169
0x00 shellcode pwn 因为题目直接有源码,我就不拖进IDA了,直接看代码 这是一个典型的栈溢出,我们只需要构造shellcode获得/bin/sh权限就可以得到flag.下面是所用脚本。 运行脚本,得到flag 0x01 bof pwn 源码如下 这是一个更简单的栈溢出,只要构造溢出 ...
分类:
其他好文 时间:
2017-04-14 14:45:10
阅读次数:
301
转:https://zhuanlan.zhihu.com/p/26271959 背景知识: 1.snprintf(),为函数原型int snprintf(char *str, size_t size, const char *format, ...),将可变个参数(...)按照format格式化成字 ...
分类:
其他好文 时间:
2017-04-12 16:22:58
阅读次数:
231
linux下应用程序中经常会发生段错误段错误基本上是由于访问非法内存所导致的如栈溢出、数组越界访问、malloc/free内存所引起的。在linux下发生段错误时会生成coredump核心转储文件里面记录了发生段错误时的函数调用关系。ubuntu14.04下默认发生段错误时并不产生核心转储文件需..
分类:
数据库 时间:
2017-04-08 23:15:15
阅读次数:
3157
在看函数的arguments对象的时候,用了arguments.callee写了一个递归。 当执行函数func(99999)时候,直接报错了,一看,原来栈溢出了。 当执行递归运算的时候,忘记加点判断条件,出现死循环。栈溢出就是调用堆栈不断地增长,直到达到一个限制,浏览器硬编码的堆栈大小或内存耗尽。 ...
分类:
其他好文 时间:
2017-04-08 00:09:19
阅读次数:
203
//堆排序 不稳定 import java.util.Arrays; public class HeapSort { public static void main(String[] args) { int[] a={49,38,65,97,76,13,27,49,78,34,12,64}; int... ...
分类:
编程语言 时间:
2017-04-04 20:06:50
阅读次数:
275
鼬自来晓378 人赞同可以从几方面来看Java:JVMJava JVM:内存结构和相关参数含义 · Issue #24 · pzxwhc/MineKnowContainer · GitHubJava JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native th... ...
分类:
编程语言 时间:
2017-04-04 17:18:57
阅读次数:
4146
ESP:该指针永远指向系统栈最上面一个栈帧的栈顶 EBP:该指针永远指向系统栈最上面一个栈帧的底部01 修改函数返回地址#include#include#define PASSWORD "1234567"int verify_password (char *password){ int authen... ...
分类:
系统相关 时间:
2017-04-03 20:40:33
阅读次数:
316
在IE11浏览器下,使用日期函数里面的toLocaleDateString()会报堆栈溢出 不知道是不是跟我的其他相关代码有关,还是就是这个toLocaleDateString()在IE11确实不太一样,不管了,解决问题就行。 修改之前的代码: 修改之后的代码: ...
分类:
编程语言 时间:
2017-03-28 19:33:22
阅读次数:
225