我正在做一个有关内存取证的研究,目前我需要学习如何通过多种技术在内存中查找代码注入。 其中一种方法是使用VAD标签进行代码注入。
我试图找出究竟是什么VAD和什么是VAD标签,但我找不到一个很好的简单的解释。 我唯一能理解的是VAD是一种win32结构,它和进程的地址空间有关。 但我不明白VAD究竟做了什么,如何使用它来注入代码,以及如何在使用VAD标签的RAM中发现代码注入。
如果你引导我通过这个,我会很感激。 谢谢 :)
VAD代表虚拟地址描述符。 看起来,Windows内核组织内存分配的内存(或内核?)VAD标记的分配树。
我发现了一个似乎实现了内存取证的项目,并且引用了一篇似乎很好地描述VAD的论文。 我现在正在使用我的手机,所以我没有彻底阅读,但看起来像一个有前途的资源。
这个项目被称为波动性 。
他们参考了由Brendan Dolan-Gavitt撰写的名为“VAD树:物理内存的过程眼睛视图”的论文 。
线程是旧的,但我发现VAD的很好的解释。 它会部分回答你的问题。
这个链接提供了对VAD的了解,以及有关使用的数据结构的更多信息以及良好的快照。
*虚拟地址描述符可以提供有关指定进程的地址空间的有用信息。 它们提供有关PTE保护位的信息,页面的继承以及进程之间共享页面的位置。
VAD树基于称为AVL树的编程算法,在Sysnative上可以找到一个例子和解释。 进一步的描述在链接*
虚拟地址描述符