首先打开ce附加红警3的进程(注意要选对进程,是ra3_1.12.game)


找钱的数值9750


输入钱的数,点首次扫描


找到7个结果

在游戏内让钱发生改变

到ce内输入变化后的钱,点再次扫描

找到3个结果,双击添加到下面的框中

双击进行更改数值,然后回到游戏内看钱的变化情况,确定哪个才是真正的地址

发现04DF0AC4才是真正的地址.删除错误的地址,对真的地址进行追踪

右键地址选择”找出是什么改写了这个地址”,会要求附加调试器,选择是

再次回到游戏中,改变钱的数量,然后跳出来发现有了结果

往下察看,esi的值为04DF0AC0,第一个偏移4也出来了

记住偏移和值,接着开始搜索这个值,找到一个结果

把结果加到下面的框中右键选择”找出是什么前往了这个地址”

得到一个结果

有人就开始疑惑,这个的偏移是多少呢?接下来要怎么找呢?
先点击”显示反汇编程序”
往上退3行,有句xor eax,eax的指令,这是异或判断,如果eax=eax,结果就为0
EAX的值是结果是从ECX+EAX*4得来的,EAX=0,所以实际上句子是
mov eax,[ecx+0*4]
所以接下来我们要查找的地址是ECX=03B656C0,这里的偏移就是0

继续追踪

发现两个结果

选择sub那个结果
下一个要找到的地址是ECX=030FC320这里的偏移就是E4
接下来找出来的结果就有点多了,我们只能一个个找先

首先排除红色的,然后第一个和第四个没有结果,我们追到第5个
结果依然很多。。。。

但是我们发现,结果不外乎2个,一个是自己,那么另一个就是正确的值了
EAX=03B86878,偏移是28

接下来找到了一个绿色的值,那么这个就是基地址了,我们来验证一下 

我们关闭游戏重开,重新附加,点“手工加入地址”,钩上指针,填写上绿色的地址,以我们找到的基地址反序添加

修改数值,发现游戏中的钱被修改了

这下地址和偏移都找到了,我们开始写程序吧

#include<stdio.h>
#include<windows.h>
int main (void)
{
char input;
HWND hWnd;
DWORD pid;
HANDLE hProcess=0;
//钱的基地址和偏移
DWORD ba_addr=0x00CE8C9C;//基地址
DWORD m_offset1=0x28;//偏移1
DWORD m_offset2=0xE4;//偏移2
DWORD m_offset3=0x0;//偏移3
DWORD m_offset4=0x4;//偏移4
//电的偏移(钱与电基地址相同)
DWORD p_offset1=0x28;//偏移1
DWORD p_offset2=0x74;//偏移2
DWORD p_offset3=0x4;//偏移3
while(1)
{
printf("------------------------------------------\n");
printf(" O.打开外挂 M.修改金钱 \n");
printf(" P.修改电量 E.退出外挂 \n");
printf("------------------------------------------\n");
input=getchar();
if(input=='O'||input=='o')
{
hWnd=FindWindow(NULL,"命令与征服:红色警戒3");
if(hWnd!=0)
{
GetWindowThreadProcessId(hWnd,&pid);
hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);//打开进程,取得句柄
if(hProcess==0)
{
printf("打开游戏进程失败\n");
}
else
{
printf("打开游戏成功!!\n");
}
}
else
{
printf("游戏没有运行!!\n");
}
}if(input=='M'||input=='m')
{
if(hProcess==0)
{
printf("请先打开游戏进程");
}
else
{
DWORD m_tempadd;
DWORD MONEY;
printf("请输入要修改的钱\n");
scanf("%d",&MONEY);
ReadProcessMemory(hProcess,(LPVOID)ba_addr,&m_tempadd,4,0);
ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset1),&m_tempadd,4,0);
ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset2),&m_tempadd,4,0);
ReadProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset3),&m_tempadd,4,0);
//要修改的内存地址是(tempadd+offset4)
DWORD res=WriteProcessMemory(hProcess,(LPVOID)(m_tempadd+m_offset4),&MONEY,4,0);
if(res==0)
{
printf("修改失败");
}
else
{
printf("修改成功");
}
}
}
if(input=='P'||input=='p')
{
if(hProcess==0)
{
printf("请先打开游戏进程");
}
else
{
DWORD p_tempadd;
DWORD POWER;
printf("请输入要修改的电量\n");
scanf("%d",&POWER);
ReadProcessMemory(hProcess,(LPVOID)ba_addr,&p_tempadd,4,0);
ReadProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset1),&p_tempadd,4,0);
ReadProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset2),&p_tempadd,4,0);
//要修改的内存地址是(tempadd+p_offset3)
DWORD res=WriteProcessMemory(hProcess,(LPVOID)(p_tempadd+p_offset3),&POWER,4,0);
if(res==0)
{
printf("修改失败");
}
else
{
printf("修改成功");
}
}
}
if(input=='E'||input=='e')
{
break;
}
}
return 0;
}

