草庐IT

dia2dump

全部标签

驱动开发:内核中实现Dump进程转储

多数ARK反内核工具中都存在驱动级别的内存转存功能,该功能可以将应用层中运行进程的内存镜像转存到特定目录下,内存转存功能在应对加壳程序的分析尤为重要,当进程在内存中解码后,我们可以很容易的将内存镜像导出,从而更好的对样本进行分析,当然某些加密壳可能无效但绝大多数情况下是可以被转存的。在上一篇文章《驱动开发:内核R3与R0内存映射拷贝》介绍了一种方式SafeCopyMemory_R3_to_R0可以将应用层进程的内存空间映射到内核中,要实现内存转储功能我们还是需要使用这个映射函数,只是需要在此函数上增加一些功能而已。在实现转存之前,需要得到两个东西,进程内模块基地址以及模块长度这两个参数是必不可

【c++ debug】core dump调用栈不显示行号 & no debugging symbols found

1.问题问题1gdb./project显示没有debug符号Readingsymbolsfromproject_name(nodebuggingsymbolsfound)…done问题2coredump调用栈不显示行号…#10x00007ffff70ac795infeature()constat/xxx/.so_path/xxx/project.so2.原因编译没有加-g选项。-g用于gdb调试3.解决方法CMakeLists.txt加编译选项-gadd_definitions("-Wall-g")4.修改后Readingsymbolsfromproject_name…done…#10x000

【c++ debug】core dump调用栈不显示行号 & no debugging symbols found

1.问题问题1gdb./project显示没有debug符号Readingsymbolsfromproject_name(nodebuggingsymbolsfound)…done问题2coredump调用栈不显示行号…#10x00007ffff70ac795infeature()constat/xxx/.so_path/xxx/project.so2.原因编译没有加-g选项。-g用于gdb调试3.解决方法CMakeLists.txt加编译选项-gadd_definitions("-Wall-g")4.修改后Readingsymbolsfromproject_name…done…#10x000

使用dotnet-monitor sidecar模式 dump docker运行的dotnet程序.

前情概要随着容器和云技术的发展,大量的应用运行在云上的容器中,它们的好处是毋庸置疑的,例如极大的提高了我们的研发部署速度,快速的扩缩容等等,但是也存在一些小小的问题,例如难以调试.基于VM的部署我们可以通过安全的方式登录到主机上做一些你想做的事情,但是云上的容器那就是不太方便了(目前AWS的ECS已经有类似dockerexec的方式直接进入容器中了,其他的云未作了解).但是就算能进入容器也不意味着调试就好做了,通常来说使用的镜像都是经过优化和精简的(如果要调式可能需要安装大量的组件).所以,接下来介绍一下使用dotnet-monitor来内存转储(memorydump)运行在容器中的dotne

使用dotnet-monitor sidecar模式 dump docker运行的dotnet程序.

前情概要随着容器和云技术的发展,大量的应用运行在云上的容器中,它们的好处是毋庸置疑的,例如极大的提高了我们的研发部署速度,快速的扩缩容等等,但是也存在一些小小的问题,例如难以调试.基于VM的部署我们可以通过安全的方式登录到主机上做一些你想做的事情,但是云上的容器那就是不太方便了(目前AWS的ECS已经有类似dockerexec的方式直接进入容器中了,其他的云未作了解).但是就算能进入容器也不意味着调试就好做了,通常来说使用的镜像都是经过优化和精简的(如果要调式可能需要安装大量的组件).所以,接下来介绍一下使用dotnet-monitor来内存转储(memorydump)运行在容器中的dotne

MySQL 官方出品,比 mydumper 更快的多线程逻辑备份工具-MySQL Shell Dump & Load

mysqldump和mydumper是我们常用的两个逻辑备份工具。无论是mysqldump还是mydumper都是将备份数据通过INSERT的方式写入到备份文件中。恢复时,myloader(mydumper中的恢复工具)是多线程导入,且一个INSERT语句中包含多条记录,多个INSERT操作批量提交。基本上,凡是我们能想到的,有助于提升导入速度的,myloader都会使用或有选项提供。单就恢复速度而言,可以说,myloader就是逻辑恢复工具的天花板。既然如此,还有办法能继续提升逻辑恢复工具的恢复速度么?毕竟,备份的恢复速度直接影响着灾难发生时数据库服务的RTO。答案,有!这个就是官方在MyS

MySQL 官方出品,比 mydumper 更快的多线程逻辑备份工具-MySQL Shell Dump & Load

mysqldump和mydumper是我们常用的两个逻辑备份工具。无论是mysqldump还是mydumper都是将备份数据通过INSERT的方式写入到备份文件中。恢复时,myloader(mydumper中的恢复工具)是多线程导入,且一个INSERT语句中包含多条记录,多个INSERT操作批量提交。基本上,凡是我们能想到的,有助于提升导入速度的,myloader都会使用或有选项提供。单就恢复速度而言,可以说,myloader就是逻辑恢复工具的天花板。既然如此,还有办法能继续提升逻辑恢复工具的恢复速度么?毕竟,备份的恢复速度直接影响着灾难发生时数据库服务的RTO。答案,有!这个就是官方在MyS

一次k8s docker下.net程序的异常行为dump诊断

背景昨天,一位朋友找到我寻求帮助。他的项目需要调用一个第三方项目的webAPI。这个webAPI本身可从header,querystring中取相关信息,但同事发现他在调用时,无法按期望的那样从querystring中传参数给到第三方webAPI(webAPI仿佛忽略了从querystring过来的信息),朋友不知道是这个webAPI的问题,还是自己调用代码的问题了。。由于这个webAPIservice是他们公司内部的某team的项目,所以朋友虽然可以看到源码,但他并不能快速确定原因,维护项目的人又不好找。通过webAPIservice代码他自己找到了可疑的原因是webAPI中的这个方法有可能

一次k8s docker下.net程序的异常行为dump诊断

背景昨天,一位朋友找到我寻求帮助。他的项目需要调用一个第三方项目的webAPI。这个webAPI本身可从header,querystring中取相关信息,但同事发现他在调用时,无法按期望的那样从querystring中传参数给到第三方webAPI(webAPI仿佛忽略了从querystring过来的信息),朋友不知道是这个webAPI的问题,还是自己调用代码的问题了。。由于这个webAPIservice是他们公司内部的某team的项目,所以朋友虽然可以看到源码,但他并不能快速确定原因,维护项目的人又不好找。通过webAPIservice代码他自己找到了可疑的原因是webAPI中的这个方法有可能

认识Dump文件及抓取Dump的方式

一、什么是Dump文件Dump文件又叫内存转储文件或者叫内存快照文件,是进程的内存镜像。在进程崩溃时或进程有其他问题时,甚至是任何时候,我们都可以通过工具抓取系统或某进程的dump供调试分析用。dump文件中包含了程序运行的模块信息、线程信息、堆栈调用信息、异常信息等数据。当我们的应用程序发布出去,在客户机上出线了问题(崩溃、失去响应、资源消耗过高,性能不理想),由于这些问题不是发生在开发环境下的,这时我们就需要在客户机上想办法抓取dmp文件,拿回来进行分析。windows系统自己出了问题,比如蓝屏了,这时系统会自动产生dump文件,被微软收集分析。二、Dump文件的分类  1、内核模式Ker