红警 穿墙 穿建筑 穿河流 逆向
本帖最后由 zhgang908 于 2019-11-24 20:58 编辑先上一张效果图
首先用ce 找坦克的所在地图位置
为了方便确定坦克的位置,我设置了如下图碍,及找到具体的坐标体第对应点 正中的位置就是24A0
正中的位置就是24A0的八个方向0# 249f 1#259f 2#25a03#25a14#24a15#23a16#23a0 7#239f
方向指示图
ce找出目的地坐标 [+564]+30此处到行进时给出目的地标,到达后置0.
找出谁改写了这个地方的值跟进。找出坦克行进的方向集的call 0042aed0
进入 找到24a0 周围8个方距离 目的也的距离集(浮点数)call 00427d40
在浮点数上断。发现是 00427E7E处算出的距离
00427E7E|.D95E 08 fstp dword ptr ds: ;算出距离 写出eis+8距离2查看浮点数组
ok 着重分析 00427E7E|.D95E 08 fstp dword ptr ds:
发现如果周围不能走则此处给出一个较大的值,找到前面的call
00427831|.FF92 94010000 ||call dword ptr ds: ;判断这个点的通断性
如果 返回值 eax=0 就可以给出很的小距离值了 可以达到穿墙的目的
进入00427831|.FF92 94010000 ||call dword ptr ds: ;判断这个点的通断性
分析及改变返回值就可以达到穿墙 穿建筑 穿河流
具体变更:
过河改动3处
第一处
原型
006F7E5C .5E pop esi
006F7E5D .5D pop ebp
006F7E5E .5B pop ebx
006F7E5F .83C4 70 add esp,0x70
006F7E62 .C2 1400 retn 0x14
006F7E65 8B43 44 mov eax,dword ptr ds: ;地图数组指定单位 +44状态标识jmp 01d70068
006F7E68 83F8 FF cmp eax,-0x1 ;不可走 eax=-2可走eax==ffffffff
006F7E6B 0F84 FC000000 je game.006F7F6D ;1 可走。这就跳 了 不能走就不跳
006F7E71 .8B0D FCE0A100 mov ecx,dword ptr ds:
006F7E77 .8B3481 mov esi,dword ptr ds:
006F7E7A .8A86 7A020000 mov al,byte ptr ds:
修改
006F7E5C .5E pop esi
006F7E5D .5D pop ebp
006F7E5E .5B pop ebx
006F7E5F .83C4 70 add esp,0x70
006F7E62 .C2 1400 retn 0x14
006F7E65 - E9 FE816701 jmp 01D70068 ; jmp 01d70068
006F7E6A 90 nop
006F7E6B 0F84 FC000000 je game.006F7F6D ;
006F7E71 .8B0D FCE0A100 mov ecx,dword ptr ds:
006F7E77 .8B3481 mov esi,dword ptr ds:
006F7E7A .8A86 7A020000 mov al,byte ptr ds:
改 jmp 01d70068
01D70068 B8 FFFFFFFF mov eax,-0x1 此处修改 为-1 代表此处没有围墙
01D7006D 83F8 FF cmp eax,-0x1
01D70070- E9 F67D98FE jmp game.006F7E6B
01D70075 0000 add byte ptr ds:,al
第二处
原型
006F7F88 .^\7D E3 jge Xgame.006F7F6D
006F7F8A .BF 05000000 mov edi,0x5
006F7F8F .^ EB D5 jmp Xgame.006F7F66
006F7F91 8BB3 E4000000 mov esi,dword ptr ds: ;此位置上的建筑指针
006F7F97 >85F6 test esi,esi ;0BBB8240
006F7F99 .0F84 E3040000 je game.006F8482 ;1可走如果是建筑这就不跳了
006F7F9F >3BEE cmp ebp,esi
修改为
006F7F88 .^\7D E3 jge Xgame.006F7F6D
006F7F8A .BF 05000000 mov edi,0x5
006F7F8F .^ EB D5 jmp Xgame.006F7F66
006F7F91 33F6 xor esi,esi ;此位置上的建筑指针清空
006F7F93 90 nop
006F7F94 90 nop
006F7F95 90 nop
006F7F96 90 nop
006F7F97 >85F6 test esi,esi ;0BBB8240
006F7F99 .0F84 E3040000 je game.006F8482 ;1可走如果是建筑这就不跳了
006F7F9F >3BEE cmp ebp,esi
第三处
原型
006F847C .^\0F85 1DFBFFFF jnz game.006F7F9F
006F8482 >8A4424 11 mov al,byte ptr ss:
006F8486 .84C0 test al,al
006F8488 .0F85 98010000 jnz game.006F8626
006F848E 8B83 EC000000 mov eax,dword ptr ds: ; 的值是7 建筑 6 边界2 水1 可走
006F8494 .8B95 AC050000 mov edx,dword ptr ss:
006F849A .8D0CC0 lea ecx,dword ptr ds:
006F849D .8B82 A4050000 mov eax,dword ptr ds:
修改后
006F847C .^\0F85 1DFBFFFF jnz game.006F7F9F
006F8482 >8A4424 11 mov al,byte ptr ss:
006F8486 .84C0 test al,al
006F8488 .0F85 98010000 jnz game.006F8626
006F848E B8 FFFFFFFF mov eax,-0x1 ; 的值修改为-1
006F8493 90 nop
006F8494 .8B95 AC050000 mov edx,dword ptr ss:
006F849A .8D0CC0 lea ecx,dword ptr ds:
006F849D .8B82 A4050000 mov eax,dword ptr ds:
至此更改完成。上分析数据(有点杂)
强,对其他游戏都不感兴趣,只能玩玩红警,看到红警就涌起了怀旧的情绪 以前家里配电脑就去网吧把红警考过来,然后开始很菜(后来还是很菜),至今都记得联合国那边第二关一个谭雅,不敢乱走,结果玩了四个多小时,上面显示一般通关时间是四十分钟{:1_907:} 还能下河洗澡厉害了 虽然我看不懂 不过确实牛逼 大佬厉害。
cs有没有类似的操作 我到目前还没有解决win7红警局域网连接问题呢 强呀!好久没玩红警了 虽然我看的不是特别明白,但是感谢楼主分享,学习了 穿墙很强 好厉害,要怎么用?