MFC编程修改内存数据程序

时间:2013-03-22 14:21:01 来源:互联网  阅读次数:16777215 


// CMemoRepairDlg 消息处理程序

BOOL CMemoRepairDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);            // 设置大图标
    SetIcon(m_hIcon, FALSE);        // 设置小图标

    // TODO: 在此添加额外的初始化代码

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。
void CMemoRepairDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // 用于绘制的设备上下文

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

        // 使图标在工作区矩形中居中
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // 绘制图标
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialogEx::OnPaint();
    }
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMemoRepairDlg::OnQueryDragIcon()
{
    return static_cast(m_hIcon);
}
void CMemoRepairDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    int value;        //查找的值
    UpdateData(TRUE);
    value = editValue;
    if (conFirst == TRUE)
    {
        FirstFind(value);        //进行第一次查找
        ShowList();                    //打印出结果
        conFirst = FALSE;
    }
    else
    {
        NextFind(value);        //进行下一次查找
        ShowList();                //打印出结果
    }
    if (addrCount == 1)
    {
        MessageBox("OK, You Can Change Now!");
    }
    else
        MessageBox("NO, You Can't Change!");
}
void CMemoRepairDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码
    if (addrCount > 1 || addrCount == 0)
    {
        MessageBox("Please Search Again!");
    }
    else
    {
        int valueWillChange;   //要修改的值
        UpdateData(TRUE);
        valueWillChange = editValue3;
        WriteMemory(addrList[0], valueWillChange);
    }
}

void CMemoRepairDlg::OnBnClickedStartprocess()
{
    // TODO: 在此添加控件通知处理程序代码

    char szFileName[] = "Testor.exe";
    STARTUPINFO starUpInfo = {sizeof(starUpInfo)};
    PROCESS_INFORMATION process_information;
    //启动测试程序进程
    ::CreateProcess(NULL, szFileName, NULL, NULL, FALSE,CREATE_NEW_CONSOLE,
        NULL, NULL, &starUpInfo, &process_information);
    //关闭线程句柄
    ::CloseHandle(process_information.hThread);
    hProcess = process_information.hProcess;

}
CMemoRepairDlg::~CMemoRepairDlg()
{
    ::CloseHandle(hProcess);
}

BOOL CMemoRepairDlg::ComparePage(DWORD baseAddr, DWORD valueChange)
{
    BYTE pageByte[4096];
    if (!::ReadProcessMemory(hProcess,(LPVOID)baseAddr, pageByte,4096,NULL))
    {
        return FALSE;        //此页不可读
    }

阴阳师
阴阳师
系统:Android   大小:1967.53MB   更新日期:08.22MB

   立即下载

  • cf手游体验服资格申请问卷答案2024年
    cf手游体验服资格申请问卷答案2024年
    浏览:0   时间:2024-09-05   来源:互联网
    cf穿越火线体验服全新的招募已经进行开启了,能够通过多种方式进行资格的获取,兑换、邀请好友、答题三种不同的方式去进行资格的获取,本期就将为大家介绍一下详细的资格获取方法,一起来具体的了解一下吧。
  • QQ音乐如何提取歌词视频
    QQ音乐如何提取歌词视频
    浏览:0   时间:2024-08-18   来源:互联网
    当我们听歌时,听到自己喜欢的歌词,想要把它单独记录下来,却又不想浪费时间重新制作一个歌词海报,那么这时我们就需要用到提取视频歌词的功能,来协助我们制作视频或者海报,但是如何提取歌词视频呢,让我来告诉你。
  • QQ怎么群发消息
    QQ怎么群发消息
    浏览:0   时间:2024-08-17   来源:互联网
    当你聊天时想要给很多人发消息,但是却又不想一个一个的发,这是我们就可以选择群发消息来给所有人发消息,这样既不会浪费自己的时间,也不会觉得无聊,那么要如何群发消息呢,我来告诉你吧。
  • QQ如何添加朋友
    QQ如何添加朋友
    浏览:0   时间:2024-08-15   来源:互联网
    当我们在现实里交到一些新的朋友,并且蚁后还会经常练习,那么这时就可以使用QQ来添加朋友,毕竟QQ也是日常重要的聊天社交软件之一,那么对于不了解QQ的人来说要怎么添加朋友呢,方法也有很多种,下面我就来推荐一种即使来两人不在身边也能添加的方法。
  • QQ怎么隐身访问别人空间
    QQ怎么隐身访问别人空间
    浏览:0   时间:2024-08-14   来源:互联网
    当我们使用QQ时,如果想要查看别人的空间动态,但是又不想让别人知道自己看过他的QQ空间,这是隐身访问空间功能就帮了我们很大的一个忙,那么如何隐身访问别人的QQ空间,不让别人知道呢,就让我来告诉你。
阴阳师
阴阳师
阴阳师是一款由网易公司开发的卡牌手游,以平安时代为背景,讲述了人鬼共生的奇幻故事。在游戏中,冒险者将扮演一名强大的阴[查看详情]
  • 其它名称:
  • 游戏类型:角色扮演
  • 游戏更新:2024-08-22
  • 游戏语言:简体中文
  • 游戏平台:Android

游戏推荐

更多

游戏排行榜

更多

下载声明 | 法律声明 | 版权声明 | 友情链接 | 发布软件 | 最新更新

本站为非盈利性网站,不接受任何广告。本站所有资源均由网友上传,如有侵权,请发邮件至 [email protected]

晋ICP备2024046785号-1