没看到上文的参见一下
http://blog.csdn.net/tomken_zhang/article/details/6866260
上文中还没有来细细分析漏洞的出处及利用过程,现在又有所收获,特记录下来。
上文说到,向 vold 发送了一段 SOCKET 数据,然后 vold 崩溃了。 崩溃的愿意是栈溢出,究竟在哪溢出的呢,其实在 zergRush.c 中说了一些,文件的头部就写到 libsysutils root exploit,意思是这个库有个漏洞,恰恰被 vold 进程使用,而这个进程是 root 用户能力。
找到 libsysutils 代码,在 \android2.32\system\core\libsysutils\src 这个位置,文件不是太多,我是追查了好处才定位到一个函数有问题,具体过程不说了,比较痛苦和迂回。(经验少啊!)
FrameworkListener.cpp 文件
>> onDataAvailable 收到 Socket 数据。
>> 只读 255 的 buffer
>> dispatchCommand 分配数据
void FrameworkListener::dispatchCommand(SocketClient *cli, char *data) {
FrameworkCommandCollection::iterator i;
int argc = 0;
char *argv[Fr