崩溃了没有生成dump的分析步骤

2023-10-27


很大可能,在用户现场的时候,可能存在崩溃了但是没有生成dump的情况,可能只能有一些系统日志或者直接给你个截图什么的分析。那这种情况应该怎么分析呢?

#include "stdafx.h"

void Test()
{
	std::cout << "this is test!" <<std::endl;
	char* pTest = NULL;
	*pTest = '1';
}


int _tmain(int argc, _TCHAR* argv[])
{
	Test();
	system("pause");
	return 0;
}

1、系统日志的错误信息

首先我们可以看一下系统日志(控制面板\系统和安全\查看事件日志),打开事件查看器——windows日志——应用程序,根据崩溃的进程找到对应的错误日志

在常规页,我们可以知道以下信息:
错误应用程序名称以及版本
错误模块名称以及版本
异常代码
错误偏移量
错误进程ID
错误应用程序启动时间
错误应用程序路径
错误模块路径
报告ID
错误程序包全名
错误程序包相对应用程序ID

在这里,错误模块名称以及版本、错误偏移量对我们的分析起关键作用。
系统日志错误信息

2、分析崩溃

1、获取exe和pdb

在第1步中我们知道了崩溃的模块以及模块的版本(测试用的,只有本地一个,因此不存在查找之类的操作),接着去取对应的exe和pdb放在同一个目录下
exe和pdb

2、ide打开对应exe

打开exe时,选择使用PE,点击OK按钮
若弹出确认框,选择yes

在这里插入图片描述
菜单栏——打开——选择对应的exe文件——打开
打开exe
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、找基址

工具栏Edit——Segments——Rebase program…,如下

在这里插入图片描述

在这里插入图片描述
说明基址是:0x400000

4、查找错误位置

目前的代码显示的是汇编的,我们可以在IDA点击热键F5切换成C代码,如下
在这里插入图片描述

从上面,我们知道基址是0x400000,错误偏移量是 0x0000102c,因此计算一下:
0x400000 + 0x0000102c = 0x40102c

接下来我们跳转到这个地址,按‘G’,在弹出的地址栏中输入该值
在这里插入图片描述
得到
在这里插入图片描述
光标定位在该行,通过查看源代码,发现是这里有问题
在这里插入图片描述

这样我们就可以得到一个猜测的方向了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