C语言编写红色警戒外挂相关推荐

  1. 「 硬核教学」 ❤️ C语言编写扫雷游戏外挂❤️「 完整源码」

    目录 第一步:使用CE找出棋盘的基址 第二步:使用CE/OD查看该地址的数据 第三步:对比棋盘分析数据的含义 第四步:验证猜想 第五步:编写功能 有没有羡慕学霸们在机房里 潇洒如意地玩着扫雷无限通关, ...

  2. Qt实现的红色警戒3修改器

    前言 这部修改器制作有一段时间了,但是一直没出教程.今天利用周末空闲写篇教程,给后来者指路的同时也加深自己对游戏修改器的理解,大佬就随便看看吧 浏览了一下网络,形形色色的单机游戏修改器教程,但是基本只 ...

  3. 用Lua语言编写Wireshark dissector插件

    from: http://yoursunny.com/t/2008/Wireshark-Lua-dissector/ Wireshark是一款著名的网络协议分析工具,基于GPLv2协议开源,支持Lin ...

  4. c语言图书借阅系统源码.zip,C语言编写的图书借阅管理系统源代码.doc

    确认键)delete(删除)ctre+系列的组合键,大致的基本桌面操作就是方向键↑←↓→移动光标和enter(回车/:所有文件"对话框 windows键+r打开"运行"对 ...

  5. 用红色警戒的单位来帮助我们学习UML类图和关系图

    回顾回顾UML类图的画法,争取自己画出的图能让其他人看得懂. 我为什么要借助红色警戒这个游戏来说明UML类图的画法呢,因为我觉得大家都玩过,对他们的内容都有一个清晰的认识,其次是不想让我的文章太晦涩难 ...

  6. 用C语言编写万年历6,C语言编写万年历

    <C语言编写万年历>由会员分享,可在线阅读,更多相关<C语言编写万年历(8页珍藏版)>请在人人文库网上搜索. 1.C语言编写万年历 [要求]:1 程序运行后,首先在屏幕上显示主 ...

  7. win10红色警戒黑屏解决

    相信很多80,90后的同学们都喜欢在代码之余打打红色警戒 但是苦于win10差劲兼容性,每次下个红色警戒or尤里复仇不是弹框就是黑屏 今天笔者给出一个完美究极解决方案 请注意: 1!红色警戒中把Ra2 ...

  8. 实用c语言函数源码,C语言编写简单朗读小工具(有源码)

    原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...

  9. R语言编写自定义函数计算R方、使用自助法Bootstrapping估计多元回归模型的R方的置信区间、可视化获得的boot对象、估计单个统计量的置信区间、分别使用分位数法和BCa法

    R语言编写自定义函数计算R方.使用自助法Bootstrapping估计多元回归模型的R方的置信区间.可视化获得的boot对象.估计单个统计量的置信区间.分别使用分位数法和BCa法(Bootstrapp ...

  10. R语言编写自定义函数自定义ggplot图像中的图例(legend)的位置、图例标题、键值、文本字体大小(title、text、key)、颜色标识的大小、点形状pch的大小

    R语言编写自定义函数自定义ggplot图像中的图例(legend)的位置.图例标题.键值.文本字体大小(title.text.key).颜色标识的大小.点形状pch的大小 目录

最新文章

  1. css选择器顺序的小技巧
  2. java青蛙青蛙跳井_速解青蛙跳井问题
  3. File类获取功能的方法
  4. Service Request Account field in CRM and C4C
  5. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
  6. 机器学习笔记网盘分享
  7. Java 9 ← 2017,2019 → Java 13 ,Java 两年来都经历了什么?| CSDN 博文精选
  8. 老男孩高端linux培训2014业务服务范围
  9. MapReduce分布式编程框架
  10. labelImg 标签bug
  11. 亚太地区数学建模优秀论文_2020APMCM 亚太地区大学生数学建模竞赛
  12. 2013=726 整合,优化,利用自身资源。 让自己的时间更有意义,最大化利用
  13. 软件测试技术——覆盖方法介绍
  14. xp系统usb android,xp系统usb网络共享怎么设置,xp系统usb手机网络共享设置方法
  15. html怎么取消打印空白页,怎么取消打印空白页:如何删除Excel工作表中的空白页...
  16. solidworks背景改为纯白色
  17. 【设计模式】结构型模式之代理模式
  18. 老司机珍藏的130个网站,没人的时候偷偷看!
  19. stardict词典下载
  20. 强化学习 | Multi Agents | Trust Region | HATRPO | HAPPO

热门文章

  1. html之圆形用户头像
  2. Tara APP隐私政策
  3. 涉密计算机终端安全防护,终端安全登录与文件保护系统保密认证设备
  4. SageMath矩阵操作及解线性方程组
  5. curve BLS12-377/381 BN256 SageMath脚本
  6. 起底白帽黑客郭盛华读过的学校,看完流眼泪了!
  7. c语言开发宏程序,一文搞懂宏程序的编程基础,快速入门秘笈
  8. lightgbm中的多分类multiclass与multiclassova
  9. shell中各种括号用法
  10. 度量衡计算工具_单位换算器|度量衡计量单位换算转换器下载v1.0 官方版 - 欧普软件下载...