吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 118783|回复: 841
上一主题 下一主题
收起左侧

[原创] 红色警戒2尤里的复仇科技全开

    [复制链接]
跳转到指定楼层
楼主
KaQqi 发表于 2019-5-19 11:17 回帖奖励
本帖最后由 KaQqi 于 2019-5-21 18:02 编辑

我都不知道我这个东西写了多少期了,所以就不写期号了。。
本来这个内容在这篇帖子

对红色警戒2及尤里的复仇的逆向总结
https://www.52pojie.cn/thread-878171-1-1.html
(出处: 吾爱破解论坛)
已经有所提及,可是写的太不详细。。鉴于私信一堆人让我详细写这个,以及上次科技全开没成功写到程序里的尴尬,于是就写了这篇文章。

先做一下免责声明:
科技全开在红色警戒战网对战可用,所以请不要用于商业用途(上次发的居然有人用于商业用途,一个外挂100块钱,是谁我就不点名说了)。用于商业用途请自己承担所有责任。

从本论坛下载的内容仅供交流学习,请在下载后24小时内删除,请勿用于商业用途,否则后果自负
相关视频:https://space.bilibili.com/251535501



前情回顾:
上一次我们讲到了无限核弹。
红色警戒实现无限核弹的艰辛之路
https://www.52pojie.cn/thread-935581-1-1.html
(出处: 吾爱破解论坛)
[C++] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
pushad
mov ecx,0x14
call 006ceeb0
mov ebx,eax
mov eax,[ebx+98]
  
mov edx,[00a83d4c]
mov ecx,[edx+258]
  
  
push 0
push 0
mov ecx,[ecx+eax*4]
push 1
call 006CB560
mov eax,[ebx+98]
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret

在逆向总结那一节里,我们提到了NewConstructionOptions的那个call。进去之后可以发现一个大大的switch结构。
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
006CC103  |> \6A FF         push -0x1                               ;  Case 0 of switch 006CC0F3
006CC105  |.  83CA FF       or edx,-0x1
006CC108  |.  B9 D4248400   mov ecx,gamemd.008424D4                 ;  EVA_NuclearMissileReady
006CC10D  |.  EB 6A         jmp short gamemd.006CC179
006CC10F  |>  6A FF         push -0x1                               ;  Case 1 of switch 006CC0F3
006CC111  |.  83CA FF       or edx,-0x1
006CC114  |.  B9 BC248400   mov ecx,gamemd.008424BC                 ;  EVA_IronCurtainReady
006CC119  |.  EB 5E         jmp short gamemd.006CC179
006CC11B  |>  6A FF         push -0x1                               ;  Case A of switch 006CC0F3
006CC11D  |.  83CA FF       or edx,-0x1
006CC120  |.  B9 A4248400   mov ecx,gamemd.008424A4                 ;  EVA_ForceShieldReady
006CC125  |.  EB 52         jmp short gamemd.006CC179
006CC127  |>  6A FF         push -0x1                               ;  Case 2 of switch 006CC0F3
006CC129  |.  83CA FF       or edx,-0x1
006CC12C  |.  B9 8C248400   mov ecx,gamemd.0084248C                 ;  EVA_LightningStormReady
006CC131  |.  EB 46         jmp short gamemd.006CC179
006CC133  |>  6A FF         push -0x1                               ;  Case 7 of switch 006CC0F3
006CC135  |.  83CA FF       or edx,-0x1
006CC138  |.  B9 70248400   mov ecx,gamemd.00842470                 ;  EVA_PsychicDominatorReady
006CC13D  |.  EB 3A         jmp short gamemd.006CC179
006CC13F  |>  6A FF         push -0x1                               ;  Case 3 of switch 006CC0F3
006CC141  |.  83CA FF       or edx,-0x1
006CC144  |.  B9 58248400   mov ecx,gamemd.00842458                 ;  EVA_ChronosphereReady
006CC149  |.  EB 2E         jmp short gamemd.006CC179
006CC14B  |>  6A FF         push -0x1                               ;  Cases 5,6 of switch 006CC0F3
006CC14D  |.  83CA FF       or edx,-0x1
006CC150  |.  B9 40248400   mov ecx,gamemd.00842440                 ;  EVA_ReinforcementsReady
006CC155  |.  EB 22         jmp short gamemd.006CC179
006CC157  |>  6A FF         push -0x1                               ;  Case 8 of switch 006CC0F3
006CC159  |.  83CA FF       or edx,-0x1
006CC15C  |.  B9 2C248400   mov ecx,gamemd.0084242C                 ;  EVA_SpyPlaneReady
006CC161  |.  EB 16         jmp short gamemd.006CC179
006CC163  |>  6A FF         push -0x1                               ;  Case 9 of switch 006CC0F3
006CC165  |.  83CA FF       or edx,-0x1
006CC168  |.  B9 14248400   mov ecx,gamemd.00842414                 ;  EVA_GeneticMutatorReady
006CC16D  |.  EB 0A         jmp short gamemd.006CC179
006CC16F  |>  6A FF         push -0x1                               ;  Case B of switch 006CC0F3
006CC171  |.  83CA FF       or edx,-0x1
006CC174  |.  B9 FC238400   mov ecx,gamemd.008423FC                 ;  EVA_PsychicRevealReady
006CC179  |>  E8 82650800   call gamemd.00752700
006CC17E  |>  8B0D 84EDA800 mov ecx,dword ptr ds:[0xA8ED84]         ;  Default case of switch 006CC0F3

根据各种case,我们可以获得超级武器的编号:
0 Nuclear Missle(核弹)
1 Iron Curtan(铁幕,也就是台湾人翻译的无敌)
A force shield(立场护盾,你造了高科之后的那个蓝蓝的东西,跟铁幕差不多,但是只能套建筑)
2 Lightning storm(闪电风暴,盟军的无污染超武,符合科学发展观)
7 PsychicDominator(心灵控制,尤里的无污染超武)
…………
剩下我就不说了,大家都识字。。自己去上面的代码里翻。。

有了这些编号,我们是不是可以调用这些超武呢?
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
pushad
mov ecx,0x14
call 006ceeb0
mov ebx,eax
mov eax,[ebx+98]
 
mov edx,[00a83d4c]
mov ecx,[edx+258]
 
 
push 0
push 0
mov ecx,[ecx+eax*4]
push 1
call 006CB560
mov eax,[ebx+98]
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret

这些参数的哪些表示超级武器呢?
根据上一节的提示,第一个call是获取eax的。而eax就是超级武器编号,那么我们直接修改eax行不行呢?
我们发现,修改eax的只有mov eax,[ebx+98]。那我们把ebx+98变成1,得到:
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
pushad
mov ecx,0x14
call 006ceeb0
mov ebx,eax
mov eax,[ebx+98]
 