崩溃了没有生成dump的分析步骤 的相关文章

  • 在哪里可以找到并下载不同版本的 mscorwks.dll 和 mscordacwks.dll?

    我试图习惯使用 WinDbg 在能够获取故障转储时对其进行故障排除 但每次我这样做时 它似乎都会要求我提供不同版本的 mscorwks dll 和 mscordacwks dll 而我不这样做并不总是能够访问转储来源的机器 除了告诉最终用户
  • WinDbg 应该慢得令人难以忍受吗?

    我正在尝试分析一些小型故障转储 我使用的是 Windows 10 Pro Build 1607 和 WinDbg 10 0 14321 1024 我将符号文件路径设置为 SRV C SymCache https msdl microsoft
  • 在无头模式下运行 WinDbg

    有没有办法让 WinDbg 处于纯无头模式 我的用例是 我应该能够在命令行上模拟 analyze v 命令进行小型转储 而无需启动 WinDbg GUI 使用 Windows 调试工具 还可以cdb 控制台调试器 要调试故障转储 请使用 z
  • 如何在应用程序一开始就破坏堆栈

    堆栈帧指针 EBP 应始终指向前一个堆栈帧正确的位置 但为什么我的应用程序中不是这样 这表明确实有问题 很难相信 我创建了多个简单的演示应用程序 其中堆栈指针始终指向前一个堆栈帧 但我无法理解为什么此应用程序中不是这种情况 而是在我的应用程
  • 诊断无法停止的应用程序

    我们的Windows应用程序经常挂在内存中 我正在尝试使用windbg来跟踪 下问题 我对 Windbg 很陌生 需要一些建议 我 已经开始阅读高级 Windows 调试 该应用程序是用 VB 编写的 C 和 COM 对象的混合体 偶尔当
  • WinDbg 在 MS 符号服务器上找不到 ntdll 的符号

    我正在尝试调试可执行文件 notepad exe 来自 Windows 10 发行版 并且需要来自 Microsoft 符号服务器的符号 ntdll pdb 但调试器返回错误 指出找不到指定的文件 0 000 gt reload Reloa
  • 使用 WinDbg 查找堆上所有 X 类型的 C++ 对象

    我正在尝试查找所有类型的对象module SomeClass在堆中 我认为这样的命令会起作用 gt s v 0 L 0xfffffff module SomeClass 但可惜 事实并非如此 如果我知道如何找到该类的 vtable 地址 我
  • 如何设置 Windows 符号服务器

    我在网络上有一个备用服务器 我想用它来托管我们所有的构建符号 我已经知道如何在本地开发系统上设置符号缓存并将调试器 例如 Windbg 指向 符号文件路径 中的该路径 我认为我可以对网络上具有自己的符号缓存 例如 host symbols
  • SOS 不支持当前目标架构

    我正在尝试使用 Windbg 来研究在 x64 计算机上为我们的 x86 进程创建的挂起转储文件 这是一个 4 0 x86 应用程序 因此为了获得非托管堆栈 我必须执行以下操作 loadby sos clr load wow64exts s
  • !address -summary 和 !heap -s 在内存泄漏问题上存在分歧?

    我有一个 32 GB 的转储文件 address summary显示堆使用量为 32 033 Gb 但是 heap s将所有堆显示为小堆 2MB 或更小 关于下面显示的两个命令之间的差异有什么想法吗 附 Windbg版本6 3 9600 1
  • 小型转储中的 .ni.dll 和 .ni.exe 文件是什么?

    由于我的应用程序崩溃 我从 Windows 应用商店应用程序提交过程 由审阅者发送 收到了一个小型转储 我在加载应用程序的符号时遇到问题 因为错误发生在内部App ni exe 一个我不知道从哪里来的文件 我的应用程序只有一个App exe
  • WinDbg - 将字符串参数与内存中的字符串进行比较

    我需要比较一个字符串 作为参数传递给WinDbg用记忆中的字符串 如何才能实现这一目标 例如 该字符串位于加载的 PE 内的特定偏移处 所以 我可以通过执行轻松读取字符串da c 100
  • 如何识别STATUS_INVALID_CRUNTIME_PARAMETER异常

    平台是Windows 7 SP1 我最近花了一些时间调试由于代码将无效参数传递给 安全 CRT 函数之一而引起的问题 结果 我的应用程序立即中止 没有任何警告或任何内容 甚至没有崩溃对话框 起初 我尝试通过将 Windbg 附加到我的应用程
  • 实时调试堆栈溢出

    我有一个托管代码 Windows 服务应用程序 由于托管 StackOverFlowException 该应用程序在生产中偶尔会崩溃 我知道这一点是因为我在崩溃模式下运行了 adplus 并使用 SoS 事后分析了崩溃转储 我什至附加了 W
  • 为什么“this”指针在单步执行代码时会改变其值?

    我正在调试崩溃 我注意到调试器的一个步骤 this指针改变了它的值 经过 3 个步骤 它最终得到了值 0x00000001 应用程序崩溃了 现在 0x00000001 值显然是错误的 但我真的应该期待吗this当我单步执行调试器时值会改变吗
  • 转储文件分析

    Recently I start facing issue on few servers where CPU start consuming more resources than usual trend I am trying to fi
  • 如何从 Visual Studio 调试器和立即窗口中运行 Windbg/dbeng.dll 命令?

    我在 Bart de Smet 的视频演讲中看到 他通过将 Windbg 命令输入到即时窗口在 Visual Studio 中 当在 Visual Studio 调试器内以调试模式运行项目时 所以 我想自己尝试一下 这就是我所做的 我去了项
  • WinDbg中出现“SOS版本与您正在调试的CLR版本不匹配”怎么办?

    我的某些应用程序出现问题 它是一个基于 wcf 的应用程序 在 Windows 2003 Server x86 的 IIS6 下运行 在事件日志中 我从 W3SVC WP 源 EventID 2262 收到这样的错误 ISAPI C WIN
  • 如何证明 .NET CLR JIT 每次运行只编译每个方法一次?

    There s 一个老问题 https stackoverflow com questions 1255803 does the net clr jit compile every method every time 1255832每次询问
  • WinDbg从符号中获取所有函数的地址

    执行命令x ShittyProject 我得到这样的输出

