《镇邪》ct 11/15 【宠物脚本已修复】后续不更了
本帖最后由 哇靠啊 于 2022-11-15 22:14 编辑{:3_171:}记得帮我点点赞噢
会ce基础的搜索,用里面的【字节数组】搜素,把时间脚本里的 字节码【4C 63 46 2C 48 8B C8 】搜个地址出来,
找到这个【时间读取·脚本】"字节码"模块地址,右键 反汇编内存地址,就能看到 movsxd r8,dword ptr 【rsi+2C】 类似这样的地址,看看是不是 特征码 变了还是这个【+2c】 变了,到时自己手动改下就好
11/17号,时间读取失效后的解决方案,就是感兴趣就自己学着修复脚本,不然就找另外的ct来用。 好人一生平安 感謝分享{:3_125:} 66666666666 这个怎么使用? zhouke6302 发表于 2022-11-7 22:36
这个怎么使用?
用7.2以上版本的ce加载,使用
哇靠啊 发表于 2022-11-7 07:56
用7.2以上版本的ce加载,使用
建议加上激活mono的lua命令,然后aob用aobscanregion, 这样激活会很快
哇 这是最好的修改文档 谢谢楼主分享,还能不能加个修改召唤尸王攻击和防御的功能{:3_111:} 66666可惜我都通关了 流程有点短啊 随风的方向 发表于 2022-11-8 00:24
建议加上激活mono的lua命令,然后aob用aobscanregion, 这样激活会很快
{:3_41:}还有这种便利之事!!……dalao有相关脚本参考下吗 {:3_48:}
随风的方向 发表于 2022-11-8 00:24
建议加上激活mono的lua命令,然后aob用aobscanregion, 这样激活会很快
dalao 我找了两个脚本参考 但是我没搞懂。 一个脚本是在脚本内有激活lua (No Mono )
另一个是用了 aobscanregion(代号,模块,特征码) 第二行里是 assert(代号,特征码)的形式。
我需要每个脚本内都内置一个激活 no mono的东西吗,还是直接写入载入ct的lua里面就可以了。
个人倾向是 在载入ct的时候激活 mono ……但我不是很确定,所以想dalao指点一二
哇靠啊 发表于 2022-11-8 12:37
dalao 我找了两个脚本参考 但是我没搞懂。 一个脚本是在脚本内有激活lua (No Mono )
另一个是用了 aob ...
好像有点问题,我多做几次试验看看
哇靠啊 发表于 2022-11-7 21:55
好像有点问题,我多做几次试验看看
你单独写个加载mono的lua如例:
if syntaxcheck then return end
local RequiredCEVersion = 7.4
if (getCEVersion==nil) or (getCEVersion()< 7.4) then
messageDialog('当前CE的版本过低,请安装7.4或以上的 Cheat Engine '..RequiredCEVersion, mtError, mbOK)
closeCE()
end
if getProcessIDFromProcessName("ZX.exe") ~= nil and readInteger("ZX.exe") ~= 0 then
openProcess("ZX.exe")
mono_initialize()
LaunchMonoDataCollector()
else
local msg_NoProcess = '请先打开游戏!'
messageDialog(msg_NoProcess,mtWarning, mbClose)
error(msg_NoProcess)
end然后将所有的选项归为其子项,每个选项就可以用aobscanregion了,拿我自用的人物装备指针脚本举例:
aobscanregion(aobPlayer_GetEquipmentInfo,ShuXing:Show,ShuXing:Show+c55,4C 63 87 C4 01 00 00 48 8B C8 BA 01 00 00 00 83 38 00 48 8D 6D 00) // should be unique
alloc(newmem,$1000)
alloc(aobPlayer_GetEquipmemtInfo_ptr,8)
registersymbol(aobPlayer_GetEquipmemtInfo_ptr)
label(code_P1)
label(code_P2)
label(return)
newmem:
jmp code_P1
code_P1:
movsxdr8,dword ptr
mov rcx,rax
mov edx,00000001
cmp dword ptr ,00
mov qword ptr ,rax
jmp code_P2
code_P2:
lea rbp,
jmp return
aobPlayer_GetEquipmentInfo:
jmp far newmem
nop 8
return:
registersymbol(aobPlayer_GetEquipmentInfo)还有一点是因为mono是随游戏运行生成所需的调用函数,所以保险起见所有需要跳转的都需要做14字节的跳转
哇靠啊 发表于 2022-11-7 21:55
好像有点问题,我多做几次试验看看
还有就是你可以加个单独冻结时间的小脚本,直接改读取时间流速的部分就行。变量地址就是你时间指针加34
随风的方向 发表于 2022-11-8 13:48
你单独写个加载mono的lua如例:
然后将所有的选项归为其子项,每个选项就可以用aobscanregion了,拿我自用 ...
{$lua}
if syntaxcheck then return end
if (LaunchMonoDataCollector()==0) then error("No Mono") end
{$asm}
aobscanregion(INJECT_sx,"ShuXing:Show","ShuXing:Show"+fff,48 63 8F D0 01 00 00 F3) // should be unique
assert(INJECT_sx,48 63 8F D0 01 00 00 F3)
alloc(newmem,$1000,INJECT_sx)
label(code)
label(return)
alloc(sx,$4)
registersymbol(sx)
newmem:
mov ,rdi
code:
movsxdrcx,dword ptr
jmp return
INJECT_sx:
jmp newmem
nop 2
return:
registersymbol(INJECT_sx)
{$lua}
if not syntaxcheck and monopipe then monopipe = nil,monopipe.Destroy()end
{$asm}
INJECT_sx:
db 48 63 8F D0 01 00 00
unregistersymbol(*)
dealloc(*){:3_56:}目前只搞懂了这一丢丢部分,感觉lua够我研究很长时间了,非常感谢dalao让我受益匪浅 么么哒~
本帖最后由 随风的方向 于 2022-11-7 23:04 编辑
哇靠啊 发表于 2022-11-7 22:56
目前只搞懂了这一丢丢部分,感觉lua够我研究很长时间了,非常感谢dalao让我受益匪浅 么么哒~
...
可能我没解释清楚,你不要把加载进程啥的啥的放在开CT时的加载点,你单独写个附进程的脚本,里面带上加载mono的功能,其他选项作为这个选项的子项,然后每个具体的修改项不用加跳lua的脚本去加载mono,直接纯asm就行
哇靠啊 发表于 2022-11-7 22:56
目前只搞懂了这一丢丢部分,感觉lua够我研究很长时间了,非常感谢dalao让我受益匪浅 么么哒~
...
还有记得查找访问,设置断点啥的必须要用dbvm,否则mono会失效,就要重加载了
随风的方向 发表于 2022-11-8 13:59
还有记得查找访问,设置断点啥的必须要用dbvm,否则mono会失效,就要重加载了
...
猪脑过载了{:3_57:} 容我消化消化,时间流速里 确实有个0.46的 改0就不在流动了……是不是也可以做个时间流速加快的呢
哇靠啊 发表于 2022-11-7 23:02
猪脑过载了 容我消化消化,时间流速里 确实有个0.46的 改0就不在流动了……是不是也可以做个时间 ...
你咋是0.46,我这是0.15啊,我这找到的访问点是GameTime:Update+627
PS: 我编辑了一下之前mono的回答,详细解释了一下
哇靠啊 发表于 2022-11-7 23:02
猪脑过载了 容我消化消化,时间流速里 确实有个0.46的 改0就不在流动了……是不是也可以做个时间 ...
不过时间流速加快确实可以搞
哇靠啊 发表于 2022-11-7 23:02
猪脑过载了 容我消化消化,时间流速里 确实有个0.46的 改0就不在流动了……是不是也可以做个时间 ...
等你搞完mono,你可以顺便搞下改物品/装备ID,还挺简单的
随风的方向 发表于 2022-11-8 14:07
你咋是0.46,我这是0.15啊,我这找到的访问点是GameTime:Update+627
PS: 我编辑了一下之前mono的回答,详 ...
噢 可能是我调东西忘调回去了,确实是同一个模块地址。 我的问题。嗯我在研究研究dalao前面的lua脚本先
哇靠啊 发表于 2022-11-7 23:14
噢 可能是我调东西忘调回去了,确实是同一个模块地址。 我的问题。嗯我在研究研究dalao前面的lua脚本先 ...
行,对了你秒制作的脚本可以改到Progress:Update+58,把浮点寄存器的地址改到xmm3,那应该是调试用的倍率,可以直接秒完成,直接改字节还可以省个跳转。说到这以后改mono的话尽量在原地点改字节,这样基本不会降帧.
我先去鼓捣改炼尸的东西,现看看能不能搞个炼尸必成/必幸运100啥的
随风的方向 发表于 2022-11-8 14:20
行,对了你秒制作的脚本可以改到Progress:Update+58,把浮点寄存器的地址改到xmm3,那应该是调试用的倍率 ...
dalao加油{:3_121:}我还得消化消化这新加入的姿势
本帖最后由 哇靠啊 于 2022-11-9 00:03 编辑
随风的方向 发表于 2022-11-8 14:20
行,对了你秒制作的脚本可以改到Progress:Update+58,把浮点寄存器的地址改到xmm3,那应该是调试用的倍率 ...
{:3_123:}我可算弄到dalao说的这一步了,dalao宠物进阶这一块 弄的怎么样了
另外弱弱的问下DBVM是这样默认就可以了吗
装备id 方面已经解决了,宠物进第五阶会跳数据这个目前还没头绪{:3_126:}
哇靠啊 发表于 2022-11-8 06:39
我可算弄到dalao说的这一步了,dalao宠物进阶这一块 弄的怎么样了
另外弱弱的问下DBVM是这样默认 ...
你还要激活 DBVM supervisor,方法如下:
哇靠啊 发表于 2022-11-8 06:39
我可算弄到dalao说的这一步了,dalao宠物进阶这一块 弄的怎么样了
另外弱弱的问下DBVM是这样默认 ...
宠物经验地址是共用的,按Tab的访问地址是LSJinJie:GetOther+40b,你可以从这入手
哇靠啊 发表于 2022-11-8 06:39
我可算弄到dalao说的这一步了,dalao宠物进阶这一块 弄的怎么样了
另外弱弱的问下DBVM是这样默认 ...
Debugger的设置可以这么设(Stack Size 可以按自己电脑的机能自己自定义):
哇靠啊 发表于 2022-11-8 06:39
我可算弄到dalao说的这一步了,dalao宠物进阶这一块 弄的怎么样了
另外弱弱的问下DBVM是这样默认 ...
再告诉你个小技巧,在激活mono下,内存浏览器里选择与数据地址相关的代码,然后在dessect data里填入目标数据地址,然后定义新结构,这时候CE可以根据mono自动获取结构细节,不用一个个去试