mov edx,[00a83d4c]
mov ecx,[edx+258]
 
 
push 0
push 0
mov ecx,[ecx+eax*4]
push 1
call 006CB560
mov eax,1
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret

立刻注入,发现:

此时发现:

又是那个不能用的超级武器。。
那说明没有调整cd
而出现了核弹0:00说明调整的是核弹的cd。。
那肯定是调整cd那个call参数错了。。
上面那个参数忘记改了。。
重写代码,得到:
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
pushad
mov ecx,0x14
call 006ceeb0
mov ebx,eax
mov eax,1
 
mov edx,[00a83d4c]
mov ecx,[edx+258]
 
 
push 0
push 0
mov ecx,[ecx+eax*4]
push 1
call 006CB560
mov eax,1
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret

再次注入:



不过我们发现一个尴尬的事情,用完之后那个铁幕选项不会消失。。
管它呢,反正我也不追求完美2333
同理,可以得到其他超级武器

因此,我们得到超级武器的注入代码为:
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
pushad
mov ecx,0x14
call 006ceeb0
mov ebx,eax
mov eax,2//此处为超级武器编号
 
mov edx,[00a83d4c]
mov ecx,[edx+258]
 
 
push 0
push 0
mov ecx,[ecx+eax*4]
push 1
call 006CB560
mov eax,2//此处为超级武器编号
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret



到了这里,还有几个人记得住我们的题目?
对,没错,科技全开。。
顾名思义,添加所有能够添加的建造选项。
那肯定是最后一个call的事情了。
mov ecx,0087f7e8
push eax
push 1f
call 006a6300
popad
ret
我们知道eax是超级武器编号,那么1f是否为类型呢?


我们跟进最后一个增加建造选项的call,发现又是一个大大的switch。

在这里下断点,然后窗口化运行程序,动态调试,当建造选项增加的时候会断下来。
依次造步兵、建筑、坦克,得到:

再看刚刚的代码,1f表示的就是超级武器。




因此,假如我们想要科技全开,首先要做到建筑全开。
然后有个猜想,建筑就不用调cd了吧,都是54下。。
建筑cd相关帖子:

论红色警戒2尤里的复仇如何实现秒建
https://www.52pojie.cn/thread-846492-1-1.html
(出处: 吾爱破解论坛)
那我们直接调用最后一个call

先改个7
[Asm] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
pushad
mov ecx,0087f7e8
mov edx,[00a83d4c]
mov eax,0
push eax 
push 7
call 006a6300
popad
retn

提醒一句,前面基地址啊还有字符串的参数该传还要传。。
eax我们先改成0,看看注入后会出现什么。(因为下标一般都从0开始)


然并卵。。
猜想原因:0这个建筑就是盟军电场,因为游戏是美国人做的,美国的建筑 的下标肯定靠前2333
那改成A
[Asm] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
pushad
mov ecx,0087f7e8
mov edx,[00a83d4c]
mov eax,A
push eax
push 7
call 006a6300
popad
retn



精彩!
然后我们把自己的国家换成苏军,依次得到:
0=发电厂
1=盟军矿石精炼厂
2=盟军建造厂
3=盟军兵营
4=沙袋
5=盟军维修厂
6=盟军作
[url=]5[/url]战实验室
7=盟军战车工厂
9=磁能反应炉
A=苏联作战实验室




这要试试到什么年份。。
我怎么知道所有建筑的编号。。
接下来是翻车时间:
——肯定不能这么试试,那我们看看有没有能找到建筑编号的地方,最好就像刚刚那种switch一样
跳转跟过来,得到:

跟进本switch每一个call,得到




最后问了一个红警ini大佬,得到了答案:




因此,可以得到一个简单粗暴的办法:用一个循环来搞定。

