KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[文物] Planetarian 汉化测试第一版下载

[ 45208 查看 / 59 回复 ]

回复:Planetarian 汉化测试第一版下载

偶知道是虾米问题了,显不出是因为切换了屏幕后没有改变写的位置,结果写到外面去了,呵呵。

我的机器一直是800×600分辨率,所以可以显示。
TOP

回复:Planetarian 汉化测试第一版下载

以下引用wdx04在2004-12-18 0:38:19的发言:
    问一下楼主,外挂字幕是如何实现和游戏同步的?是通过API Hook、调试API、硬件断点还是别的技术?


其实很简单,那就是……读内存,每隔X毫秒读一次内存,变了就更新字幕。这个方法还是比较好用的,基本所有程序都可以通用。

不过在pl中其实是读不到正在显示的字符的(其他大多能读到),所以比较麻烦,得去找一个对应显示内容列表的内存位置(不同机器还可能不一样……)。API Hook等瓜瓜,我本身都不熟,不能熟练运用。呵呵。


  另外游戏中的文字到底是用什么方法显示的也不清楚。SoftICE装载了ddraw.dll,d3d8.dll,d3d9.dll
之后,DirectDrawCreate、DirectDrawCreateEx、Direct3dCreate8、Direct3dCreate9及常规GDI中的
TextOut、ExtTextOut、DrawText、DrawTextEx等函数都拦截不到文本输出。


还好没去找什么拦截,不然又白费时间了。

顺便问一下,有没有什么函数可以将程序的ProcessID转成它的窗口的HWND的。用其他方法,只要能得到Pl的窗口位置就行。
TOP

回复:Planetarian 汉化测试第一版下载

在第一次读入字符数据(就是Pl的Load或New的时候)时,内存中会有某段是固定的字符,查找这些固定字符的位置就行了。

Findwindow的窗口名是什么?我实在不知道怎么把那几个字弄出来。
TOP

回复:Planetarian 汉化测试第一版下载

Findwindow Ok了,谢谢楼上了。

天哪,我本想用将内存中文字全部写成空格来让它不显示的,居然还要改地址。看来让它不显示还比较麻烦,估计查找一次就得N秒。(地址有一次我在07XXXXXX才找到,汗一个)

至于我找的内存,是在比较前面,和文本无关(应该和偏移地址有关)的一组数据,你用fpe去查一下就知道了。注意:前面四句的偏移地址比较后。
TOP

回复:Planetarian 汉化测试第一版下载

以下引用wdx04在2004-12-18 16:51:17的发言:
是以 00 00 00 00 38 00 00 00 开始的头部吗?
这38h字节的文件头中的大部分数据项(DWORD值)都在4F3210子程序里用到了。


不是,不过不知道前面有没有这个。地址大约在7AXXXX附近。


又发现了一个问题,解密的脚本并没有被释放,只是改变了映射。而且,
如果游戏不被中断(比如Alt+Tab切换或调试器中断),有可能并不会发生地址映射改变。

地址在07XXXXXX是不是因为同时运行的程序太多?我每次都是启动Windows就开始调试,
每次都在03000000以下,一般用S命令搜索只到08000000,时间应该少于0.5秒。

的确,那次运行了N多程序。搜索时间长应该是我的算法问题,呵呵,可以改进。
TOP