回复: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的窗口位置就行。