地址 https://leetcode-cn.com/problems/minimum-insertions-to-balance-a-parentheses-string/ 给你一个括号字符串 s ,它只包含字符 '(' 和 ')' 。一个括号字符串被称为平衡的当它满足: 任何左括号 '(' 必须 ...
分类:
其他好文 时间:
2020-08-09 19:08:34
阅读次数:
83
前言在现网环境下,程序奔溃后不一定会留下core文件,原因有很多,比如存储空间不足就是其中一个常见的原因。此时我们只能依据linux记录的错误日志来定位问题。涉及linux命令本文涉及以下几条命令1. dmesg命令,用于获取程序出错时的堆栈地址1)dmesg |grep -E 'segfault|... ...
分类:
其他好文 时间:
2020-05-08 16:10:40
阅读次数:
85
尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么? 主要有三种类型:内存泄露、内存碎片和内存崩溃 内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。碎 ...
分类:
其他好文 时间:
2020-04-11 23:59:52
阅读次数:
119
程序:UnPackMe_PELock1.06.d.exe 需要知道的:KiUserExceptionDispatcher的领空的当前堆栈地址ESP+0x14就是异常触发地址,这个函数是系统派发异常函数,也就是说所有异常都要经过该函数来派发,那么该函数中的参数也就会指向异常的位置,也就是ESP+0x1 ...
分类:
其他好文 时间:
2019-12-28 16:34:40
阅读次数:
95
一、 1、Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。(在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置)。 2、线程属性pthread_attr_t 。 (1)在/usr/incl ...
分类:
编程语言 时间:
2019-09-01 14:48:15
阅读次数:
104
栈溢出是缓冲区溢出中最为常见的一种攻击手法,其原理是,程序在运行时栈地址是由操作系统来负责维护的,在我们调用函数时,程序会将当前函数的下一条指令的地址压入栈中,而函数执行完毕后,则会通过ret指令从栈地址中弹出压入的返回地址,并将返回地址重新装载到EIP指令指针寄存器中,从而继续运行,然而将这种控制 ...
分类:
其他好文 时间:
2019-08-30 14:01:22
阅读次数:
168
一、用户态和内核态 内核态和用户态是操作系统的两种运行级别,用于区分不同程序的不同权利。 内核态就是拥有资源多的状态,或者说访问资源多的状态,也称为特权态。相对来说,用户态就是非特权态,访问的而资源将受到限制。如果一个程序运行在特权态,该程序就可以访问计算机的任何资源,它的资源访问权限不受限制。如果 ...
分类:
其他好文 时间:
2019-08-28 11:29:27
阅读次数:
86
(1)原理: 地址空间布局随机化(ASLR)是随机化的利用缓解技术:堆栈地址,栈地址,共享库地址。一旦上述地址被随机化,特别是当共享库地址被随机化时,我们采取的绕过NX bit的方法不会生效,因为攻击者需要知道libc基地址。而此时我们可以采用return-to-plt技术,在这种技术中,而不是返回 ...
分类:
系统相关 时间:
2019-05-15 16:42:21
阅读次数:
148
一. 设置栈 1.1. C语言运行时需要和栈的意义 1.1.1. “C语言运行时(runtime)”需要一定的条件,这些条件由汇编来提供。C语言运行时主要是需要栈 1.1.2. C语言与栈的关系 a. C语言中的局部变量都是用栈来实现的。如果我们汇编部分没有给C部分预先设置合理合法的栈地址,那么C代 ...
分类:
其他好文 时间:
2019-01-07 01:35:59
阅读次数:
153
任务内容 1.使用fork,exec,wait实现mybash 查找资料: "fork函数" 通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存信息进程控制块( ...
分类:
其他好文 时间:
2018-11-25 21:16:42
阅读次数:
167