首页
社区
课程
招聘
[旧帖] [求助]win7下获取程序基址问题 0.00雪花
发表于: 2011-7-22 23:56 1530

[旧帖] [求助]win7下获取程序基址问题 0.00雪花

2011-7-22 23:56
1530
自己写了个测试程序 其中有一全局变量
用CE查到的地址 是test.exe+偏移
偏移不变 但是test.exe会变 每次启动都不同

用LoardPe得到的基址RAV是00400000

自己写了个动态获取基址的函数
时不时会出错

DWORD GetBaseAddr()
{
        HWND h=::FindWindow(NULL,szCaption);
        if (!h)
        {
                AfxMessageBox(_T("请先运行程序!"));
        }

        DWORD Pid;
        ::GetWindowThreadProcessId(h,&Pid);
        HANDLE hModuleSnap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,Pid);
        if (hModuleSnap==INVALID_HANDLE_VALUE)
        {
                AfxMessageBox(_T("创建进程模块失败!"));
        }
        MODULEENTRY32 me;
        me.dwSize=sizeof(MODULEENTRY32);
        Module32First(hModuleSnap,&me);
        DWORD dwBaseAddr;
        dwBaseAddr=ConvertCharToInt(me.modBaseAddr);
        CloseHandle(hModuleSnap);
        return dwBaseAddr;
}

望指点。。。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
关注,,,,,,
2011-7-23 08:36
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
如果是当前进程,GetModuleHandle( NULL )返回的是什么?

如果有其它进程的handle,

HMODULE hMod;
DWORD cbNeeded;

HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );
EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded);

hMod应该就是。
2011-7-23 14:09
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
目前正碰到类似问题,坐等高人解答。
2012-10-19 11:45
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
....看不懂,不过我记得WINDPWS NT 吧,大概XP左右,按内核分,之前的貌似是系统自动为新进程分配地址47000(???),之后的自动分配40000......
2012-10-27 00:28
0
游客
登录 | 注册 方可回帖
返回
//