2019-5-19:纠正一个错误,上图的je应该写成jnz
这里给出红警大佬所给的全部代码
0=GAPOWR;盟军发电厂
1=GAREFN ;盟军矿厂
2=GAPILE ;盟军兵营
3=GAWEAP ;盟军兵工厂
4=GAAIRC ;盟军空军指挥部
5=AMRADR ;美国空军指挥部--AmericanParaDropSpecial
6=GADEPT ;盟军维修厂
7=GAYARD ;盟军船厂
8=GATECH ;盟军实验室
9=GAROBO; 控制中心 ---
10=GAOREP; 矿石精鍊器
11=GAWALL; 盟军围墙
12=GAPILL; 机枪碉堡---Vulcan2
13=NASAM ;爱国者飞弹 --RedEye2
14=GAGAP ;裂缝产生器
15=ATESLA ;光棱塔----PrismShot / PrismSupport
16=GASPYSAT; 间谍卫星
17=GACNST ;盟军建造场
18=GTGCAN ;法国巨炮  GrandCannonWeapon
19=GACSPH ;超时空传送仪 --- ChronoSphereSpecial
20=GAWEAT ;天气控制器 --- LightningStormSpecial
21=GASAND ;沙袋
22=GAGATE_A; 闸门
23=;===苏军======;
24=NAPOWR; 磁能反应炉
25=NAREFN ;苏军矿厂
26=NAHAND; 苏军兵营
27=NAWEAP; 苏军兵工厂
28=NARADR ;苏军雷达 --- SpyPlaneSpecial
29=NADEPT ;苏军维修厂
30=NAYARD ;苏军造船厂
31=NATECH ;苏军实验室
32=NANRCT ;核子反应堆 --- NukePayload
33=NAINDP ;工业工厂
34=NAWALL ;苏军围墙
35=NABNKR ;战斗碉堡
36=NALASR ;哨戒炮--Vulcan
37=NAFLAK ;防空炮--FlakWeapon
38=TESLA ;磁暴线圈 -- CoilBolt / OPCoilBolt
39=NACNST ;苏军建造厂
40=NAIRON ;铁幕 --- IronCurtainSpecial
41=NAMISL ;核弹发射井 -- NukeSpecial
42=NAPSYB ;心灵信标
43=;===尤里======;
44=YAPOWR ;生化反应炉
45=YAREFN ;奴隶矿厂
46=YABRCK ;尤里兵营
47=YAWEAP ;尤里兵工厂
48=NAPSIS ;心灵感应器 --- PsychicRevealSpecial
49=YAYARD ;尤里船厂
50=YAGRND ;部队回收厂
51=YATECH ;尤里实验室
52=GAFWLL ;尤里围墙
53=NATBNK ;坦克碉堡
54=YAGGUN ;盖特机炮
55=YAPSYT ;心灵控制塔----MultipleMindControlTower
56=NACLON ;复制中心
57=YAGNTC ;基因突变器 --- GeneticConverterSpecial
58=YAPPET ;心灵控制器 --- PsychicDominatorSpecial
59=YACNST ;尤里建造场
60=YAROCK ;不明建筑物
61=YACOMD ;尤里指挥中心
62=;===平======;
63=GASAND;沙墙
64=CAAIRP;科技机场---ParaDropSpecial
65=CAOILD;=科技钻油厂
66=CAPARS01;=艾菲尔铁塔
67=CAEAST02;=尤里雕像----PrismShot
68=CATRAN03;=尤里要塞
69=CAEAST01;=复活岛石像
[步兵类代码]
0=E1;美国大兵
1=E2;苏联动员兵
2=SHK;磁爆步兵
3=ENGINEER;盟军工程师
4=JUMPJET;火箭飞行兵
5=GHOST;海豹部队
6=YURI;尤里
7=IVAN;疯狂伊万
8=DESO;生化步兵
9=DOG;苏联军犬
10=CIV1;平民1
11=CIV2;平民2
12=CIV3;平民3
13=CTECH;技师
14=WEEDGUY;防IE挂载(没用)
15=CLEG;超时空兵团
16=SPY;间谍
17=CCOMAND;超时空突击队
18=PTROOP;伞兵
19=CIVAN;超时空伊万
20=YURIPR;尤里改
21=SNIPE;狙击手
22=COW;奶牛
23=ALL ;鳄鱼
24=TANY;谭雅
25=FLAKT;防空步兵
26=TERROR;恐怖分子
27=SENGINEER;苏联工程师
28=ADOG;盟军军犬
29=VLADIMIR;VLADIMIR
30=PENTGEN;PENTGEN
31=PRES;总统
32=SSRV;终级保镖
33=CIVA;德克萨斯平民A
34=CIVB;德克萨斯平民B
35=CIVC;德克萨斯平民C
36=CIVBBP;棒员运动员
37=CIVBFM;海滩肥男
38=CIVBF;海滩女
39=CIVBTM;海滩瘦男
40=CIVSFM;雪中肥男
41=CIVSF;雪中肥女
42=CIVSTM;雪中瘦男
43=POLARB;北极熊
44=JOSH;猴子
45=YENGINEER;尤里工程师
46=GGI;重装大兵
47=INIT;尤里新兵
48=BORIS;鲍裏斯
49=BRUTE;狂兽人
50=VIRUS;病毒狙击手
51=CLNT;快枪手
52=ARND;终结者
53=STLN;蓝波
54=CAML;骆驼
55=EINS;爱因斯坦
56=MUMY;木乃伊
57=RMNV;洛马诺夫总理
58=LUNR;登月火箭兵
59=DNOA;暴龙
60=DNOB;暴龙
61=SLAV;奴隶矿工
62=WWLF;(木乃伊)
63=YDOG;尤里军犬
64=YADOG;尤里军犬
65=CIVFM;海滩肥女
[战车类代码]
0=AMCV;盟军移动基地车
1=HARV;尤里奴隶采矿车
2=APOC;天启坦克
3=HTNK;犀牛坦克
4=SAPC;装甲运输船
5=CAR;汽车
6=BUS;校车
7=WINI;wini
8=PICK;小货车
9=MTNK;灰熊坦克
10=HORV;武装采矿车
11=TRUCKA;货车A
12=TRUCKB;货车B
13=CARRIER;航空母舰
14=V3;V3火箭车
15=ZEP;基洛夫空艇
16=DRON;恐怖机器人
17=HTK;防空履带车
18=DEST;驱逐舰
19=SUB;飓风级战舰
20=AEGIS;宙斯盾战舰
21=LCRF;盟军运输船
22=DRED;无畏级战舰
23=SHAD;夜鹰直升机
24=SQD;乌贼
25=DLPH;海豚
26=SMCV;苏联移动机基车
27=TNKD;坦克杀手
28=HOWI;榴弹炮
29=TTNK;磁爆坦克
30=LTNK;轻坦克
31=CMON;超时空采矿车(不回)
32=CMIN;超时空采矿车
33=SREF;光棱坦克
34=XCOMET;位置标定器
35=HYD;海蝎
36=MGTK;幻影坦克
37=FV;多功能步兵车
38=VLAD;维拉迪摩指挥舰
39=DTRUCK;自爆卡车
40=PROPA;宣传车
41=CONA;挖掘机
42=COP;cop
43=EUROC;欧洲汽车
44=LIMO;豪华轿车
45=STANG;小轿车
46=SUVB;小汽车A
47=SUVW;小汽车B
48=TAXI;出租车
49=PTRUCK;货车C
50=CRUISE;巡游船
51=TUG;拖船
52=CDEST;海岸巡逻船
53=YHVR;尤里气垫船
54=PCV;尤里机动基地车
55=SMIN;尤里奴隶矿厂
56=SMON;超时空采矿车
57=YCAB;黄色计程车
58=YTNK;盖特炮坦克
59=BFRT;战斗要塞
60=TELE;磁电坦克
61=CAOS;神经突袭车
62=DDBX;巴士
63=BCAB;黑色计程车
64=BSUB;雷鸣潜艇
65=SCHP;武装直升机
66=JEEP;卡车
67=MIND;精神控制车
68=DISK;镭射幽浮
69=UTNK;激光坦克
70=ROBO;遥控坦克
71=SCHD;武装直升机
72=DOLY;摄影车
73=CBLC;电车
74=FTRK;救火车
75=AMBU;救护车
76=CIVP;民航机
77=V3V3;V3火箭车
78=TURCKB;货车B
[飞机类代码]
0=APACHE;阿帕奇
1=ORCA;入侵者战机
2=HORNET;大黄蜂
3=V3ROCKET;V3火箭
4=ASW;舰载反潜机
5=DMISL;无畏级导弹
6=PDPLANE;运输机
7=BEAG;黑鹰战机
8=BPLN;米格战机(鲍里斯的飞机)
9=SPYP;侦察机
10=CMISL;雷鸣导弹

他怎么搞的我就不知道了。。我只在ini里翻出来了建筑编号。。
再提醒一句,这个是10进制,代码注入的时候是16进制

如果你担心不够保险,怕eax=f的时候没跳出去,然后就无线循环了,还可以把je改成ja。。
同理,对于小兵、坦克车的科技全开也是如此。。
我没去翻小兵,坦克车的ini,不知道从0循环到几。。大家自己写就行了


这个代码的好处就是,不会像地图全开那样注入两次程序就堆栈爆炸gg了。。所以可以随便找个地方写下来。
然后要注意的是,千万千万不能写在NewConstructionOptions里面,否则会无限递归。
效果图:



奇葩的事情出现了:小兵和坦克出现了一堆我不认识的什么乱七八糟的东西。。



