-
-
[旧帖]
[求助]关于软件漏洞分析入门_5_初级栈溢出D_植入任意代码的疑问
0.00雪花
-
发表于:
2008-6-4 16:49
3486
-
[旧帖] [求助]关于软件漏洞分析入门_5_初级栈溢出D_植入任意代码的疑问
0.00雪花
下面是failwest老大教程里的代码,将下面程序运行后,得到pe用OD调试.程序中有一个缓冲区溢出的漏洞.
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#define PASSWORD "1234567"
int verify_password (char *password)
{
int authenticated;
char buffer[44];
authenticated=strcmp(password,PASSWORD);
strcpy(buffer,password);//over flowed here!
return authenticated;
}
main()
{
int valid_flag=0;
char password[1024];
FILE * fp;
LoadLibrary("user32.dll");//prepare for messagebox
if(!(fp=fopen("password.txt","rw+")))
{
exit(0);
}
fscanf(fp,"%s",password);
valid_flag = verify_password(password);
if(valid_flag)
{
printf("incorrect password!\n");
}
else
{
printf("Congratulation! You have passed the verification!\n");
}
fclose(fp);
}
问题:我在寻找那个 strcpy(buffer,password);//over flowed here! 结束的地址时遇到困难了.failwest给出的冲掉返回地址的值是0x0012FAF0.教程里说
用OllyDbg加载这个生成的PE文件进行动态调试,字符串拷贝函数过后的栈状态如图:
我水平不好.一直没找到那个地址.
那个地址和什么因素有关?
大家别笑话我小菜
[课程]Linux pwn 探索篇!