windows编程之内存数据修改

游戏内存修改器 实现原理 修改游戏中显示的数据就是要修改游戏所在进程的内存,因为这些数据都在内存中保留着。由于进程的地址空间是相互隔离的,所以必须有 API 函数的协助才能访问其他进程的内存。通常使用下面两个函数对其他进程的内存空间进行读写操作。 BOOL ReadProcessMemory( HANDLE hProcess, //待读进程的句柄 LPCVOID lpBaseAddress, //目标进程中待读内存的起始地址 LPVOID lpBuffer, //用来接受读取数据的缓冲区 DWOR 阅读详情

#include"StdAfx.h"
#include<windows.h>

DWORD g_arList[1024];
int g_nListCnt=0;
HANDLE g_hProcess;

BOOL CompareAPage(DWORD dwBaseAddr,DWORD dwValue){
    BYTE arBytes[4096];
    if(!::ReadProcessMemory(g_hProcess,(LPVOID)dwBaseAddr,arBytes,4096,NULL))
        return FALSE;
    DWORD* pwd;
    for(int i=0;i<(int)1024*4-3;i++){
        pwd=(DWORD*)&arBytes[i];
        if(pwd[0]==dwValue){
            if(g_nListCnt>1024)
                return FALSE;
            g_arList[g_nListCnt++]=dwBaseAddr+i;
        }
    }
    return TRUE;
}

BOOL FindFirst(DWORD dwValue){
    const DWORD dwOneGB=1024*1024*1024;
    const DWORD dwOnePage=4*1024;
    if(g_hProcess==NULL)
        return FALSE;
    DWORD dwBase;
    OSVERSIONINFO vi={sizeof(vi)};
    ::GetVersionEx(&vi);
    if(vi.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS)
        dwBase=4*1024*1024;
    else
        dwBase=640*1024;
    for(;dwBase<2*dwOneGB;dwBase+=dwOnePage)
        CompareAPage(dwBase,dwValue);
    return TRUE;
}

BOOL FindNext(DWORD dwValue){
    int i=0;
    int nOrgCnt=g_nListCnt;
    g_nListCnt=0;
    BOOL bRet=FALSE;
    DWORD dwReadValue;
    for(i=0;i<nOrgCnt;i++){
        if(::ReadProcessMemory(g_hProcess,(LPVOID)g_arList[i],&dwReadValue,sizeof(DWORD),NULL)){
            if(dwReadValue==dwValue){
                g_arList[g_nListCnt++]=g_arList[i];
                bRet=TRUE;
            }
        }
    }
    return     TRUE;
}

BOOL WriteMemory(DWORD dwAddr,DWORD dwValue){
    return ::WriteProcessMemory(g_hProcess,(LPVOID)dwAddr,&dwValue,sizeof(DWORD),NULL);
}

void ShowList(){
    for(int i=0;i<g_nListCnt;i++)
        printf("%081X/n",g_arList[i]);
}

int main(int argc,char* argv[])
{
    //启动进程
    char szFileName[30];
    printf("The exe_file name is:");
    scanf("%s",szFileName);
    STARTUPINFO si={sizeof(si)};
    PROCESS_INFORMATION pi;
    ::CreateProcess(NULL,szFileName,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
    //关闭线程句柄,只用到进程句柄
    ::CloseHandle(pi.hThread);
    g_hProcess=pi.hProcess;
    //输入要修改的值
    int iVal;
    printf("Input val= ");
    scanf("%d",&iVal);
    FindFirst(iVal);
    ShowList();
    printf("g_nListCnt= %d/n//////////////////////////n/n",g_nListCnt);
    while(g_nListCnt>1){
        printf("Input val=");
        scanf("%d",&iVal);
        FindNext(iVal);
        ShowList();
        if(g_nListCnt==0)
            printf("Not any address in g_nList!/n");
        printf("g_nListCnt= %d/n//////////////////////////////n/n",g_nListCnt);
    }
    printf("iVal=    %d/n",iVal);
    printf("New Value=    ");
    scanf("%d",&iVal);
    WriteMemory(g_arList[0],iVal);
    ::CloseHandle(g_hProcess);
    printf("Operation Successful!/n/n");
    return 0;
}

内存读取查看修改小工具 可用于 查找CS软件一些网络链接信息 立即下载

相关推荐

CE内存查找修改器

CE 修改器 用来修改与查找内存。中文加强版。单机游戏可直接改内存无敌。

windows平台下的进程内存修改

介绍如何实现windows平台下修改其他进程的地址空间

rm_wang的博客 4184

内存查看工具

内存专家, 内存检测工具大全,一款用以检测系统内存型号的检测工具,功能强大,操作简洁。为你提供清晰直观的内存型号规格信息,还能查看制造商,获取制造商的相关支持文档。能够对你的内存,随机存储器的规格进行一目了然的描述。

windows 查看和修改内存

windows 查看和修改内存查看内存1.使用JDK工具查看2.使用JDK命令行工具查看3.以服务方式查看修改内存设置1.使用tomcat提供的gui工具来设置内存参数 查看内存 1.使用JDK工具查看 1.1工具路径 {javajdk安装目录}/bin/jvisualvm.exe 1.2打开工具 双击需查看的虚拟机后点击监视 1.3查看内存大小 Ps:程序显示的单位为字节,可除两次1024转成MB单位显示 最大:代表程序最大可以从操作系统中获取的内存数量 大小:代表程序启动的时候从操作系统中获取的内存数

天气怎么样的博客 1501

内存查询修改器

内存查询修改 , 可修改游戏内存

Java外挂开发之内存修改程序(含源码)类似CE

欢迎下载研究交流,使用步骤:打开进程->输入搜索的数据->开始搜索->改变游戏中的数据->搜索变化->内存修改! 解压后,包含三个文件: 第一个文件是源码,直接用Eclipse导入即可,导入后记得修改Build Path 第二个是打包好的JAR,如果电脑安装了Java就可以直接运行 第三个是打包好的EXE安装包,可以在没有Java环境的电脑上运行

32位/64位WINDOWS驱动之-突破进程保护跨进程读写内存

类别:值 控件类型: EDIT 名称: m_targetPID 变量类型: UINT32。以上就是突破进程保护跨进程读写内存的全部内容了。加一个控制码和驱动层对应。

a756598009的博客 1279

【自动驾驶】控制算法(十)深度解析车辆纵向控制 | Carsim 油门刹车标定表的制作...

写在前面: ???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。???? ???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~文章目录引言一、油门标定原理1.1 油门与速度、加速度的关系1.2 油门控制曲面模型的构建二、油门标定表的制作流程...

qq_35485206的博客 2139

Windows破解&逆向-CrackMe_1实例(使用OpenProcess修改内存中的值)

这里开发了一个CrackMe实例,源码打包下载如下: https://github.com/fengfanchen/Qt/tree/master/CrackMe_1 程序是这个样子的: 程序从10s开始倒计时: 到0s后提示Game over 这里的倒计时的数在代码中是这样体现的: resource,并且为static,进程在计算机中有4个空间,一个是代码区负责逻辑相关的功能,一个是常量区,如HelloWord字符串都在那里面资源文件等,静态区,就这些静态资源和全局变量了。耳环.

IT1995的博客 1332

QT串口通信控制LED上位机开发教程

串口通信是嵌入式系统与PC端交互的基础技术,通过UART协议实现设备间的数据传输。QT框架提供了跨平台的串口编程支持,结合其GUI模块可以快速开发上位机控制程序。在工业自动化和物联网领域,这种上下位机架构广泛应用于设备监控和控制场景。本案例展示了如何使用QT的SerialPort模块实现LED控制功能,包含串口参数配置、指令发送等核心功能实现,为嵌入式GUI开发提供实践参考。

weixin_42598278的博客 582

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2967

Windows核心编程_修改其它进程里的内存值+示例:修改游戏分数

最近一直忙于Opencv图像处理方面的学习,以及工作,没有更新C/C++专栏方面的博客了,所以今天就给大家写个应用层方面的编程代码,可用于参考学习,本篇博客将运用WindowsSDK库所提供的API来编写一个修改其他进程里变量值的程序。在开始实际编写代码之前,先给大家介绍一下所需函数:OpenProcess、VirtualProtectEx、ReadProcessMemory、WriteProce...

17岁boy的博客 9152

Win10管理员权限的‘暗门’:从mmc.exe被阻止,聊聊UAC与自动提权那些事儿

本文深入解析Windows 10中UAC(用户账户控制)与自动提权机制,探讨mmc.exe被阻止的深层原因及解决方案。从UAC工作原理到自动提权机制,再到具体诊断与修复步骤,帮助用户理解并解决权限管理问题,同时平衡安全性与便利性。

weixin_30521161的博客 418

制作自己的修改器.

1OptionExplicit2PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLong3PrivateDeclareFunctionGetWindowTh...

weixin_30443895的博客 195

别再折腾端口了!Kali Nethunter Kex 图形化桌面连接失败的真正原因与一键修复(附Termux命令)

本文深入分析了Kali Nethunter Kex图形化桌面连接失败的真正原因,包括端口配置变更、依赖缺失和权限问题,并提供了一键修复方案和Termux命令。通过详细的诊断步骤和优化配置,帮助用户快速恢复Kex功能,提升移动安全测试效率。

weixin_42530732的博客 416

单片机OTA升级:Bootloader如何多重校验保障APP完整性?

本文详细介绍了单片机OTA升级中Bootloader如何通过CRC校验、数字签名、版本比对和存储位置检查等多重校验机制保障APP完整性。CRC校验作为快速检测数据完整性的核心手段,结合其他安全措施有效防止设备变砖和安全漏洞,确保远程升级的可靠性。

l3m4n的博客 981

读写另一EXE的内存

procedure TfrmMain.tmrChangeServerNameTimer(Sender: TObject); function GetProcessID(FileName: string = ''): TProcessEntry32; var Ret: BOOL; s: string; FSnapshotHandle: THandle; FProces...

weixin_33869377的博客 143

TGAT Python:图神经网络中的动态图算法

其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。

2301_79366435的博客 1826

粗读《编程高手箴言》

源地址:我的技术博客 http://linger.devhub.com/blog/category/book/ 某次在图书馆无意中看到《编程高手箴言》这本书,作者是梁肇新,豪杰超级解霸的开发者。这本书吸引我的原因除了作者外,还有就是里面的内容很广泛,对底层的研究很多。于是我借回去看了。之前由于准备期末考试,所以木有时间,后来第三学期无聊并且借书的期限快到了,就准备随便翻翻。其实这书的内容对我

linger(心怀梦想,活在当下,知乎ID:linger liu) 1494

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Windows内存修改初篇

​ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> BOOL FindFirst(DWORD dwValue);//对目标进程空间进行查找 BOOL FindNext(DWORD dwValue);//对目标空间进行2,3,4。。查找 //查找数据的地址列表 DWORD g...

用可见的方式来记录和分享每一次收获 848

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

直接修改内存数据

下面是修改进程的某片地址的数据: #include #include #include #include #define NAME "mspaint.exx" //要修改的进程名 void read() { HANDLE hpro = NULL; PROCESSENTRY32 pe32 = { 0 }; pe32.dwSize = sizeof(pe32); HANDLE hpr

liuguangsh的博客 7678

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

进程内存修改器

一、原理 设计一个名为MemChange的应用程序,让它修改Test.exe进程里面的内容。 每个进程占用的内存空间是离散的,所以要访问进程内存种的一个值,就需要遍历整个64K---2G的地址空间。 难点1.MemChange如何访问Test的进程空间 解决方案:MemChange程序中使用CreateProcess把Test.exe拉起来,这样MemChange就可以访问Test.exe...

平凡 3757
上一篇: windows编程之进程查看、删除
下一篇: 胡乱宣扬
codeferever
博客等级 码龄17年 19粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值