首页
社区
课程
招聘
[旧帖] dll中如何获取LoadLibrary的返回地址 0.00雪花
发表于: 2012-10-26 11:30 2932

[旧帖] dll中如何获取LoadLibrary的返回地址 0.00雪花

2012-10-26 11:30
2932
dll中如何获取LoadLibrary的返回地址

举例:
程序a.exe中
0x00401000 :  HMODULE hModule = LoadLibrary("a.dll")
0x00401010 :  printf("hello");

我们知道在call LoadLibrary时,程序会先把0x00401010压入堆栈

请问如何在a.dll中取得这个地址?

如果只是调用子程序我知道怎么取,在子程序内部取esp+4就是返回地址了,
但是这边是dll,就不知道怎么在dll里面推算了,求解

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不如hook LoadLibrary好了
2012-10-26 14:31
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
DWORD RetAddr = 0;
HANDLE __declspec(NAKED) Proxy_LoadLibraryA( _In_  LPCTSTR lpFileName)
{
        __asm
        {
                  ███mov ebx,[ebp+4]
                                mov [RetAddr],ebx
        push lpFileName
                                call [OriginFunction] //stdcall
                                ret
        }
}
2012-10-26 15:40
0
游客
登录 | 注册 方可回帖
返回
//