MFC编程修改内存数据程序

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



    //在这页中查找
    DWORD* pageDword;
    for(int i=0; i<(int)4*1024; i++)
    {
        pageDword = (DWORD*)&pageByte[i];
        if (pageDword[0] == valueChange)
        {
            if (addrCount >= 1024)
            {
                return FALSE;
            }
                //添加到全局变量中
            addrList[addrCount] = baseAddr + i;
            addrCount++;
        }
    }
}
BOOL CMemoRepairDlg::FirstFind(DWORD valueChange)
{
    const DWORD dwOneGB = 1024*1024*1024;
    const DWORD dwOnePage = 4096;
    if (hProcess == NULL)
    {
        return FALSE;
    }
    //操作系统类型
    DWORD systemBase;
    OSVERSIONINFO vinfo ={sizeof(vinfo)};
    ::GetVersionEx(&vinfo);
    if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
    {
        systemBase = 4*1024*1024;
    }
    else
    {
        systemBase = 640*1024;
    }

 //在开始地址到2GB的地址空间查找
    for (; systemBase < 2*dwOneGB; systemBase += dwOnePage)
    {
        ComparePage(systemBase, valueChange);
    }
    return TRUE;
}

BOOL CMemoRepairDlg::NextFind(DWORD valueChange)
{
    //保存地址个数,初始化addrCount的值
    int mOrgCnt = addrCount;
    addrCount = 0;
    BOOL bRet = FALSE;
    DWORD dwReadValue;
    for (int i=0; i     {
        if (::ReadProcessMemory(hProcess,(LPVOID)addrList[i],&dwReadValue,sizeof(DWORD),NULL))
        {
            if (dwReadValue == valueChange)
            {
                addrList[addrCount] = addrList[i];
                addrCount++;
                bRet = TRUE;
            }
        }
    }
    return bRet;
}
void CMemoRepairDlg::ShowList()
{
    editStr ="";
    CString str="";
    UpdateData(FALSE);
    editStr.Format("%d个相同的地址.",addrCount);
    for(int i=0; i     {
        str.Format("%s %d '\n';",editStr, addrList[i]);
        editStr = str;
    }
    UpdateData(FALSE);

}

BOOL CMemoRepairDlg::WriteMemory(DWORD valueAddr, DWORD valueChange)
{
    return ::WriteProcessMemory(hProcess, (LPVOID)valueAddr, &valueChange, sizeof(DWORD), NULL);
}

再就是新建一个程序,作为启动的进程程序:Testor

这个程序的Testor.exe文件将影响到上面启动进程的路径。 Testor.cpp:

#include

using namespace std; int ChangeNum = 0; //全局变量

int main()
{
    int insideNum = 200;        //局部变量
    ChangeNum = 1600;

    while (true)
    {
        printf(" insideNum = %d, addr = %X; ChangeNum = %d, addr = %X \n",
            ++insideNum, &insideNum, ++ChangeNum, &ChangeNum);
        getchar();
    }
    return 0;
}
};

阴阳师 V1.0.11 安卓版
阴阳师 V1.0.11 安卓版
系统:Android/   大小:534MB   更新日期:11.29MB

   立即下载

  • 泰拉瑞亚暗影木弓制作方式
    泰拉瑞亚暗影木弓制作方式
    浏览:0   时间:2022-05-16   来源:互联网
    泰拉瑞亚暗影木弓是游戏中的一种弓类武器,是木弓的代版,和乌木弓互为等价物,暗影木弓附魔最佳修饰语是恶魔,玩家需要在工作台附近,使用10个暗影木,可以获得1个暗影木弓,暗影木弓内部物品ID是923。
  • 泰拉瑞亚锡弓的制作方式
    泰拉瑞亚锡弓的制作方式
    浏览:0   时间:2022-05-16   来源:互联网
    泰拉瑞亚锡弓是游戏中一种弓类武器,是游戏前期的武器,是低级别的弓,锡弓附魔最佳修饰语是恶魔,玩家可以通过合成的方式来获得,玩家需要在铁砧或铅砧附近,使用7个锡锭,可以获得1个锡弓。
  • 泰拉瑞亚空中祸害介绍攻略
    泰拉瑞亚空中祸害介绍攻略
    浏览:0   时间:2022-05-16   来源:互联网
    泰拉瑞亚空中祸害是肉山后,击败boss石巨人之后的弓类武器,每次攻击可以分裂成6支箭,并造成 50% 的额外伤害,空中祸害附魔最好的修饰语是虚幻,打败撒旦军队事件T3期间的Boss双足翼龙有一定概率获得。
  • 泰拉瑞亚蜂膝弓的获得攻略
    泰拉瑞亚蜂膝弓的获得攻略
    浏览:0   时间:2022-05-16   来源:互联网
    泰拉瑞亚蜂膝弓是游戏中的一种弓类武器,它会发射特殊的蜜蜂弹药,当敌人靠近时会变成蜜蜂并对敌怪进行攻击,蜂膝弓附魔最好修饰语是虚幻,1点4版本更新后伤害由 26 降低至 23,使用时间由 23 提升至 24,玩家击杀boss蜂膝弓有 三分之一概率可以获得。
  • 泰拉瑞亚肌腱弓武器介绍攻略
    泰拉瑞亚肌腱弓武器介绍攻略
    浏览:0   时间:2022-05-16   来源:互联网
    泰拉瑞亚肌腱弓是游戏中的一种弓类武器它是腐化之地的恶魔弓的对应物,肌腱弓最高附魔最好属性品质是虚幻,玩家需要在铁砧或铅砧附近,使用8个猩红矿锭,可以获得1个肌腱弓,肌腱弓内部物品ID是796。
阴阳师 V1.0.11 安卓版
阴阳师 V1.0.11 安卓版
阴阳师手游是一款3D唯美风格的日系动作RPG手游,以日本有名的阴阳师ip为世界观。在经典的半即时回合制RPG基础上,...[查看详情]
  • 其它名称:
  • 游戏类型:角色扮演
  • 游戏更新:2016-11-29
  • 游戏语言:简体中文
  • 游戏平台:Android/

游戏推荐

更多

游戏排行榜

更多

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

本站为非盈利性网站,不接受任何广告。本站所有资源均由网友上传,如有侵权,请发邮件至 hnrshwl@163.com

晋ICP备2024046785号-1