我使用作弊引擎作为初学者进入反汇编和黑客攻击,我想知道如何修改使用movss [...],xmm#
?
具体来说,我在满意中修改健康。
坠落伤害会导致movss [rbx+00000164],xmm0
燃烧,xmm0
表示从坠落伤害中减去的生命值。
然后它发送xmm0
到rbx+000000164
.
这会导致健康下降。我希望它上升,或者根本不会失去/获得任何东西。
我试着看看扫描仪中是否有任何 xmm#s 与最大生命值 (100) 对齐,看看我是否可以在玩家每次受到伤害时发送他们的最大生命值(这很容易解决)
我正在关注教程https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Injection_full,但他们让它变得非常简单,只提到......
现在在这里做的最简单的事情,因为代码已经添加了只是使数字为正数。
那不是很通知,他们很幸运,他们的值只是一个可以设置为正数或负数,或者只是修改的数字。
我的不行。
所以最大的问题是,我能做些什么来修改或改变它吗?我需要让这更简单。
顺便说一句,这是我用来实际“破解”健康状况的脚本。它现在所做的只是默认的 xmm0 发送,基本上它什么都不做。
{ Game : FactoryGame-Win64-Shipping.exe
Version:
Date : 2020-03-15
Author : taylo
This script does blah blah blah
}
define(address,"FactoryGame-Win64-Shipping.exe"+90E3AA)
define(bytes,F3 0F 11 83 64 01 00 00)
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
assert(address,bytes)
alloc(newmem,$1000,"FactoryGame-Win64-Shipping.exe"+90E3AA)
label(code)
label(return)
newmem:
code:
movss [rbx+00000164],xmm0
jmp return
address:
jmp newmem
nop 3
return:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
address:
db bytes
// movss [rbx+00000164],xmm0
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "FactoryGame-Win64-Shipping.exe"+90E3AA
"FactoryGame-Win64-Shipping.exe"+90E376: 49 89 6B B0 - mov [r11-50],rbp
"FactoryGame-Win64-Shipping.exe"+90E37A: 4D 89 73 A8 - mov [r11-58],r14
"FactoryGame-Win64-Shipping.exe"+90E37E: E8 BD D5 FB FF - call FactoryGame-Win64-Shipping.exe+8CB940
"FactoryGame-Win64-Shipping.exe"+90E383: 0F 28 C8 - movaps xmm1,xmm0
"FactoryGame-Win64-Shipping.exe"+90E386: 0F 2F 0D 53 B9 64 02 - comiss xmm1,[FactoryGame-Win64-Shipping.exe+2F59CE0]
"FactoryGame-Win64-Shipping.exe"+90E38D: 0F 82 B9 00 00 00 - jb FactoryGame-Win64-Shipping.exe+90E44C
"FactoryGame-Win64-Shipping.exe"+90E393: F3 0F 10 83 64 01 00 00 - movss xmm0,[rbx+00000164]
"FactoryGame-Win64-Shipping.exe"+90E39B: F3 0F 5F CE - maxss xmm1,xmm6
"FactoryGame-Win64-Shipping.exe"+90E39F: 0F B6 83 6C 01 00 00 - movzx eax,byte ptr [rbx+0000016C]
"FactoryGame-Win64-Shipping.exe"+90E3A6: F3 0F 5C C1 - subss xmm0,xmm1
// ---------- INJECTING HERE ----------
"FactoryGame-Win64-Shipping.exe"+90E3AA: F3 0F 11 83 64 01 00 00 - movss [rbx+00000164],xmm0
// ---------- DONE INJECTING ----------
"FactoryGame-Win64-Shipping.exe"+90E3B2: A8 01 - test al,01
"FactoryGame-Win64-Shipping.exe"+90E3B4: 75 4C - jne FactoryGame-Win64-Shipping.exe+90E402
"FactoryGame-Win64-Shipping.exe"+90E3B6: A8 02 - test al,02
"FactoryGame-Win64-Shipping.exe"+90E3B8: 74 1D - je FactoryGame-Win64-Shipping.exe+90E3D7
"FactoryGame-Win64-Shipping.exe"+90E3BA: 48 89 6C 24 28 - mov [rsp+28],rbp
"FactoryGame-Win64-Shipping.exe"+90E3BF: 4C 8B CF - mov r9,rdi
"FactoryGame-Win64-Shipping.exe"+90E3C2: 0F 28 D1 - movaps xmm2,xmm1
"FactoryGame-Win64-Shipping.exe"+90E3C5: 4C 89 74 24 20 - mov [rsp+20],r14
"FactoryGame-Win64-Shipping.exe"+90E3CA: 48 8B D6 - mov rdx,rsi
"FactoryGame-Win64-Shipping.exe"+90E3CD: 48 8B CB - mov rcx,rbx
}