在GitHub上看到了一个利用SilentProcessExit机制dump内存的项目,于是学习了一下,于是今天来聊一聊利用SilentProcessExit机制dump内存,首先我们知道,在程序崩溃时或者系统崩溃时会产生崩溃后的文件...而这种调试技术,可以派生 werfault.exe进程,可以用来运行任意程序或者也可以用来转存任意进程的内存文件或弹出窗口。若派生新进程的话其进程树如下: ?...而利用这种机制,我们便可以用它来转储任意进程的内存,比如对我们比较有用的lsass进程。在这之前我们来看看如果想要做这些操作需要如何实现。...另外就是第二个注册表,这个主要是设置dump内存的一些细节问题,比如dump的位置、崩溃后操作的类型,这类选择的是LOCAL_DUMP,即0x2也就是为导致终止的进程和终止的进程创建一个转储文件,而需要注意的是...,于是我对代码进行了简单修改,使其可以正常dump,最后的代码已上传至Github。
dump文件传输到本地进行分析, 常常需要大量的等待时间。 使用IBM的eclipse的MAT工具可以直接在服务器上进行快速DUMP分析。...运行环境要求 linux操作系统 JDK8 以上 下载MAT的linux版本 Eclipse的MAT工具下载链接 MAT支持各种操作系统,找到Linux版本下载下来 #运行uname -m 看一下linux..._64.zip 解压配置MAT基本参数 unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip ## 修改MAT的内存大小, 注意这个大小要根据你...dump文件大小来的,如果dump文件是5GB那么 这里最好配>5GB 否则会报MAT内存不足的异常 ## 修改MemoryAnalyzer.ini 的 -Xmx6024m vi MemoryAnalyzer.ini...jmap dump整个堆 jmap -dump:format=b,file=jmap.info PID MAT分析 dump .
Core Dump 也称之为“核心转储”, 若当前操作系统开启了 core dump ,当程序运行过程中发生异常或接收到某些信号使得程序进程异常退出时, 由操作系统把程序当前的内存状况以及相关的进程状态信息存储在一个...通常,Linux 中如果内存越界会收到 SIGSEGV 信号,然后就会进行 Core Dump 相关操作。...在我们大部分人的认知中,潜意识地认为 Core Dump 是针对 Linux 内存快照。...其实,从本质上来讲,Core Dump 文件不仅仅包含内存信息,譬如,还有些关键的程序运行状态也会同时 Dump 下来,例如,寄存器信息(包括程序指针、栈指针等)、内存管理信息、相关处理器信息以及操作系统状态及相关信息...在基于 Linux 系统,应用程序发生异常时,会产生 Core Dump 文件记录,这些异常或多或少甚至几乎都与“内存”脱不了干系,总结起来主要涉及以下: 1、堆栈溢出问题 通常来讲,
但是生产上分析dump文件的话,还是linux工具比较方便,因为生产上的dump文件一般都至少是GB级别的,这么大的文件拷贝到本机要耗费很长时间,特别是遇到生产事故的时候,时间=金钱。...那么linux有什么好的解析dump工具呢? 如何解析 java dump的文件? 这里比较推荐IBM的eclipse的MAT工具。...运行环境要求 linux操作系统 JDK8 以上 下载MAT的linux版本 Eclipse的MAT工具下载链接 MAT支持各种操作系统,找到Linux版本下载下来 # 运行uname -m 看一下linux..._64.zip 解压配置MAT基本参数 unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip ## 修改MAT的内存大小, 注意这个大小要根据你...dump文件大小来的,如果dump文件是5GB那么 这里最好配>5GB 否则会报MAT内存不足的异常 ## 修改MemoryAnalyzer.ini 的 -Xmx6024m vi MemoryAnalyzer.ini
DUMP内存 这里使用的是第二种方法,DUMP内存有多种方法,可以采用VS的DEBUG工具进行内存DUMP,但是我们借助任务管理器简单创建完整的转储文件。...Task Manager->Processes->Right Click->Create dump file 通过WinHex查看转储文件,存在相应的明文数据 数据头为 “`… … 49 00
//http://androidxref.com/7.1.1_r6/xref/external/avahi/avahi-compat-howl/text-tes...
远程dump lsass.exe内存并解析 使用lsassy可以对远程机器进行自动化的lsass.exe内存dump和解析,利用过程如下: ? 该工具还提供了一个CrackMapExec的模块: ?...第二,我们需要看下如何dump进程的,分析代码,发现是利用两种方法: 1、 powershell.exe -NoP -C "C:\Windows\System32\rundll32.exe C:\Windows
-t :此模式用在察看 dump 起来癿备份文件中含有什么重要数据!...类似 tar -t 功能; -C :此模式可以将 dump 内的数据拿出来跟实际的文件系统做比较, 最终会列出『在 dump 档案内有记录的,且目前文件系统丌一样』癿档案; -i :迚入互模式...,可以仅还原部分档案,用在 dump 目录时的还原!...-f :后面就接你要处理的那个 dump 档案啰!... 用 restore 观察 dump 后的备份数据内容 [root@www ~]# restore -t -f /root/boot.dump 使用互动模式可以还原部分文档 [root@www mnt
jmap -heap 1234 查看进程号为1234的Java程序的整个jvm内存状态 jmap -histo 1234 查找进程号为1234的java程序的jvm堆中对象详细占用情况 jmap -dump...jmap -histo [pid] 导出整个JVM 中内存信息 jmap -dump:format=b,file=文件名 [pid] jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP...文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况 jhat -J-Xmx1024M [file] (此处的file指的是jmap -dump导出的内存数据文件) 执行后等待console...借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。...kill -3 [pid] 在Linux 上找到Java所在的进程号,然后执行以上命令,线程的相关信息就输出到console jstack jstack 是sun JDK 自带的工具,通过该工具可以看到
其实很多时候我们很难在正常编码写写出一个 OutOfMemoryError,因为这个过程你需要大量的往内存加数据,逐步把 JVM 的内存耗尽。...而只是1G内存容量(-Xmx1G),仅订单数据就要300多万条记录,谁又能写个 MyBatis SQL 操作,要一次直接把300万数据查询到程序内存里呢。 不过,还真可能有!...Eclipse MAT 安装配置 2.1 加大内存 -startup ...../xfg-dev-tech-dump/docs/dump HeapDumpPath 为你的工程完成路径,到出到 dump 文件夹下。...int[] memoryHog = new int[1000000]; // 大约占用 4MB 内存 // 模拟一些计算以避免 JIT 优化掉内存分配
进程崩溃时,Linux会将崩溃前进程的内存状态保存在core文件里,就像保存了案发现场的照片,可以帮助开发人员找到事故原因,修复程序。本文用简单的例子讲解如何根据core文件,定位进程崩溃的原因。...首先编写C++代码,定义一个空指针,对空指针所指向的内存区域写,发生段错误 coretest01.cpp #includeint main(){ int *p = NULL
0kB了,以前服务是正常的,猜测出现内存泄露。...所以使用Linux MAT工具先将文件分析完生成html文件,只有几百K,然后下载到本地用浏览器打开分析。 dump堆 首先使用下面命令找到服务的pid: jps -l 然后dump出此服务的堆。...jmap -dump:format=b,file=hummer.dump PID format=b,表示以字节的形式。文件名为hummer.dump。...-1.9.0.20190605-linux.gtk.x86_64.zip 修改MAT的内存大小大于dump出来的文件大小 vi MemoryAnalyzer.ini MAT分析 dump ....从hummer_Leak_Suspects可以看出如下信息: 点开详情: 可以看到ArrayList占用了89.84%的内存,再具体到类的代码,进行分析。
这工具好像是调用MiniDumpWriteDump api来dump内存的,自己都可以用c++实现个 #include "stdafx.h" #include #include...,绕过windows defender dump lsass内存,但是现在应该不行了,但是国内的还是随便过的。...,直接把实现dump lsass内存的shellcode进行bash64编码放在头文件的 现在作者学精了,把自己那段提取出来的shellcode base64给删了,之前这里都还有的,只有自己去提取了...,但是dump lsass内存dump不下来,应该是被守护进程保护了,绕不过。...lsass内存,且只把相关的内容给dump下来,非常的香!!!
本文记录我的电脑的内存条的硬件损坏了,导致用着用着就蓝屏,我通过启动和故障恢复配置自动蓝屏打 dump 的功能,在蓝屏时创建了 dump 文件。...通过分析 dump 文件大概猜测是内存的问题 以下是我用 windbg 分析的两次蓝屏 第一次是用着 VS 的过程蓝屏了,我发现好多次都是使用 VS 蓝屏的,一开始还以为是 VS 投毒了 PROCESS_NAME...KiPageFault 函数,即内存缺页错误堆栈,大概可以猜测和内存相关 第二个 dump 分析如下 PROCESS_NAME: svchost.exe TRAP_FRAME: ffff8b82b28b6d60...看到以上堆栈,只可以猜测是内存相关问题,不知道是驱动层问题,还是超频问题,还是内存条硬件损坏问题 在 lsj 的协助下,我使用了 TestMem5 工具进行测试,测试到了是一条内存条硬件损坏 拆掉损坏的内存条就不会蓝屏了...内存诊断 工具都扫描不出来问题,这是因为此工具的内存压力不够大 这也就是为什么经常炸在 VS 的原因,因为 VS 给内存的压力足够大。
但是,当Linux物理内存超过1G时,线性访问机制就不够用了,因为只能有1G的内存可以被映射,剩余的物理内存无法被内核管理,所以,为了解决这一问题,Linux把内核地址分为线性区和非线性区两部分,线性区规定最大为...DMA Zone通常很小,只有几十M,低端内存区与高端内存区的划分来源于Linux内核空间大小的限制。...因此,Linux 规定“内核直接映射空间” 最多映射 896M 物理内存。...1G) 2.3 Linux内核高端内存的理解 前 面我们解释了高端内存的由来。...4 页框管理 4.1 页框管理 Linux采用4KB页框大小作为标准的内存分配单元。
│ │ kernel 使用volatility扫描内核dump...Scan kernel dump using volatility ╭─ Options ──────────────────────────────────────────────────────...│ pslist 枚举所有进程和相应的命令行参数 │ symcrypt 扫描内核模式dump...中的SymCrypt对象 │ x509 扫描内核模式dump中的x509证书
dump文件线程状态 dump 文件里,值得关注的线程状态有: 死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器...在 dump 日志里查找字符串 0x000000013df2f658,发现有线程线程t1已经给该地址上锁,并且waiting to lock 。
Dump Java heap(标识2):保存内存快照。 Start/Stop Allocation Tracking(标识3):打开Allocation Tracker工具(后面会介绍)。...接下来分配的内存出现急剧下降,这表示垃圾收集事件,用来释放内存。 1.3 内存抖动 ? 内存抖动一般指在很短的时间内发生了多次内存分配和释放,严重的内存抖动还会导致应用程序卡顿。...3.Heap Dump Heap Dump的主要功能就是查看不同的数据类型在内存中的使用情况。它可以帮助你找到大对象,也可以通过数据的变化发现内存泄漏。...3.1 使用Heap Dump 打开Android Device Monitor工具,在左边Devices列表中选择要查看的应用程序进程,点击Update Heap按钮(装有一半绿色液体的圆柱体),在右边选择...3.4 检测内存泄漏 Heap Dump也可以检测内存泄漏。
移除交换空间 ---- 概念 内存管理是Linux系统重要的组成部分。...为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...当需要用到原始内容时,这些信息会被重新从交换空间读入物理内存。 Linux的内存管理采取的是分页存取机制。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。
Linux下的备份技术 1、备份前因考虑的因素 ● 可移植性(即在Red Hat Linux系统下执行的备份在另外一个系统上恢复的能力)。 ● 是否自动备份。 ● 执行备份的周期。...目前主要有3中备份策略: (1)完全备份策略 (2)增量备份策略 (3)差分备份策略 3、确定备份的内容 linux基于文件的性质为备份和还原系统带来了很大的便利,它们在很大程度上与系统无关,Linux...它包括诸如 /proc/kcore 这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。 /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。...然而,如果计划还原到一个已安装的 Linux 系统,那么备份 /dev 是没有必要的。 3、备份工具 对于备份和恢复来说,Linux提供了诸如tar、cpio、 dump等工具来实现。...dump 和 restore介绍 dump可以执行类似tar的功能。然而,dump倾向于考虑文件系统而不是个别的文件。dump检查ext2文件系统上的文件,并确定哪些文件需要备份。
领取专属 10元无门槛券
手把手带您无忧上云