Core dump文件和ECFS
core dump文件
core dump核心转储文件,一些信号的处理方式,会生成一个elf格式的文件,用来分析进程崩溃情况。
总结一下,core dump核心转储文件就是将所有的vma都映射成一个elf的段,然后生成一个可执行文件。注意,核心转储文件并不会包含代码段,因此使用gdb调试核心转储文件的时候需要源代码。
除了内存段之外,还会在文件的头部加上一个note段,这个note段的信息包括信号信息(当前造成core dump的信号,pending的信号等待),各种时间(系统时间,进程各种执行时间等等),寄存器信息。
使用eu-readelf -n可以显示核心文件的note段信息,包含寄存器状态,辅助向量,进程各个id、信号信息和文件映射等
ECFS
linux二进制分析中提到的拓展核心文件快照技术
ecfs在原core dump文件的基础上增加一个note段,放入其他的信息,包括打开文件列表,proc/pid目录下的信息压缩,文件路径等等
然后由于coredump文件只会生成一个页大小的代码,ecfs还会根据原可执行文件来完整的拔下代码段
还会进行注入代码的标注,根据maps文件的映射库路径找到库文件,判断是库还是注入代码
参考
https://blog.csdn.net/_xiao/article/details/22389997
Core dump文件和ECFS的更多相关文章
- 使用GDB 追踪依赖poco的so程序,core dump文件分析.
前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...
- gdb调试常用实用命令和core dump文件的生成
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- linux 下如何打开core dump文件开关
dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息.在window下,要能生成dump文件,需要自己编写相应的代码.不过现在网上可以找到相应的代码,只要把它下载后然后加到 ...
- Linux使用笔记: 定制core dump文件的文件名
在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因.缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要 ...
- core dump文件的生成
#include <stdio.h> int main(int argc, char *argv[]) { char * p = "abcdefg"; p[] = '; ...
- 无法生成core dump文件的几个原因
1. 进程无写权限(如目录不可写.存在同名的非regular文件(目录或符号链接)等) 2. 存在同名文件且有多个hard link 3. 文件系统空间不足 4. 指定目录不存在 5. 进程的RLIM ...
- gdb调试常用实用命令和core dump文件的生成(转)
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的 ...
- linux 平台core dump文件生成
1. 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. root@hbg:/# ulimit -c0root@hbg:/# 2.使用ulimit -c ...
随机推荐
- UVALive 3716 DNA Regions ——(式子变形)
一开始直接想到了二分,写了一发然后过了全部样例就交了,果断WA.因为这个问题显然是不满足单调性的. 然后想之前刚做的斜率优化DP,但是那个是求斜率最大值,不是求满足斜率大于一定值的最大长度的.也构造不 ...
- flask 中扩展 flask-login
- html中如何获取元素在文档中的位置
html中如何获取元素在文档中的位置 一.总结 一句话总结: $("#elem").offset().top $("#elem").offset().left ...
- win10系统搭建vagrant时开启bios,虚拟化问题
VT-x is disabled in the BIOS的意思是VT-X虚拟化技术处于禁止关闭状态,需要在电脑主板BIOS中开启CPU虚拟化技术thinkpad重启F1进入BIOS,选择: Sercu ...
- HearthBuddy 召唤随从的问题
代码如下,在SilverFish\SilverFish\ai\Playfield.cs文件中 public void callKid(CardDB.Card c, int zonepos, bool ...
- C++重写(覆盖)、重载、重定义、多态
1 重写(覆盖)override override是重写(覆盖)了一个方法,以实现不同的功能.一般用于子类在继承父类时,重写(覆盖)父类中的方法.函数特征相同,但是具体实现不同. 重写需要注意: 被重 ...
- [go]grpc远程接口调用实现
// grpc序列化/反序列化成对应语言的对象 // 1.写idl(数据类型+方法) // 2.生成对应语言的序列化/反序列化代码 // 3.方法需要自己实现 // 环境(将gopath/bin加入p ...
- Qt编写自定义控件34-磁盘容量统计
一.前言 磁盘容量统计控件,说白了,就是用来统计本地盘符占用的容量,包括但不限于已用空间.剩余空间.总大小.已用百分比等,其中对应的百分比采用进度条显示,该进度条的前景色和背景色及文字颜色可以设置,在 ...
- 字典和Model的互转
LHModel的简单使用: LHModel是一个JSON转model,model转JSON的工具类. 使用很多runtime的API.调用简单,真正能用到的只有两个方法. Model* model = ...
- PHP常用正则表达式精选
$regex = '[\u4e00-\u9fa5]'; //匹配中文字符的正则表达式 $regex = '^[\u4E00-\u9FA5A-Za-z0-9]+$'; or $regex = '^[\u ...