*.exe+偏移 的基址 在VC中怎么读取? 70
方法找到了谁给我大概的讲一下下面注释的3个函数我就把分给他了DWORDGetProcessBaseAddr(LPCTSTRszProcessName//模块名字,DWOR...
方法找到了
谁给我大概的讲一下下面注释的3个函数我就把分给他了
DWORD GetProcessBaseAddr(LPCTSTR szProcessName//模块名字
, DWORD dwPressID)//进程id
{
HANDLE handle = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPressID);//第一个
DWORD dwProcessBaseAddr = 0;
if ( handle == INVALID_HANDLE_VALUE )
{
return dwProcessBaseAddr;
}
MODULEENTRY32 ms;
ms.dwSize = sizeof(ms);
BOOL bRet = Module32First(handle, &ms);//第二个
TCHAR path[256] = {0};
while ( bRet )
{
if ( strcmp(ms.szModule, szProcessName) == 0 )
{
dwProcessBaseAddr = (DWORD)ms.modBaseAddr;
break;
}
bRet = Module32Next(handle, &ms);//第三个
}
::CloseHandle(handle);
return dwProcessBaseAddr;
} 展开
谁给我大概的讲一下下面注释的3个函数我就把分给他了
DWORD GetProcessBaseAddr(LPCTSTR szProcessName//模块名字
, DWORD dwPressID)//进程id
{
HANDLE handle = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPressID);//第一个
DWORD dwProcessBaseAddr = 0;
if ( handle == INVALID_HANDLE_VALUE )
{
return dwProcessBaseAddr;
}
MODULEENTRY32 ms;
ms.dwSize = sizeof(ms);
BOOL bRet = Module32First(handle, &ms);//第二个
TCHAR path[256] = {0};
while ( bRet )
{
if ( strcmp(ms.szModule, szProcessName) == 0 )
{
dwProcessBaseAddr = (DWORD)ms.modBaseAddr;
break;
}
bRet = Module32Next(handle, &ms);//第三个
}
::CloseHandle(handle);
return dwProcessBaseAddr;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询