May
20
XenLab项目里我这一块有了新进展:从System.map里面找到了init_task的虚拟地址。
简而言之,init_task就是linux的第一个进程,在载入init以后,它就进入一个无限循环,然后就变成传说中的idle进程。
更详细的内容参考《深入理解Linux内核》等相关资料。
当然,init_task的地址本来是不用费心去找的,如果你写一个内核模块,这个符号是可以直接引用的:
但是我的目标是:从“Linux外”找到这个init_task的地址
因为我是要从Xen虚拟机的Dom0(类似宿主机的概念)去入侵DomU(类似客户机的概念)
找到init_task以后,我们就可以遍历Linux中的所有进程,然后就可以做一些ooxx的事情了。
因为宿主机是无法直接调用客户机的API,自然无法通过上述方式获得init_task地址。
本来是想通过某种方式直接从DomU中找出这个地址,但是毫无头绪
后来发现System.map可以挖出这个地址,虽然这个方法很挫,但是起码可以进行下一步的动作了。
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
简而言之,init_task就是linux的第一个进程,在载入init以后,它就进入一个无限循环,然后就变成传说中的idle进程。
更详细的内容参考《深入理解Linux内核》等相关资料。
当然,init_task的地址本来是不用费心去找的,如果你写一个内核模块,这个符号是可以直接引用的:
struct task_struct *task = &init_task;
但是我的目标是:从“Linux外”找到这个init_task的地址
因为我是要从Xen虚拟机的Dom0(类似宿主机的概念)去入侵DomU(类似客户机的概念)
找到init_task以后,我们就可以遍历Linux中的所有进程,然后就可以做一些ooxx的事情了。
因为宿主机是无法直接调用客户机的API,自然无法通过上述方式获得init_task地址。
本来是想通过某种方式直接从DomU中找出这个地址,但是毫无头绪
后来发现System.map可以挖出这个地址,虽然这个方法很挫,但是起码可以进行下一步的动作了。
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
XX
2009-5-21 18:07
很好。。我先看看我占的是沙发不
felix021 回复于 2009-5-22 00:02
大概是
分页: 1/1 1