随机推荐

  • 绕过图片格式限制上传木马获取WebShell

    思路 图片上传功能中 前端页面上传的是 png格式的图片文件 但是抓包Request中修改图片后缀为 php 可以绕过对上传文件格式的限制 文件的上传路径可以在上传后的页面或查看上传成功后的response中有显示 记录下来后用菜刀连接即可
  • ApplicationContext.log 将servlet[XXX]标记为不可用 问题已解决!!!

    期间我清楚Maven重新构建项目 手动在 lib 文件中添加 servlet api 等相关jar包无果 最终我尝试着把Tomcat从 10 0 6 版本降低到 9 0 46 版本 更改环境变量重新运行 竟然好了 也许是 Tomcat 版本
  • mac下通过终端安装python3问题记录及解决

    安装python时 首先想到的是升级电脑里的python版本 可是上网搜索后发现升级可能会使用一些基于python的应用运行有问题 所以就尝试安装两个版本 一 查看当前的python版本 打开终端 输入命令python V 二 安装Xcod
  • C语言——可执行程序过程

    我们在编写代码的时候 不知道大家是否和一开始的我一样 在运行代码的时候就直接CTRL F5运行了呢 一开始 我只知道会生成一个 exe的可执行文件 中间的原理我一点也不知道 今天就由我带领大家对生成可执行的文件有更深的一层理解 程序的翻译环
  • 安装Ubuntu系统详细教程

    一 前言 本篇文章详解介绍一下如何安装Ubuntu系统 笔者在安装的过程中踩过很多坑 重装了很多次 现在把安装过程中遇到的问题也列出来 供大家参考 二 准备工作 这个环节很重要 工欲善其事 必先利其器 2 1 固态硬盘 如果是做系统源码开发
  • Android GB28181设备接入端语音广播和语音对讲技术实现探究

    上篇文章提到Android端GB28181接入端的语音广播和语音对讲的实现 从spec角度大概介绍了下流程和简单的接口设计 好多开发者私信我 希望展开说一下 其实这块难度不大 只是广播和对讲涉及到双向实现 如果之前没有相关的积累 从头实现麻
  • gitlab常用操作总结

    1 常用命令 1 git clone xx git 首先从git项目xx gitclone项目到本地 2 clone之后 使用命令行项目进入项目所在文件夹 此时一般在master分支下 为了不影响主分支代码 进行新建分支 git check
  • 40个大数据学习资源,个个是干货,最后7个太给力

    数据是驱动商业向前发展的核心 更是人类社会的未来 尽管将马云的这句话断章取义地拿出来说会显得唐突 但这话所表达的意思却显而易见 今天给大家分享的这40个教程 送给对未来抱有远见的乐观主义者 涵盖了大数据入门的大多基础知识 从Java基础到S
  • 沉浸式翻译 安装及使用

    介绍一下最近非常或的沉浸式翻译工具 非常有助于外文阅读 包括网页 pdf等 可以同时显示原文和译文 操作简单 使用起来还是非常友好的 先上链接 介绍 沉浸式翻译 如何使用 沉浸式翻译 1 安装 支持Edge Chrome Firefox和S
  • algorithm 不修改序列的操作

    文章目录 非修正序列算法 adjacent find first last count first last val for each first last func 相关参考 非修正序列算法 非修正序列算法不修改他们所作用的容器 例如计算
  • SpringBoot 集成Kafka

    Kafka项目整体结构图 父类项目 pom xml 依赖
  • 高血糖克星!育润齐梅牌胰力佳奶粉调节血糖大作用

    21世纪以来 健康一直是大家关注的重点 保健品市场行业正在慢慢扩张 尽管很多人对其有一定的争议 但不可否认的是 越来越多的消费者最终选择了接受 并且消费群体逐渐往年轻态发展 不再是老年人的专属需求 在健康大数据的观测下 已知我国目前是全球糖
  • Unity第一人称视角相机跟随鼠标移动

    基于Unity实现第一人称视角相机跟随鼠标移动 private float xRotate 0 0f private float yRotate 0 0f Void Update xRotate Input GetAxis Mouse Y
  • Vue-cli 相关webpack配置-量化打包时间和打包后分析

    参考 https blog csdn net weixin 41779718 article details 110038340 主要介绍两个插件 用于量化打包时间 和打包后分析 speed measure webpack plugin 可
  • Android中Fragmnet的跳转

    1 Fragment跳转到Fragment中 描述 我的项目是由MainActivity启动的Fragment作为底部导航栏 HomeFragment StoreFragment PersonalFragment 情景一 点击HomeFra
  • HTTP 1.1与HTTP 1.0的比较

    HTTP 1 1与HTTP 1 0的比较 一个WEB站点每天可能要接收到上百万的用户请求 为了提高系统的效率 HTTP 1 0规定浏览器与服务器只保持短暂的连接 浏览器的每次请求都需要与服务器建立一个TCP连接 服务器完成请求处理后立即断开
  • Allegro学习笔记:Allegro快速入门之一--查看BRD Layout

    由于工作需要 需要学习在Allegro下查看以及简单修改pcb 然而在网上找了一阵子资料 发现很多资料都很零碎 不成系统 而成系统的 又把读者当成要学习用Allegro Layout的对象 从头到尾完整的讲解 但是虽然完整 却并不详细 导致
  • 代码审计工具学习之RISP(安装以及初步操作)

    目录 1 代码审计 1 1名词解释 1 2代码审计的重要性 1 3代码审计的步骤 1 4代码审计的内容 1 5常见的代码审计工具 2 RIPS 2 1什么是RIPS 2 2 RIPS的安装过程 3典型漏洞分析 3 1 文件包含漏洞分析 3
  • Vue3/ 父组件 ref 获取子组件内属性或方法 子组件 defineExpose 暴露方法 或 属性 总结、

    一 父组件 ref 获取子组件内属性或方法 总结 介绍 Vue3中 父组件拿到 子组件内方法 属性 可以通过 ref 但是将 ref 插入子组件标签身上后 打印出来是 什么都没有的 是空的 这个是为什么呢 哦 原来 Vue3严格性问题 属性
  • 崩溃了没有生成dump的分析步骤

    文章目录 1 系统日志的错误信息 2 分析崩溃 1 获取exe和pdb 2 ide打开对应exe 3 找基址 4 查找错误位置 很大可能 在用户现场的时候 可能存在崩溃了但是没有生成dump的情况 可能只能有一些系统日志或者直接给你个截图什