首页
社区
课程
招聘
怎样加载一个EXE文件并能够获取它的基地址,谢谢!!
发表于: 2006-4-3 12:42 6681

怎样加载一个EXE文件并能够获取它的基地址,谢谢!!

2006-4-3 12:42
6681
大家好:

    我想在一个进程中加载一个EXE文件,怎么加载和正确获取它的基地址进而获取它里面的函数地址等。谢高手指教哟!!

typedef int (*MYPROC)(LPTSTR);

int _tmain(int argc, _TCHAR* argv[])
{
        HINSTANCE hinstLib;
        MYPROC ProcAdd;
        BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;

        // Get a handle to the DLL module.

        hinstLib = LoadLibrary(TEXT("e:\\2.xe"));
        printf("hinstLib=%d\n",hinstLib);
        //ProcAdd = (MYPROC) GetProcAddress(hinstLib,(LPCSTR)("e:\\2exe"));

    //printf("ProcAdd=%d\n",ProcAdd);

        // If the handle is valid, try to get the function address.

        if (hinstLib != NULL)
        {
                ProcAdd = (MYPROC) GetProcAddress(hinstLib,(LPCSTR)("e:\\2.exe"));

                // If the function address is valid, call the function.

                if (NULL != ProcAdd)
                {
                        fRunTimeLinkSuccess = TRUE;
                        (ProcAdd) (TEXT("Message via DLL function\n"));
                }

                // Free the DLL module.

                fFreeResult = FreeLibrary(hinstLib);
        }

        // If unable to call the DLL function, use an alternative.

        if (! fRunTimeLinkSuccess)
                (TEXT("Message via alternative method\n"));
        return 0;
}

我试了一下,每次ProcAdd值总是为0,换成DLL文件也是如此,不知道怎么回事啊?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有人没? 指点一下啊
2006-4-3 13:22
0
雪    币: 1316
活跃值: (512)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
3
GetProcAddress的第二个参数应该是你要取的API函数名,你怎么给的是模块文件名呢?
在这里的API函数必须是模块中输出的,视编译器选项与所用语言,输出的名字可能与你程序中的名字不一样.
2006-4-3 15:02
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
老大,它都没有输出的函数,输出表中没有东西,你查什么呢,用GetProcAddress是要到输出表中查的....
2006-4-3 20:21
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
GetModuleHandle(NULL);
返回值就是你的基址。
2006-4-3 20:34
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
多谢各位指点,我要继续努力啊!!!
2006-4-7 21:09
0
游客
登录 | 注册 方可回帖
返回
//