首页
论坛
课程
招聘
[漏洞分析] [Windows] VC6.0实现0day实验环境问题
2021-3-16 11:32 2430

[漏洞分析] [Windows] VC6.0实现0day实验环境问题

2021-3-16 11:32
2430
#include<windows.h>
#include<stdio.h>
#define DLL_NAME "user32.dll"
main()
{
    BYTE* ptr;
    int position, address;
    HINSTANCE handle;
    BOOL done_flag = FALSE;
    handle = LoadLibrary(DLL_NAME);
    if(!handle)
    {
        printf("load dll erro \n");
        exit(0);
    }
    ptr = (BYTE*)handle;
    for(position = 0; !done_flag; position++)
    {
        try
        {
            if(ptr[position] == 0xFF && ptr[position+1] == 0XE4)
            {
                int address = (int) ptr + position;
                printf("opcode found at 0x%x\n", address);
            }
        }
        catch(...)
        {
            int address = (int)ptr + position;
            printf("end of 0x%x\n", address);
            done_flag = true;
        }
    }
}


这是VC6.0的环境问题吗?怎么解决?

或有知道怎么其他方便实验的环境求分享。谢谢


第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 4361
活跃值: 活跃值 (481)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Willarcap 活跃值 2021-3-18 09:50
3
1
#include "stdafx.h"
#include<windows.h>
#include<stdio.h>
#define DLL_NAME "user32.dll"
int main()
{
    BYTE* ptr;
    int position, address;
    HINSTANCE handle;
    BOOL done_flag = FALSE;
    handle = LoadLibrary(DLL_NAME);
    if(!handle)
    {
        printf("load dll erro \n");
        return 0;
    }
    ptr = (BYTE*)handle;
    for(position = 0; !done_flag; position++)
    {
        try
        {
            if(ptr[position] == 0xFF && ptr[position+1] == 0XE4)
            {
                int address = (int) ptr + position;
                printf("opcode found at 0x%x\n", address);
            }
        }
        catch(...)
        {
            int address = (int)ptr + position;
            printf("end of 0x%x\n", address);
            done_flag = true;
        }
    }
return 0;
}

上述代码可编译通过。

雪    币: 4197
活跃值: 活跃值 (516)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
blackcore 活跃值 2021-3-18 13:12
4
0
你用的是XX.c文件?
游客
登录 | 注册 方可回帖
返回