写文章不容易求加分点赞..

科技全开在红色警戒战网对战可用,所以请不要用于商业用途(上次发的居然有人用于商业用途,一个外挂100块钱,是谁我就不点名说了)。用于商业用途请自己承担所有责任。
从本论坛下载的内容仅供交流学习,请在下载后24小时内删除,请勿用于商业用途,否则后果自负





等等,你以为这样就结束了吗?
你以为这种暴力循环就能完美解决科技全开问题了吗?
不!真正的实现方式在下面:


调用添加建造函数的实现方式只是一种。那调用添加建造函数的函数是谁呢?
我们下断点,建造任意能提升科技等级的建筑,断点断下,回到上一层,得到:



我们发现无论是28号车船,还是10号小兵,还是7号建筑,都有着相似的结构——判断建筑是否可用,添加建造选项,删除建造选项
(5-20添加:28号,10号,7号指的是16进制)


那我们是否可以修改判断建筑是否可用的返回值来实现科技全开呢?
我们下断点,动态跟踪,然后ctrl+f9到段尾,发现是retn c,而eax返回值是0.也就相当于c语言里面的return 0。那是不是无法建造就返回0呢?
我们把他修改成0,试试


[Asm] 纯文本查看 复制代码
1
2
3
4
5
004F7870      B8 00000000   mov eax,0x0                             ;  判断建造选项是否可用call
004F7875      C2 0C00       retn 0xC
004F7878  |.  55            push ebp
004F7879  |.  8BE9          mov ebp,ecx
004F787B  |.  56            push esi



那添加建造选项肯定就是-1或者1咯哈哈哈
当x=-1时(啊呸,什么x,是eax)

当x=+1时

发现建筑可用,但是造车场之后车造不出来了。。
同理,x=2时防御建筑可用,但是兵造不出来了。
难道不同的返回值对应不同的建造类别??
IDA f5看一下,发现好像确实是有不同返回值
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
       return 0;
      if ( v61 <= 0 )
        return 1;
LABEL_189:
      v63 = (*(int (__thiscall **)(_DWORD))(*(_DWORD *)a2 + 64))(a2);
      if ( sub_49FAE0(v63) < *(_DWORD *)(a2 + 952) )
        return 1;
      if ( !a4 )
        return -1;
      v42 = 0;
      if ( vA83E40 <= 0 )
        return -1;
      v64 = vA83E34;
      break;
  }
  while ( *(void **)(*(_DWORD *)(v64 + 4 * v42) + 108) != v4 )
  {
LABEL_197:
    ++v42;
    if ( v42 >= vA83E40 )
      return -1;
  }
  if ( !((int (*)(void))sub_4CA160)()
    || (v65 = sub_4CA160(*(_DWORD *)(vA83E34 + 4 * v42)), (*(int (__thiscall **)(int))(*(_DWORD *)v65 + 132))(v65) != a2) )
  {
    v64 = vA83E34;
    goto LABEL_197;
  }
LABEL_199:
  if ( *(_DWORD *)(vA83E34 + 4 * v42) )
    return 1;
  return -1;
}

那这么搞的话修改起来又有2种思路,一种是造不同的类型,然后看看他是从哪个return出去的,在return 之前把返回值eax修改了。。
我没采用这个方法,因为他的retn和下面的case都连在一起了,修改起来很麻烦,还要写跳转。。

如上图,retn下面就是下一个case。直接改会把下面内容覆盖掉,所以要写跳转。那光返回0的情况就2重,这要写多少个跳转。。太麻烦了


第二种办法是在call外面直接mov eax,对应值。。
还是比较麻烦,一是因为

这也太多了吧。。。
二是因为涉及到一个堆栈平衡的问题,还要把堆栈pop出去,寄存器参数改回去
不过我选的第二种。。




你以为又结束了?
没错,我也觉得结束了。我修改了10个调用这个函数的地址,基本可以科技全开了
但是修改到第十几个的时候,发现了游戏消息循环的下一层call也调用了这个(这个位置我之前做过标记,所以一眼就能看出来)这是一个令人振奋的消息,因为修改这里很可能就相当于修改了全部

