程序崩溃的原因分类 1.函数栈溢出 一个变量未初化、未赋值,就读取它的值。 ( 这属于逻辑问题,往往是粗心大意的导致的 ) 2.函数栈溢出 (1)定义了一个体积太大的局部变量 (2)函数嵌套调用,层次过深(如无穷递归) 3.数组越界访问 访问数组元素时,下标越界 4.指针的目标对象不可用 (1)空指 ...
分类:
其他好文 时间:
2020-05-12 14:07:58
阅读次数:
72
这道题研究了很久,总算是理解了got表和plt表的关系和作用 checksec看防护 main函数里提示了vunlnerable函数 查看一下vulnerable函数 可以利用read函数栈溢出,但是这道题没有给system函数。所以我们可以利用附件给的libc_32.so.6文件,计算出syste ...
分类:
其他好文 时间:
2020-03-24 10:32:30
阅读次数:
116
[TOC] 程序基本信息 32位动态链接程序,开启了数据段不可执行以及栈溢出保护 程序漏洞 在函数中sub_80487fa中有一个格式化字符串漏洞和read函数栈溢出漏洞 整体思路 首先不用说,肯定得先想办法栈溢出,溢出函数我们已经找到,接下来的问题就是得泄露出canary的值,从而绕过栈溢出保护。 ...
分类:
其他好文 时间:
2019-09-29 23:25:52
阅读次数:
173
# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数 # 计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: # fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x ... ...
分类:
编程语言 时间:
2018-07-24 21:16:42
阅读次数:
184
一般栈溢出在无限递归下出现,下面的程序在创建对象时出现栈溢出: 不应该是outofmemory吗?栈里只有a这个reference,其引用的对象,以及对象里的a引用的对象都在堆里分配内存? 猜想(毫不负责): 应该是执行new A()时,调用构造函数,而构造函数初始化a需要调用构造函数,函数调用函数 ...
分类:
其他好文 时间:
2017-08-20 15:53:32
阅读次数:
146
#递归函数
#在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数
#计算n!
deffact(n):
ifn==1:
return1
returnn*fact(n-1)
print(fact(1))
print(fact(5))
#递归函数的优点是定义简单,逻辑清晰
#理论上,所有的递归函数都可以写成循环..
分类:
编程语言 时间:
2017-08-03 20:09:23
阅读次数:
137
有一个回调函数中发生了段错误,但经检查也没有什么明显的错误,然后用排除法一点一点屏蔽,最后定位在一个函数里出错,但这个函数没什么明显错误。最后把入口参数改为引用传递就不报错误。
但隔了一段时间这个函数又报错了,原因是我加一行代码,但这行代码就是一个赋值语句;于是我不甘心,又开始排除法,最后定位到一个变量,加上它报错,不加就不报错;我一直怀疑是不是linux对一个函数的大小有限制;于是将这个函数换成全局变量,而在此函数中用的此变量时候采用指针,诶,不再报段错误了,世界终于安静了。
但不知是根本原因是什么,于...
分类:
其他好文 时间:
2014-11-05 23:11:59
阅读次数:
271