我有一个内存崩溃转储,我可以用!process 0 0列出进程
我要做的是找到calc.exe的图像基地址,并从内存中获取它的内容。可能会把它保存到文件中。
我需要做些什么才能做到这一点?
编辑:我所拥有的转储类型是“自动转储”,但是我想知道其他类型的技术,比如完全核心转储。
发布于 2022-02-10 19:19:12
转储可以有多种类型,转储的类型是用户模式还是内核模式?这是完全倾倒的思想吗?
在许多情况下,页面可能不存在,或者被分页或有意丢弃模块的init部分。
无论如何,如果用户模式尝试!vadump或!address来定位感兴趣的模块,请找到它的起始地址和结束地址,然后使用.writemem尝试以页面大小增量(0x1000字节)转储。
在kmode !vad!
并通过lm或!dh这两个命令获得用户模式和内核模式下的模块信息。
这是一个用户模式转储!地址信息
F:\caldump>cdb -c "!address calculator;q" -z calc.dmp | awk "/Reading/,/quit/"
0:023> cdb: Reading initial command '!address calculator;q'
Usage: Image
Base Address: 00007ff7`04a30000
End Address: 00007ff7`04a31000
Region Size: 00000000`00001000 ( 4.000 kB)
State: 00001000 MEM_COMMIT
Protect: 00000002 PAGE_READONLY
Type: 01000000 MEM_IMAGE
Allocation Base: 00007ff7`04a30000
Allocation Protect: 00000080 PAGE_EXECUTE_WRITECOPY
Image Path: C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_10.1906.55.0_x64__8wekyb3d8bbwe\Calculator.exe
Module Name: Calculator
Loaded Image Name:
Mapped Image Name:
More info: lmv m Calculator
More info: !lmi Calculator
More info: ln 0x7ff704a30000
More info: !dh 0x7ff704a30000发布于 2022-02-26 18:57:54
既然!process 0成功了,那么它就是一个内核转储。试着检查佩布
https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/-peb
https://stackoverflow.com/questions/71068642
复制相似问题