dump文件字符串内容搜索

原创 2017年01月02日 22:24:53

当我们的进程发生了coredump,而我们想看一下core文件中是否包含某字符串,应该怎么做呢?

 

举个简单的例子:

 

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int main()
{
    char *testStr = "test_info";
    while(1)
    {
        char *verifyStr = (char*)malloc(sizeof(testStr));
        strncpy(verifyStr,testStr,strlen(testStr));
        free(verifyStr);
    }
    return 0;
}

 

如上代码中,会在全局变量区保存字符串test_info,也会在堆上申请内存,保存test_info,只不过每次存储后内存地址又被释放了。

 

如上代码对应的进程如果coredump了,那dump文件中一定是存在test_info的字符串内容的。

 

下面我们就介绍几种看dump文件中是否包含某一个字符串的方法。并能看到字符串对应的位置的上下文信息。

 

首先,我们把上面代码放到某一linux机器上,gcc -o dumpTest dumpTest.c编译一下,生成可执行文件。Chmod a+x dumpTest给该文件赋予可执行权限。./dumpTest执行程序。

最后使用gcore生成该进程的dump文件。

 

 




 

gcore的格式

 

   gcore -o filename PID

 

1、使用find命令

  

    

 

使用find ./ -type f -name dumpTest_core_23782.23782|xargs grep "test_info"命令查找文件中是否包含”test_info”字段内容。

 

2、使用objdump命令

 

   

 

如上截图,使用objdump -s dumpTest_core_23782.23782|grep "test_info"命令查找dump文件中是否包含”test_info”字符串,以及字符串在dump文件中的位置。

 

3、使用UE

 

   UE可以查看很多格式类型的文件,包括dump文件。

 

   如下截图,首先用UE打开dump文件

 

    

 

然后,使用ctrl+F 搜索字符串

 

 

 

 

 

如上截图所示,查找的时候勾选”查找ASCII”“匹配大小写”。点击查找下一个个,就能看到字符串,同时还能看到字符串在dump文件中的上下文内容。

版权声明:本文为博主原创文章,未经博主允许不得转载。

objdump的使用

一、objdump的使用 objdump是gcc工具,用来查看编译后目标文件的组成。 常用命令: objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出; objdum...

objdump 反汇编

objdump是gcc工具,用来查看编译后目标文件的组成。 常用命令: objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出; objdump -t obj:输出目标文件的符号表...

windows 应用程序崩溃时的内存转储及dump文件的分析

1、在现场设置程序崩溃时的自动内存转储,得到dump文件        在windows 注册表如下项:      //HKEY_LOCAL_MACHINE/Software/Microsoft/...
  • SP_daiyq
  • SP_daiyq
  • 2012年09月11日 10:27
  • 12142

C++ 生成Dump文件

  • 2013年07月07日 18:27
  • 8KB
  • 下载

Dump文件编辑中文版

  • 2016年01月09日 23:53
  • 1.02MB
  • 下载

使用Windbg解析dump文件

第一章 常用的Windbg指令 ①!analyze -v  ②kP                            可以看函数的入参 ③!for_each_frame dv /t       ...
  • xuleilx
  • xuleilx
  • 2013年12月28日 00:26
  • 39390

DUMP文件uid

  • 2014年11月19日 00:26
  • 236B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dump文件字符串内容搜索
举报原因:
原因补充:

(最多只允许输入30个字)