翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 2954|回复: 8

[交流] [讨论]游戏录像开关,有人研究吗?

 关闭 [复制链接]

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
发表于 2007-6-6 13:11:24 | 显示全部楼层 |阅读模式
有时候一局打了3、4个小时,经历了多次裸奔逃亡、会战,艰难取胜,却没有录像来回味,总觉得心里空荡荡。但每次要求主机钩上录像开关,80%遭拒绝。 如果存在一个工具,能够让客机摆脱主机的控制进行强制录像,该是多么高兴的事儿。网上踏破铁鞋来搜索永久录像补丁,包括用google变着关键词搜洋人的网站,也没有这种工具的影子。 最后心里萌生一个念头,自己做! 菜鸟我用Ollydbg + 金山游侠,反复寻找录像标记在内存中的位置,还有执行录像的函数入口,然后修改指令,虽然有所小成,但就是解决不了同步错误的问题。最好的时候,和朋友打了20分钟才跳出同步错误。怕麻烦朋友,我在自己机器上用vmware跑了win98,再装个aoc进行模拟联机测试。无奈跟同步有关的代码对我而言太艰涩,最后工作、生活的琐碎事情太多,只好先放下了。 第一次来这里,请教高手,如果有兴趣,是否可以一起研究录像开关?我摸索出来一些心得可供参考。 [em01]
回复

使用道具 举报

49

主题

4

精华

3973

积分

圣徒

耕战
341
鹰币
99
天龙币
0
回帖
936

特级嘉禾勋章一级帝国勋章蛟龙勋章

附庸关系0
发表于 2007-6-6 13:31:46 | 显示全部楼层
办法倒是有...  你自己建主就不用要求别人录像了..
回复

使用道具 举报

3

主题

0

精华

227

积分

囚徒

耕战
0
鹰币
13
天龙币
0
回帖
67
附庸关系0
发表于 2007-6-6 13:32:23 | 显示全部楼层
什么版本?CALL地址多少
回复

使用道具 举报

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
 楼主| 发表于 2007-6-6 13:34:07 | 显示全部楼层
楼上的办法简单,但是不可能每次都自己建主。我对建个局等人来等上一小时心有余悸.......
回复

使用道具 举报

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
 楼主| 发表于 2007-6-6 13:37:47 | 显示全部楼层
1.0 版本,call地址不在手边,待会回家找出来
回复

使用道具 举报

3

主题

0

精华

227

积分

囚徒

耕战
0
鹰币
13
天龙币
0
回帖
67
附庸关系0
发表于 2007-6-6 13:47:32 | 显示全部楼层
1.0c的比较熟点
回复

使用道具 举报

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
 楼主| 发表于 2007-6-6 19:13:03 | 显示全部楼层
好,我分享一下自己的分析结果,当抛砖引玉。
写入是否录像的标记,据我分析是这个函数:
00424300  /$  33C0          XOR EAX,EAX 00424302      8A81 D8090000 MOV AL,BYTE PTR DS:[ECX+9D8] 00424308  \.  C3            RETN
如果想始终都录像,那么改成如下指令就行,AL=1代表录像:
00424300  /$  33C0          XOR EAX,EAX 00424302      B0 01         MOV AL,1 00424304      C3            RETN
这样一来打单人战役也能录像了。不过简单的修改是逃不过游戏同步检查的法眼的,一联机准出问题。
回复

使用道具 举报

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
 楼主| 发表于 2007-6-6 19:24:21 | 显示全部楼层
真正在游戏开始时启动录像、创建*.mgx文件的,是这个函数:
005CF260  /$  81EC 10090000 SUB ESP,910 005CF266  |.  56            PUSH ESI 005CF267  |.  57            PUSH EDI 005CF268  |.  8BF1          MOV ESI,ECX 005CF26A  |.  E8 9150E5FF   CALL age2_x1.00424300 005CF26F  |.  85C0          TEST EAX,EAX 005CF271  |.  0F84 E8010000 JE age2_x1.005CF45F 005CF277  |.  8B3D 38336800 MOV EDI,DWORD PTR DS:[683338] 005CF27D  |.  C705 38336800>MOV DWORD PTR DS:[683338],1 005CF287  |.  C705 64A56600>MOV DWORD PTR DS:[66A564],64 005CF291  |.  8B8E 24040000 MOV ECX,DWORD PTR DS:[ESI+424] 005CF297  |.  8B01          MOV EAX,DWORD PTR DS:[ECX] 005CF299  |.  FF90 D0000000 CALL DWORD PTR DS:[EAX+D0] . . . 005CF456  |.  51            PUSH ECX 005CF457  |.  E8 2C400400   CALL age2_x1.00613488 005CF45C  |.  83C4 04       ADD ESP,4 005CF45F  |>  5F            POP EDI 005CF460  |.  B8 01000000   MOV EAX,1 005CF465  |.  5E            POP ESI 005CF466  |.  81C4 10090000 ADD ESP,910 005CF46C  \.  C3            RETN
注意这句话: 005CF27D  |.  C705 38336800>MOV DWORD PTR DS:[683338],1
经过多次测试,就定位到这条指令。 如果执行过这句,即使没有欺骗程序进行强制录像,也会在游戏开始的几秒钟内跳出同步错误! 所以,直接改成 005CF27D  |.  C705 38336800>MOV DWORD PTR DS:[683338],0 OK,游戏开始也不会出错了,但在以后一个不确定的时间里,还是跳出同步错误提示。 本人精力能力有限,对此也无能为力了,期待可以启发高手来继续探索。 [em06]
[此贴子已经被作者于2007-6-6 19:27:53编辑过]

回复

使用道具 举报

1

主题

0

精华

37

积分

骑士

耕战
-2
鹰币
19
天龙币
0
回帖
22
附庸关系0
 楼主| 发表于 2007-6-10 14:13:46 | 显示全部楼层
没有人提出高见吗?
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-12-23 15:58 , Processed in 0.148556 second(s), 105 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

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