首页 > 其他 > 详细

内存 分析

时间:2016-04-08 21:43:33      阅读:272      评论:0      收藏:0      [点我收藏+]
PBYTE pFile2;//设置为全局,方便其他cpp访问
void CDLG_Process::AnalysisPFile()
{
    //获取行列内容
    DWORD dwPid;
    CString Pid = m_ctrlList_Process.GetItemText(row, 0);
    dwPid = _ttoi(Pid.GetBuffer());//_ttoi String->int
    Pid.ReleaseBuffer();
    
    //获取第一个模块信息
    HANDLE  hModuleSnap = INVALID_HANDLE_VALUE;
    MODULEENTRY32 me32 = { sizeof(MODULEENTRY32) };
    // 1. 创建一个模块相关的快照句柄
    hModuleSnap = CreateToolhelp32Snapshot(
        TH32CS_SNAPMODULE,  // 指定快照的类型
        dwPid);            // 指定进程
    if (hModuleSnap == INVALID_HANDLE_VALUE)
        return;
    // 2. 通过模块快照句柄获取第一个模块信息
    if (!Module32First(hModuleSnap, &me32)) {
        CloseHandle(hModuleSnap);
        return;
    }
    //内存操作
    //1 得到进程的句柄
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);   
    //2.2 开始读取
    LPVOID lpBuffer = new LPVOID[me32.modBaseSize];
    ReadProcessMemory(hProcess, me32.hModule, lpBuffer, me32.modBaseSize, NULL);
    pFile2 = (PBYTE)lpBuffer;
    //隐藏控件
    ::ShowWindow(::GetDlgItem(::FindWindow(NULL, L"PE工具"), IDC_FilePath), SW_HIDE);
    ::ShowWindow(::GetDlgItem(::FindWindow(NULL,L"PE工具"), IDC_BUTTON_SecFile), SW_HIDE);
}

 

内存 分析

原文:http://www.cnblogs.com/Alyoyojie/p/5369839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!