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的更多相关文章

  1. 使用GDB 追踪依赖poco的so程序,core dump文件分析.

    前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...

  2. gdb调试常用实用命令和core dump文件的生成

      1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...

  3. linux下生成core dump文件方法及设置

    linux下生成core dump文件方法及设置    from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...

  4. linux 下如何打开core dump文件开关

    dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息.在window下,要能生成dump文件,需要自己编写相应的代码.不过现在网上可以找到相应的代码,只要把它下载后然后加到 ...

  5. Linux使用笔记: 定制core dump文件的文件名

    在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因.缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要 ...

  6. core dump文件的生成

    #include <stdio.h> int main(int argc, char *argv[]) { char * p = "abcdefg"; p[] = '; ...

  7. 无法生成core dump文件的几个原因

    1. 进程无写权限(如目录不可写.存在同名的非regular文件(目录或符号链接)等) 2. 存在同名文件且有多个hard link 3. 文件系统空间不足 4. 指定目录不存在 5. 进程的RLIM ...

  8. gdb调试常用实用命令和core dump文件的生成(转)

    1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的 ...

  9. linux 平台core dump文件生成

    1. 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. root@hbg:/# ulimit -c0root@hbg:/# 2.使用ulimit -c ...

随机推荐

  1. 三十、CentOS 7之systemd

    一.系统启动流程 POST --> bootloader  --> MBR工作 --> kernel(initramfs/initrd) --> ro rootfs --> ...

  2. 第一次Java测试及感触(2018.9.20)

    在本周周四进行了java测试,有一点感触,测试的题目是用Java实现一个ATM机的管理系统.之前老师提前给我们样卷,结果考试的时候换了题型,瞬间脑子空白,一时不知道怎么下手,因为暑假虽然涉猎了java ...

  3. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库 ...

  4. Maven的概述和基础(学习整理)

    1. Maven是啥 Maven是一个项目管理工具,包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期(Lifecycle),一个依赖管理系统,和用来运行定义在生命周期阶段中的插件目标的 ...

  5. Linux设备驱动程序学习----目录

    目录 设备驱动程序简介 1.设备驱动程序简介 构造和运行模块 2.内核模块和应用程序的对比 3.模块编译和装载 4.模块的内核符号表  5.模块初始化和关闭  6.模块参数  7.用户空间编写驱动程序 ...

  6. js常用时间转换函数

    1.秒转换为时分秒 // 秒转换为时分秒 export function secExchangeMoment(value = 0){ let secondTime = parseInt(value); ...

  7. Servlet的概述

    A: Servlet的概述: server applet , 是一个运行在服务器端的小应用程序 B: 就是一个接口,作用: servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web ...

  8. 关于Java 8新引入语法特性的简要说明

    Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference.由于官方网站的介绍稍显罗嗦,而且例子也有些复杂.我这里将提供一些更为浅显.直观的例子来帮 ...

  9. C++ STL copy copy_backward

    #include <iostream>#include <algorithm>#include <vector>#include <functional> ...

  10. cmake log

    20:28:54: 为项目RoboticArmProject_CarTerminal_V20190530执行步骤 ...20:28:54: 正在启动 "/usr/bin/make" ...