问题补充说明:注:(不是生成修改器的,是注入++的)提示是这个:这一步基本上和步骤 7 的做法是相似的,不过稍稍有点难度。 本关你必须用一小段代码来修改减少健康值的原代码,并且做到,如果当前时间的秒数大于或等于 30 将健康值设置为1000,如果当前时间的秒数小于 30 将健康值设置为 2000。 我们可以用 API 调用函数获取当前的时间,并利用 自动汇编 完成这项任务,但这里好象有更简单的做法:C语言脚本注入。 找到健康值的地址,然后打开 CE 脚本引擎 (内存浏览器窗口 快捷键:ctrl+alt+a ,或是点击 工具->脚本引擎)。 然后,和其它的教程不同的是,这在里我会多给你一些提示(假设你从未接触过C语言)。----------------#include struct tm *timep;time_t c;c=time(0);timep=localtime(&c);if (timep->tm_sec>=30) *(int *)addresstochange=1000;else *(int *)addresstochange=2000;------------- 使用健康值的地址替换代码中的 addresstochange,另外,不要忘记在地址的前面加上 0x 。比如,地址是 0012345,则输入 0x0012345 选择 "注入" ,"注入当前的进程" ,将代码注入到当前进程,此时,"自动汇编"窗口 弹出,并自动生成调用代码(Call)。 现在,就象步骤 7 那样,在 "内存浏览器"窗口 选择代码地址,在 "自动汇编"窗口 选择 "模板","代码注入",输入刚才获取的调用代码(Call)。 要注意的是,调用代码(Call)将更改 寄存器 EAX 的数据,因此,有必要的话,你应该在压栈之前和出栈之后保存它, 你也可以将原代码移除,它在这里也起不到什么作用了。 点击 "执行" ,点击 Tutorial.exe 窗口上 "打我" 。 如果没什么问题的话,健康值会按照当前的时间变动。额外信息: 正如前面所说,CE 支持标准的汇编语言。所以,你可以在代码中使用函数名称来调用函数。 你也可以在脚本中引用 DLL 文件,例如:injectdll(mydll.dll) // 可以使用你喜欢的语言去写DLL文件codecave:call functionofmydlljmp exit求高手来
知道可能会禁乐担止链接,你搜索“Chea360问答tEngineTutorial闯关手记第八关”,第一个博客就是了,那里有详细图文解说。
这个功能是给那些有编程基础的人用的,不然即使按照教程做对了,也很难应用到游戏里。