我了解溢出利用需要三个步骤:
1.将任意代码(shellcode)注入目标进程内存空间。
2.控制eip。
3.设置eip执行任意代码。
我阅读了 ben hawkens 关于堆利用的文章,并且了解一些关于如何最终覆盖函数指针以指向我的代码的策略。
换句话说,我理解第 2 步。
我不明白第 1 步和第 3 步。
如何将我的代码注入进程内存空间?
在第 3 步中,我使用指向我的 shellcode 的指针覆盖了一个函数指针,我如何计算\知道我的注入代码注入到哪个地址?(这个问题在stackoverflow中通过使用“jmp esp”来解决)。