初级玩家

- 贡献度
- 6
- 金元
- 341
- 积分
- 58
- 精华
- 0
- 注册时间
- 2023-2-15
|
个人修改的源代码[ENABLE]
aobscanmodule(AOB_DamageControl,MechWarrior-Win64-Shipping.exe,F3 0F 11 02 0F 2E F1)
aobscanmodule(AOB_DamageControl2,MechWarrior-Win64-Shipping.exe,F3 0F 11 83 B4 00 00 00 F3 44)
alloc(newmem,0x400,AOB_DamageControl)
label(noDamageToMechs2 noDamageToMechs damageReturn noDamage_fix doDamage doDamage2 noDamage2_fix damageReturn2)
registersymbol(save_rdx save_rbx save_rbx1) // 增加 save_rbx1
label(save_rdx save_rbx save_rbx1)
newmem:
// 路径 2:写入 [rbx+0xB4](已有保护)
noDamageToMechs2:
mov [save_rbx],rbx
cmp [pSlot1],rax
je noDamage2_fix
cmp [pSlot2],rax
je noDamage2_fix
cmp [pSlot3],rax
je noDamage2_fix
cmp [pSlot4],rax
je noDamage2_fix
doDamage2:
mov rbx,[save_rbx]
movss [rbx+000000B4],xmm0
jmp damageReturn2
noDamage2_fix:
jmp damageReturn2
// 路径 1:写入 [rdx](新增冗余 rbx 保护)
noDamageToMechs:
mov [save_rdx],rdx
mov [save_rbx1],rbx // ★ 显式保护 rbx,即使没用到
cmp [pSlot1],rax
je noDamage_fix
cmp [pSlot2],rax
je noDamage_fix
cmp [pSlot3],rax
je noDamage_fix
cmp [pSlot4],rax
je noDamage_fix
doDamage:
mov rdx,[save_rdx]
mov rbx,[save_rbx1] // ★ 恢复 rbx
movss [rdx],xmm0
ucomiss xmm6,xmm1
jmp damageReturn
noDamage_fix:
mov rbx,[save_rbx1] // ★ 即使无敌也要恢复
ucomiss xmm6,xmm1
jmp damageReturn
// 变量
save_rdx:
dq 0
save_rbx:
dq 0
save_rbx1: // 新增
dq 0
AOB_DamageControl:
jmp noDamageToMechs
nop 2
damageReturn:
registersymbol(AOB_DamageControl)
AOB_DamageControl2:
jmp newmem
nop 3
damageReturn2:
registersymbol(AOB_DamageControl2)
[DISABLE]
AOB_DamageControl:
db F3 0F 11 02 0F 2E F1
AOB_DamageControl2:
db F3 0F 11 83 B4 00 00 00
unregistersymbol(*)
dealloc(*)
替换no damage ...的script部分(双击script,并替换掉打开的窗口内的代码) |
|