-
-
未解决
[讨论]关于进程挂靠的疑问,求大佬解惑
-
发表于:
2019-5-6 15:12
2548
-
改完CR3之后,我们可以访问其他进程里面的内存,但是我有一个问题就是,我们的EIP指针指向的内存地址也需要翻译,因为CR3都改了,EIP也被翻译到另外一个进程的一个内存里面了,那么指令肯定是错误或者根本没有这个内存? 思考之后,我觉得翻译肯定是翻译了,但是要求进程挂靠整个过程在R0完成,每个用户进程在内核态用的是同一份物理地址,同一份虚拟地址,同一份PTE,尽管改了PDE,但是不同进程在R0下用的虚拟地址都是一样的,翻译的物理地址也是一样的,所以尽管改了CR3,并不会导致EIP的指针地址翻译到奇怪的地方?
下面是我的猜想,读取另一个进程的内存数据就是,进入R0,改CR3,把需要的用户态数据复制一份到内核的一个地方(不同进程这个地方都是一样的,CR3改了也不会导致虚拟地址翻译到其他地方),改回CR3,把内核之前拷贝的数据拷贝到用户指定的地址。
[课程]FART 脱壳王!加量不加价!FART作者讲授!