一、SEH
1.栈溢出
通过ollydbg找到第一个SEH函数,通过溢出将函数调用地址改为shellcode地址即可。
SEH结构为:
DWORD | Next SEH recorder |
DWORD | Exception handler |
2.堆溢出
将DWORD SHOOT的靶地址改为第一个SEH处理函数即可。
二、虚函数
如上图,只要将 虚表指针->续表地址=虚函数 用shellcode的地址覆盖即可。
一、SEH
1.栈溢出
通过ollydbg找到第一个SEH函数,通过溢出将函数调用地址改为shellcode地址即可。
SEH结构为:
DWORD | Next SEH recorder |
DWORD | Exception handler |
2.堆溢出
将DWORD SHOOT的靶地址改为第一个SEH处理函数即可。
二、虚函数
如上图,只要将 虚表指针->续表地址=虚函数 用shellcode的地址覆盖即可。
转载于:https://www.cnblogs.com/xiaofool/p/4933234.html