首页
社区
课程
招聘
[旧帖] [求助]软件漏洞分析技术第二章,程序问题求解 0.00雪花
发表于: 2014-9-16 19:04 1283

[旧帖] [求助]软件漏洞分析技术第二章,程序问题求解 0.00雪花

2014-9-16 19:04
1283
程序如下
   #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);
        return authenticated;
}

void main()
{
        int valid_flag=0;
        char password[1024];
        FILE *fp;
        puts("1111");//就是在结束前,我看到出现了它
        LoadLibrary("user32.dll");
        puts("2222");//但是我没看到他,其他的我都弄过了,求哪位指点下,是软件问题吗?
        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);
}

放在OD里面调试,结果发现在LoadLibrary("user32.dll");这步失败了,我在虚拟机里面运行的,求解,好烦。。。(可能开始没说清楚,就是按了F9或者F8 F7 单步调试下去会直接结束程序,然后OLLYDBG 停留在C3 RETN,然后请看下我的注释)
就是C3 RETN

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 56
活跃值: (34)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
为什么这里要LoadLibrary呢,getlasterror看看吧。
2014-9-17 10:56
0
雪    币: 26
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用不着这一步,main函数已经有了
2014-9-18 14:14
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
HINSTANCE handle;
        LoadLibrary("user32.dll");
        if(!handle)
        {
                printf("load all erro!");
                exit(0);
        }

运行没问题,DEBUG下面,但是不管加不加上面的都会RELEASE状态下回失败
2014-9-19 11:27
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
嗯,我删除过,但是DEBUG能运行,但是放在OLLYDBG下面会直接结束程序
2014-9-19 11:28
0
游客
登录 | 注册 方可回帖
返回
//