这是一个很大的jnz,直接跳过了很多内容,这些内容通过分析,发现居然是循环删除不可建造的!!
[Asm] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
006AA790  |> \8B0D 4C3DA800 |mov ecx,dword ptr ds:[0xA83D4C]
006AA796  |.  8B06          |mov eax,dword ptr ds:[esi]
006AA798  |.  3B81 64020000 |cmp eax,dword ptr ds:[ecx+0x264]
006AA79E  |.  73 16         |jnb short gamemd.006AA7B6
006AA7A0  |.  8B89 58020000 |mov ecx,dword ptr ds:[ecx+0x258]
006AA7A6  |.  8B1481        |mov edx,dword ptr ds:[ecx+eax*4]
006AA7A9  |.  33C0          |xor eax,eax                            ;  kernel32.BaseThreadInitThunk
006AA7AB  |.  8A42 6D       |mov al,byte ptr ds:[edx+0x6D]
006AA7AE  |.  3BC7          |cmp eax,edi
006AA7B0  |.  0F85 B2020000 |jnz gamemd.006AAA68
006AA7B6  |>  8B4424 2C     |mov eax,dword ptr ss:[esp+0x2C]
006AA7BA  |.  3938          |cmp dword ptr ds:[eax],edi
006AA7BC  |.  0F84 BA000000 |je gamemd.006AA87C
006AA7C2  |.  8B4C24 18     |mov ecx,dword ptr ss:[esp+0x18]
006AA7C6  |.  33D2          |xor edx,edx                            ;  gamemd.<ModuleEntryPoint>
006AA7C8  |.  8A93 CE0C0000 |mov dl,byte ptr ds:[ebx+0xCCE]
006AA7CE  |.  8B01          |mov eax,dword ptr ds:[ecx]
006AA7D0  |.  8B0E          |mov ecx,dword ptr ds:[esi]
006AA7D2  |.  52            |push edx                               ;  gamemd.<ModuleEntryPoint>
006AA7D3  |.  51            |push ecx
006AA7D4  |.  50            |push eax                               ;  kernel32.BaseThreadInitThunk
006AA7D5  |.  A1 4C3DA800   |mov eax,dword ptr ds:[0xA83D4C]
006AA7DA  |.  6A 10         |push 0x10
006AA7DC  |.  8B48 30       |mov ecx,dword ptr ds:[eax+0x30]
006AA7DF  |.  51            |push ecx
006AA7E0  |.  8D8C24 880000>|lea ecx,dword ptr ss:[esp+0x88]
006AA7E7  |.  E8 84C1E1FF   |call gamemd.004C6970
006AA7EC  |.  813D C802A800>|cmp dword ptr ds:[0xA802C8],0x80
006AA7F6  |.  7D 53         |jge short gamemd.006AA84B
006AA7F8  |.  8B0D D002A800 |mov ecx,dword ptr ds:[0xA802D0]
006AA7FE  |.  8BF0          |mov esi,eax                            ;  kernel32.BaseThreadInitThunk
006AA800  |.  8D14C9        |lea edx,dword ptr ds:[ecx+ecx*8]
006AA803  |.  8D0C91        |lea ecx,dword ptr ds:[ecx+edx*4]
006AA806  |.  8DBC49 D402A8>|lea edi,dword ptr ds:[ecx+ecx*2+0xA802D>
006AA80D  |.  B9 1B000000   |mov ecx,0x1B
006AA812  |.  F3:A5         |rep movs dword ptr es:[edi],dword ptr d>
006AA814  |.  66:A5         |movs word ptr es:[edi],word ptr ds:[esi>
006AA816  |.  A4            |movs byte ptr es:[edi],byte ptr ds:[esi>
006AA817  |.  FF15 30157E00 |call dword ptr ds:[<&WINMM.timeGetTime>>;  winmm.timeGetTime
006AA81D  |.  8B0D D002A800 |mov ecx,dword ptr ds:[0xA802D0]
006AA823  |.  8B7424 10     |mov esi,dword ptr ss:[esp+0x10]
006AA827  |.  89048D 543AA8>|mov dword ptr ds:[ecx*4+0xA83A54],eax  ;  kernel32.BaseThreadInitThunk
006AA82E  |.  8B15 D002A800 |mov edx,dword ptr ds:[0xA802D0]
006AA834  |.  A1 C802A800   |mov eax,dword ptr ds:[0xA802C8]
006AA839  |.  42            |inc edx                                ;  gamemd.<ModuleEntryPoint>
006AA83A  |.  83E2 7F       |and edx,0x7F
006AA83D  |.  40            |inc eax                                ;  kernel32.BaseThreadInitThunk
006AA83E  |.  8915 D002A800 |mov dword ptr ds:[0xA802D0],edx        ;  gamemd.<ModuleEntryPoint>
006AA844  |.  A3 C802A800   |mov dword ptr ds:[0xA802C8],eax        ;  kernel32.BaseThreadInitThunk
006AA849  |.  33FF          |xor edi,edi
006AA84B  |>  8B4424 18     |mov eax,dword ptr ss:[esp+0x18]
006AA84F  |.  8B00          |mov eax,dword ptr ds:[eax]
006AA851  |.  83F8 07       |cmp eax,0x7
006AA854  |.  74 05         |je short gamemd.006AA85B
006AA856  |.  83F8 06       |cmp eax,0x6
006AA859  |.  75 21         |jnz short gamemd.006AA87C
006AA85B  |>  57            |push edi
006AA85C  |.  B9 E8F78700   |mov ecx,gamemd.0087F7E8
006AA861  |.  893D 8C098800 |mov dword ptr ds:[0x88098C],edi
006AA867  |.  893D 90098800 |mov dword ptr ds:[0x880990],edi
006AA86D  |.  C705 94098800>|mov dword ptr ds:[0x880994],-0x1
006AA877  |.  E8 74E3DFFF   |call gamemd.004A8BF0
006AA87C  |>  3BDF          |cmp ebx,edi
006AA87E  |.  0F84 AD000000 |je gamemd.006AA931
006AA884  |.  8A8B CE0C0000 |mov cl,byte ptr ds:[ebx+0xCCE]
006AA88A  |.  8B13          |mov edx,dword ptr ds:[ebx]
006AA88C  |.  57            |push edi
006AA88D  |.  51            |push ecx
006AA88E  |.  8BCB          |mov ecx,ebx
006AA890  |.  FF52 2C       |call dword ptr ds:[edx+0x2C]
006AA893  |.  8B0D 4C3DA800 |mov ecx,dword ptr ds:[0xA83D4C]
006AA899  |.  50            |push eax                               ;  kernel32.BaseThreadInitThunk
006AA89A  |.  E8 715CE5FF   |call gamemd.00500510
006AA89F  |.  85C0          |test eax,eax                           ;  kernel32.BaseThreadInitThunk
006AA8A1  |.  0F84 8A000000 |je gamemd.006AA931
006AA8A7  |.  8B0E          |mov ecx,dword ptr ds:[esi]
006AA8A9  |.  8B5424 18     |mov edx,dword ptr ss:[esp+0x18]
006AA8AD  |.  33C0          |xor eax,eax                            ;  kernel32.BaseThreadInitThunk
006AA8AF  |.  8A83 CE0C0000 |mov al,byte ptr ds:[ebx+0xCCE]
006AA8B5  |.  50            |push eax                               ;  kernel32.BaseThreadInitThunk
006AA8B6  |.  8B02          |mov eax,dword ptr ds:[edx]
006AA8B8  |.  51            |push ecx
006AA8B9  |.  8B0D 4C3DA800 |mov ecx,dword ptr ds:[0xA83D4C]
006AA8BF  |.  50            |push eax                               ;  kernel32.BaseThreadInitThunk
006AA8C0  |.  6A 2E         |push 0x2E
006AA8C2  |.  8B51 30       |mov edx,dword ptr ds:[ecx+0x30]
006AA8C5  |.  8D8C24 F40000>|lea ecx,dword ptr ss:[esp+0xF4]
006AA8CC  |.  52            |push edx                               ;  gamemd.<ModuleEntryPoint>
006AA8CD  |.  E8 9EC0E1FF   |call gamemd.004C6970
006AA8D2  |.  813D C802A800>|cmp dword ptr ds:[0xA802C8],0x80
006AA8DC  |.  7D 53         |jge short gamemd.006AA931
006AA8DE  |.  8B0D D002A800 |mov ecx,dword ptr ds:[0xA802D0]
006AA8E4  |.  8BF0          |mov esi,eax                            ;  kernel32.BaseThreadInitThunk
006AA8E6  |.  8D14C9        |lea edx,dword ptr ds:[ecx+ecx*8]
006AA8E9  |.  8D0C91        |lea ecx,dword ptr ds:[ecx+edx*4]
006AA8EC  |.  8DBC49 D402A8>|lea edi,dword ptr ds:[ecx+ecx*2+0xA802D>
006AA8F3  |.  B9 1B000000   |mov ecx,0x1B
006AA8F8  |.  F3:A5         |rep movs dword ptr es:[edi],dword ptr d>
006AA8FA  |.  66:A5         |movs word ptr es:[edi],word ptr ds:[esi>
006AA8FC  |.  A4            |movs byte ptr es:[edi],byte ptr ds:[esi>
006AA8FD  |.  FF15 30157E00 |call dword ptr ds:[<&WINMM.timeGetTime>>;  winmm.timeGetTime
006AA903  |.  8B0D D002A800 |mov ecx,dword ptr ds:[0xA802D0]
006AA909  |.  8B7424 10     |mov esi,dword ptr ss:[esp+0x10]
006AA90D  |.  89048D 543AA8>|mov dword ptr ds:[ecx*4+0xA83A54],eax  ;  kernel32.BaseThreadInitThunk
006AA914  |.  8B15 D002A800 |mov edx,dword ptr ds:[0xA802D0]
006AA91A  |.  A1 C802A800   |mov eax,dword ptr ds:[0xA802C8]
006AA91F  |.  42            |inc edx                                ;  gamemd.<ModuleEntryPoint>
006AA920  |.  83E2 7F       |and edx,0x7F
006AA923  |.  40            |inc eax                                ;  kernel32.BaseThreadInitThunk
006AA924  |.  8915 D002A800 |mov dword ptr ds:[0xA802D0],edx        ;  gamemd.<ModuleEntryPoint>
006AA92A  |.  A3 C802A800   |mov dword ptr ds:[0xA802C8],eax        ;  kernel32.BaseThreadInitThunk
006AA92F  |.  33FF          |xor edi,edi
006AA931  |>  8B4C24 30     |mov ecx,dword ptr ss:[esp+0x30]
006AA935  |.  3BCF          |cmp ecx,edi
006AA937  |.  7E 64         |jle short gamemd.006AA99D
006AA939  |.  8B4424 1C     |mov eax,dword ptr ss:[esp+0x1C]
006AA93D  |.  8BD1          |mov edx,ecx
006AA93F  |>  8B08          |/mov ecx,dword ptr ds:[eax]
006AA941  |.  8B1E          ||mov ebx,dword ptr ds:[esi]
006AA943  |.  3BCB          ||cmp ecx,ebx
006AA945  |.  75 50         ||jnz short gamemd.006AA997
006AA947  |.  8B48 04       ||mov ecx,dword ptr ds:[eax+0x4]
006AA94A  |.  8B5E 04       ||mov ebx,dword ptr ds:[esi+0x4]
006AA94D  |.  3BCB          ||cmp ecx,ebx
006AA94F  |.  75 46         ||jnz short gamemd.006AA997
006AA951  |.  8B0D 84EDA800 ||mov ecx,dword ptr ds:[0xA8ED84]
006AA957  |.  897C24 34     ||mov dword ptr ss:[esp+0x34],edi
006AA95B  |.  897C24 38     ||mov dword ptr ss:[esp+0x38],edi
006AA95F  |.  897C24 3C     ||mov dword ptr ss:[esp+0x3C],edi
006AA963  |.  897C24 40     ||mov dword ptr ss:[esp+0x40],edi
006AA967  |.  897C24 48     ||mov dword ptr ss:[esp+0x48],edi
006AA96B  |.  894C24 50     ||mov dword ptr ss:[esp+0x50],ecx
006AA96F  |.  897C24 58     ||mov dword ptr ss:[esp+0x58],edi
006AA973  |.  897C24 5C     ||mov dword ptr ss:[esp+0x5C],edi
006AA977  |.  B9 0D000000   ||mov ecx,0xD
006AA97C  |.  8D7424 34     ||lea esi,dword ptr ss:[esp+0x34]
006AA980  |.  8BF8          ||mov edi,eax                           ;  kernel32.BaseThreadInitThunk
006AA982  |.  C64424 4C 00  ||mov byte ptr ss:[esp+0x4C],0x0
006AA987  |.  C74424 60 010>||mov dword ptr ss:[esp+0x60],0x1
006AA98F  |.  F3:A5         ||rep movs dword ptr es:[edi],dword ptr >
006AA991  |.  8B7424 10     ||mov esi,dword ptr ss:[esp+0x10]
006AA995  |.  33FF          ||xor edi,edi
006AA997  |>  83C0 34       ||add eax,0x34
006AA99A  |.  4A            ||dec edx                               ;  gamemd.<ModuleEntryPoint>
006AA99B  |.^ 75 A2         |\jnz short gamemd.006AA93F
006AA99D  |>  8B45 54       |mov eax,[arg.20]
006AA9A0  |.  83F8 01       |cmp eax,0x1
006AA9A3  |.  7E 29         |jle short gamemd.006AA9CE
006AA9A5  |.  8B4C24 28     |mov ecx,dword ptr ss:[esp+0x28]
006AA9A9  |.  8D50 FF       |lea edx,dword ptr ds:[eax-0x1]
006AA9AC  |.  3BCA          |cmp ecx,edx                            ;  gamemd.<ModuleEntryPoint>
006AA9AE  |.  7D 1E         |jge short gamemd.006AA9CE
006AA9B0  |.  8D0C40        |lea ecx,dword ptr ds:[eax+eax*2]
006AA9B3  |.  8D1488        |lea edx,dword ptr ds:[eax+ecx*4]
006AA9B6  |.  8B4424 24     |mov eax,dword ptr ss:[esp+0x24]
006AA9BA  |.  C1E2 02       |shl edx,0x2
006AA9BD  |.  2BD0          |sub edx,eax                            ;  kernel32.BaseThreadInitThunk
006AA9BF  |.  8B4424 20     |mov eax,dword ptr ss:[esp+0x20]
006AA9C3  |.  52            |push edx                               ;  gamemd.<ModuleEntryPoint>
006AA9C4  |.  50            |push eax                               ;  kernel32.BaseThreadInitThunk
006AA9C5  |.  56            |push esi
006AA9C6  |.  E8 C5F61100   |call gamemd.007CA090
006AA9CB  |.  83C4 0C       |add esp,0xC
006AA9CE  |>  8B45 54       |mov eax,[arg.20]
006AA9D1  |.  C64424 16 01  |mov byte ptr ss:[esp+0x16],0x1
006AA9D6  |.  48            |dec eax                                ;  kernel32.BaseThreadInitThunk
006AA9D7  |.  C64424 17 01  |mov byte ptr ss:[esp+0x17],0x1
006AA9DC  |.  8D0C40        |lea ecx,dword ptr ds:[eax+eax*2]
006AA9DF  |.  8D1488        |lea edx,dword ptr ds:[eax+ecx*4]
006AA9E2  |.  8D4C95 00     |lea ecx,dword ptr ss:[ebp+edx*4]
006AA9E6  |.  8D5440 06     |lea edx,dword ptr ds:[eax+eax*2+0x6]
006AA9EA  |.  8979 64       |mov dword ptr ds:[ecx+0x64],edi
006AA9ED  |.  8979 58       |mov dword ptr ds:[ecx+0x58],edi
006AA9F0  |.  8D4490 02     |lea eax,dword ptr ds:[eax+edx*4+0x2]
006AA9F4  |.  8979 5C       |mov dword ptr ds:[ecx+0x5C],edi
006AA9F7  |.  8979 60       |mov dword ptr ds:[ecx+0x60],edi
006AA9FA  |.  8D59 74       |lea ebx,dword ptr ds:[ecx+0x74]
006AA9FD  |.  897C85 00     |mov dword ptr ss:[ebp+eax*4],edi
006AAA01  |.  8979 6C       |mov dword ptr ds:[ecx+0x6C],edi
006AAA04  |.  A1 84EDA800   |mov eax,dword ptr ds:[0xA8ED84]
006AAA09  |.  33D2          |xor edx,edx                            ;  gamemd.<ModuleEntryPoint>
006AAA0B  |.  8903          |mov dword ptr ds:[ebx],eax             ;  kernel32.BaseThreadInitThunk
006AAA0D  |.  8B4424 6C     |mov eax,dword ptr ss:[esp+0x6C]
006AAA11  |.  89B9 80000000 |mov dword ptr ds:[ecx+0x80],edi
006AAA17  |.  8943 04       |mov dword ptr ds:[ebx+0x4],eax         ;  kernel32.BaseThreadInitThunk
006AAA1A  |.  8953 08       |mov dword ptr ds:[ebx+0x8],edx         ;  gamemd.<ModuleEntryPoint>
006AAA1D  |.  8B5C24 28     |mov ebx,dword ptr ss:[esp+0x28]
006AAA21  |.  8B5424 24     |mov edx,dword ptr ss:[esp+0x24]
006AAA25  |.  89B9 88000000 |mov dword ptr ds:[ecx+0x88],edi
006AAA2B  |.  8B45 54       |mov eax,[arg.20]
006AAA2E  |.  B9 34000000   |mov ecx,0x34
006AAA33  |.  48            |dec eax                                ;  kernel32.BaseThreadInitThunk
006AAA34  |.  4B            |dec ebx
006AAA35  |.  2BD1          |sub edx,ecx
006AAA37  |.  8945 54       |mov [arg.20],eax                       ;  kernel32.BaseThreadInitThunk
006AAA3A  |.  8B4424 2C     |mov eax,dword ptr ss:[esp+0x2C]
006AAA3E  |.  895C24 28     |mov dword ptr ss:[esp+0x28],ebx
006AAA42  |.  8B5C24 18     |mov ebx,dword ptr ss:[esp+0x18]
006AAA46  |.  895424 24     |mov dword ptr ss:[esp+0x24],edx        ;  gamemd.<ModuleEntryPoint>
006AAA4A  |.  8B5424 20     |mov edx,dword ptr ss:[esp+0x20]
006AAA4E  |.  2BC1          |sub eax,ecx
006AAA50  |.  2BD9          |sub ebx,ecx
006AAA52  |.  2BD1          |sub edx,ecx
006AAA54  |.  C645 3C 01    |mov byte ptr ss:[ebp+0x3C],0x1
006AAA58  |.  894424 2C     |mov dword ptr ss:[esp+0x2C],eax        ;  kernel32.BaseThreadInitThunk
006AAA5C  |.  895C24 18     |mov dword ptr ss:[esp+0x18],ebx
006AAA60  |.  895424 20     |mov dword ptr ss:[esp+0x20],edx        ;  gamemd.<ModuleEntryPoint>
006AAA64  |.  2BF1          |sub esi,ecx

!!!!!
靠,为什么我一开始分析的时候想不到从游戏主循环这里下手???一层就能分析到这!!
立刻jnz改成jmp,完美了!只需要科技全开一次,本次游戏就可以永久保留科技等级了!!!




你以为这就结束了吗??
这还真就结束了。。



科技全开在红色警戒战网对战可用,所以请不要用于商业用途(上次发的居然有人用于商业用途,一个外挂100块钱,是谁我就不点名说了)。用于商业用途请自己承担所有责任。
从本论坛下载的内容仅供交流学习,请在下载后24小时内删除,请勿用于商业用途,否则后果自负
相关视频:https://space.bilibili.com/251535501

TIM截图20190519110354.png (80.38 KB, 下载次数: 232)

TIM截图20190519110354.png

点评

牛 逼, 大神厉害!  发表于 2019-5-21 14:37

免费评分

参与人数 288吾爱币 +287 热心值 +261 收起 理由
xiaobeis500c + 1 + 1 这就厉害了
青苏之恋 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
以朋 + 1 鼓励转贴优秀软件安全工具和文档!
Red丶Find + 1 + 1 我很赞同!
tljwx + 1 谢谢@Thanks!
swts + 1 + 1 谢谢@Thanks!
slym + 1 + 1 我很赞同!
0025k + 1 + 1 用心讨论,共获提升!
无际 + 1 + 1 谢谢@Thanks!
ybjyzgj + 1 + 1 用心讨论,共获提升!
lqlzy0001 + 1 + 1 用心讨论,共获提升!
ufoxshang + 1 + 1 你才是真正的大神
KONZEAY + 1 + 1 谢谢@Thanks!
大粥 + 1 鼓励转贴优秀软件安全工具和文档!
dasha + 1 + 1 谢谢@Thanks!
langren425 + 1 + 1 谢谢@Thanks!
weiyan88 + 1 + 1 我很赞同!
wjxxl419 + 1 + 1 热心回复!
繁哥霸气 + 1 + 1 这还真的有用!
ysa无语 + 1 + 1 热心回复!
Jz957 + 1 我很赞同!
zhangchang + 1 厉害?
zhuyan9851 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
風嵐 + 1 + 1 学习
applo + 1 + 1 用心讨论,共获提升!
gtp_ + 1 + 1 用心讨论,共获提升!
清璇 + 1 + 1 厉害&amp;amp;#128077;&amp;amp;#127999;
紫木莫殇 + 1 + 1 谢谢@Thanks!
Xenocider + 1 + 1 用心讨论,共获提升!
MH409 + 1 + 1 谢谢@Thanks!看得我眼花缭乱,但是好厉害
yangchuang + 1 + 1 谢谢
4599773 + 1 + 1 厉害厉害
鱼鱼155 + 1 + 1 谢谢@Thanks!
刘郝聪明 + 2 + 1 假装看懂!然后开起了外挂玩起了我电脑里的单机红警哈哈哈
夜阑枫 + 1 + 1 热心回复!
z279487447 + 1 为探索精神点赞
qqhardys + 1 + 1 用心讨论,共获提升!
guoruihotel + 1 + 1 谢谢@Thanks!
wsyss + 1 + 1 谢谢@Thanks!
heikaer + 1 + 1 学习了!!
王怪怪 + 1 + 1 热心回复!
wxbyff + 1 谢谢@Thanks!
q8909742 + 1 + 1 我很赞同!
HLYM + 1 + 1 我很赞同!
Kings_jk + 1 我很赞同!
hwx920301 + 1 + 1
qdlxcc + 1 + 1 我很赞同!
梦迪路法 + 1 + 1 我很赞同!
羊村你喜爹 + 1 + 1 热心回复!
wyk1996 + 1 我很赞同!
yuy0123 + 1 + 1 谢谢
gaoyupeng125 + 1 我很赞同!
今晚小可爱 + 1 谢谢@Thanks!
一乐大师 + 1 + 1 热心回复!
china_wuying + 1 + 1 大神啊
kwong + 1 + 1 谢谢@Thanks!
jiluofu1992 + 1 好强大,被震惊了。回去试试,这会可以吊打我的对手了。谢谢大佬。
ikie3345 + 1 + 1 热心回复!
zuijiahouwei + 1 + 1 我很赞同!
ievampire + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
吾爱牛逼 + 1 + 1 我很赞同!
jx1101 + 1 + 1 我很赞同!
aironicl + 1 看了好多贴,都看不懂在干嘛。好歹这个是熟悉的游戏了,hh。真厉害!!
飞行堡垒 + 1 + 1 虽然没看懂,但感觉是很厉害的样子!赞
WAPJ2800904 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lijianhu + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Leoken + 1 谢谢@Thanks!
樊洋昊 + 1 + 1 谢谢@Thanks!
ZHANGtao6344863 + 1 + 1 我很赞同!
kuanglong1985 + 1 我很赞同!
非也非仔 + 1 + 1 热心回复!
泠花葉落 + 1 + 1 我很赞同!
李华 + 1 + 1 谢谢@Thanks!
快乐的飞翔 + 1 + 1 我很赞同!
onedai18 + 1 用心讨论,共获提升!
k123258 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
44638168 + 1 + 1 虽然看不懂,但是要支持
孤霜情冷点朱砂 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Jeak + 1 + 1 谢谢@Thanks!
ls888888 + 1 + 1 我很赞同!
littleprince + 1 + 1 我很赞同!
Avenshy + 1 + 1 谢谢@Thanks!
非常有钱 + 1 + 1 我假装能看懂 然后就这么看完了。。。。
WA丶Jerry + 1 + 1 大佬最好不要放出成品,这TM的有想拿来赚钱来的太多了
Stupido + 1 + 1 用心讨论,共获提升!
菜鸟X科技 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
cxljava + 1 + 1 热心回复!
youhen233 + 1 + 1 谢谢@Thanks!
吾爱无风 + 1 路过,支持点赞。1.可以实现建造所有其他所有与游戏关系不大的素材吗?如其.
triender + 1 用心讨论,共获提升!
黑色魔方 + 1 + 1 大神,还缺腿毛吗?
mochu + 1 + 1 热心回复!
TongLing + 1 + 1 我很赞同!
六芒星的说 + 1 + 1 热心回复!
franklizz + 1 热心回复!
laomo123 + 1 + 1 用心讨论,共获提升!
91www + 1 谢谢@Thanks!
识趣灬 + 1 + 1 谢谢@Thanks!
FakeCracker + 2 + 1 竟然仔细的看完了
朱朱丶丶 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
bbsokok 发表于 2019-5-19 12:05
有下载直接用的吗?
推荐
人善最美丽 发表于 2019-5-20 15:35
xwk 发表于 2019-5-19 18:39
单机模式下,只有玩家有超武,电脑没有

你怕是没有玩过红警吧~~
推荐
 楼主| KaQqi 发表于 2019-5-19 11:26 |楼主
本帖最后由 KaQqi 于 2019-5-21 18:05 编辑

从本论坛下载的内容仅供交流学习,请在下载后24小时内删除,请勿用于商业用途,否则后果自负


建筑物代码相关资料我会以其他形式上传
推荐
 楼主| KaQqi 发表于 2019-5-19 11:57 |楼主
苏紫方璇 发表于 2019-5-19 11:47
膜拜大神,大神好厉害,看完大神的帖子终于可以完爆1v7超武冷酷了

表示我不开挂就能1v7冷酷23333

点评

哈哈哈,我北极圈炸桥最擅长了  详情 回复 发表于 2022-3-19 10:04

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ZCH584 + 1 + 1 人家说的是1V7带超级武器的冷酷,话说就算不带超级武器,我也只有北极圈这.

查看全部评分

头像被屏蔽
推荐
shqvc 发表于 2019-5-19 20:02
KaQqi 发表于 2019-5-19 11:57
表示我不开挂就能1v7冷酷23333

我除了有桥的  可以断桥来做的  基本上玩不过1V7  把你改的这个发上来  我们也玩一下呗
推荐
苏紫方璇 发表于 2019-5-19 11:47
膜拜大神,大神好厉害,看完大神的帖子终于可以完爆1v7超武冷酷了

点评

苏紫姐姐 除了不发帖,哪都有你,嘻嘻  详情 回复 发表于 2019-5-21 13:28

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
KaQqi + 3 + 1 我能在几乎所有地图不开挂打败7冷酷2333

查看全部评分

3#
zhaotianss 发表于 2019-5-19 11:39
单机是不是可以1挑8了
6#
涛之雨 发表于 2019-5-19 12:02
KaQqi 发表于 2019-5-19 11:26
从本论坛下载的内容仅供交流学习,请在下载后24小时内删除,请勿用于商业用途,否则后果自负

我好想明白有什么深层含义了。
我是不是知道的太多了?
大神给点封口费吧。

免费评分

参与人数 1热心值 +1 收起 理由
KaQqi + 1 想得美

查看全部评分

8#
 楼主| KaQqi 发表于 2019-5-19 12:06 |楼主
bbsokok 发表于 2019-5-19 12:05
有下载直接用的吗?

没有了。。上次外挂泛滥了,本来ra2ol平台没有外挂。。
9#
bbsokok 发表于 2019-5-19 12:08
可惜了,我就喜欢单机玩而已
10#
涛之雨 发表于 2019-5-19 12:17
KaQqi 发表于 2019-5-19 12:06
没有了。。上次外挂泛滥了,本来ra2ol平台没有外挂。。

。。。我寄几和寄几玩是吧。。。。
楼主可真皮。。。。
攻防转换。。好快啊。。。

免费评分

参与人数 1热心值 +1 收起 理由
KaQqi + 1 hhhhhhhhhhhhhhhhhhhhhhh

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-28 20:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表