从 virtualbox coredump 的特定进程中选择转储

逆向工程 调试 内存转储 虚拟机
2021-06-24 03:26:02

我对逆向工程和组装的东西很感兴趣我已经开始做一些研究,我仍然是一个完整的初学者,到目前为止我学到的东西我们可以使用 virtualbox 为我们转储 RAM,这样我们就可以获得完整的内存转储并查看在打包程序的实际汇编代码中,以及到目前为止我在 x86 Windows 7 Ultimate VM 上所做的

首先在启用调试模式的情况下启动虚拟机

virtualboxvm --startvm "Windows 7" --dbg

然后通过以下方式打开 VirtualBox 调试控制台 Debug -> Command Line

并使用此命令您可以获得完整的 RAM 转储文件:

VBoxDbg> .pgmphystofile 'dump.bin'

所以现在我有了这个文件,但我不确定分析它的正确方法,我猜它是一个“平面二进制文件”

file dump.bin

将输出:

dump.bin :data

我试图用来volatility 获取一些信息:

volatility -f dump.bin imageinfo

输出:

Volatility Foundation Volatility Framework 2.6
INFO    : volatility.debug    : Determining profile based on KDBG search...
          Suggested Profile(s) : Win7SP1x86_23418, Win7SP0x86, Win7SP1x86_24000, Win7SP1x86
                     AS Layer1 : IA32PagedMemoryPae (Kernel AS)
                     AS Layer2 : FileAddressSpace (/root/w7-nc-shell.bin)
                      PAE type : PAE
                           DTB : 0x185000L
                          KDBG : 0x8292dc28L
          Number of Processors : 1
     Image Type (Service Pack) : 1
                KPCR for CPU 0 : 0x8292ec00L
             KUSER_SHARED_DATA : 0xffdf0000L
           Image date and time : 2020-06-14 17:41:24 UTC+0000
     Image local date and time : 2020-06-14 09:41:24 -0800

一堆我不确定它们真正含义的信息(如果你能在评论中向我推荐一些关于这些信息的有用资源,我将不胜感激)

因此,无论如何使用波动率,我们都可以使用以下命令获取进程列表:

volatility -f dump.bin --profile=Win7SP1x86_23418 pslist

输出:

Volatility Foundation Volatility Framework 2.6
Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0x8415e558 System                    4      0     83      503 ------      0 2020-06-15 04:31:21 UTC+0000                                 
0x84874560 smss.exe                248      4      2       29 ------      0 2020-06-15 04:31:21 UTC+0000                                 
0x850579b0 csrss.exe               324    316     10      452      0      0 2020-06-15 04:31:25 UTC+0000                                 
0x850ead40 csrss.exe               376    368     10      267      1      0 2020-06-15 04:31:26 UTC+0000                                 
0x850e9030 wininit.exe             392    316      3       76      0      0 2020-06-15 04:31:26 UTC+0000                                 
0x8511ad40 winlogon.exe            420    368      3      110      1      0 2020-06-15 04:31:26 UTC+0000                                 
....

有没有办法获取一个特定进程的转储并将其转换回 PE?这样我就可以轻松调试解压后的代码了?如果没有,有没有办法只转储进程并反汇编它?

提前致谢。

0个回答
没有发现任何回复~