日期:2014-05-16 浏览次数:20638 次
下面是create_tables运行之前的用户栈的情况
下面是create_tables运行之后的用户栈的情况
init/main.c文件部分内容:
static char * argv_rc[] = { "/bin/sh", NULL };
static char * envp_rc[] = { "HOME=/", NULL };
0x002f3d45和0x4d4f4800按照字节顺序由高到低表示为:48 4f4d 45 3d 2f 00既HOME=/。
下图蓝色表示的是copy_strings()函数填充的用户栈内容,红色表示的create_tables()函数填充的用户栈内容。
从中我们可以清晰的看出copy_strings()函数和create_tables()函数的关系。