@garik66, оо, попытаюсь сделать,спасибо большое.
Сообщения
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
@garik66 ,спасибо, это работает. Благодарен, вообще хотелось как писал, но думаю что так не получится, а так большое спасибо !
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
@garik66 ,хорошо , чуть позже проверю
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
@garik66, он получается не меняет значение. То есть если добавить адрес в таблицу, то значение остается неизменным. Просто не совсем понимаю, почему просто нельзя в автоассемблере записать при выключении скрипта значение, или это делается через флаги ?
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
@garik66 ,это включает пол функции в игре. То есть вообще функция открывает все рецепты и бесплатный крафт, тут же не появляются все рецепты и крафт тоже не работает . С первым скриптом такая же ситуация (
-
RE: Как при отключении скрипта вернуть или (записать) в адрес значение ?
@garik66, в общем не сработало. В основном мне надо,чтобы при выключении скрипта значение в адресе было 0. Так-как тип функции это boolean, поэтому при включении должно быть 1, а при выключении 0. Буду благодарен, если поможешь мне.
Как и просили с логами вроде.
define(address,Player:UpdatePlacement+b23)
define(bytes,0F B6 87 90 07 00 00)[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Player:UpdatePlacement+b23)label(code)
label(return)newmem:
mov [rdi+00000790],#1code:
movzx eax,byte ptr [rdi+00000790]
jmp returnaddress:
jmp newmem
nop 2
return:[DISABLE]
address:
db bytes
// movzx eax,byte ptr [rdi+00000790]dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Player:UpdatePlacement+b23Player:UpdatePlacement+aee: 49 BB 5C 35 61 23 DA 02 00 00 - mov r11,000002DA2361355C
Player:UpdatePlacement+af8: 41 FF D3 - call r11
Player:UpdatePlacement+afb: E9 33 03 00 00 - jmp Player:UpdatePlacement+e33
Player:UpdatePlacement+b00: 48 8B 8F 38 06 00 00 - mov rcx,[rdi+00000638]
Player:UpdatePlacement+b07: 33 D2 - xor edx,edx
Player:UpdatePlacement+b09: 48 8D 64 24 00 - lea rsp,[rsp+00]
Player:UpdatePlacement+b0e: 49 BB 10 07 AE 93 DB 02 00 00 - mov r11,UnityEngine.Object:op_Inequality
Player:UpdatePlacement+b18: 41 FF D3 - call r11
Player:UpdatePlacement+b1b: 85 C0 - test eax,eax
Player:UpdatePlacement+b1d: 0F 84 10 03 00 00 - je Player:UpdatePlacement+e33
// ---------- INJECTING HERE ----------
Player:UpdatePlacement+b23: 0F B6 87 90 07 00 00 - movzx eax,byte ptr [rdi+00000790]
// ---------- DONE INJECTING ----------
Player:UpdatePlacement+b2a: 85 C0 - test eax,eax
Player:UpdatePlacement+b2c: 75 25 - jne Player:UpdatePlacement+b53
Player:UpdatePlacement+b2e: 48 8B CF - mov rcx,rdi
Player:UpdatePlacement+b31: 48 8B 95 C8 FE FF FF - mov rdx,[rbp-00000138]
Player:UpdatePlacement+b38: 45 33 C0 - xor r8d,r8d
Player:UpdatePlacement+b3b: 66 66 90 - nop 3
Player:UpdatePlacement+b3e: 49 BB 50 41 1B 25 DA 02 00 00 - mov r11,Player:HaveRequirements
Player:UpdatePlacement+b48: 41 FF D3 - call r11
Player:UpdatePlacement+b4b: 85 C0 - test eax,eax
Player:UpdatePlacement+b4d: 0F 84 95 02 00 00 - je Player:UpdatePlacement+de8
} -
Как при отключении скрипта вернуть или (записать) в адрес значение ?
Есть скрипт, туда я записываю значение, но после отключение он его не восстанавливает. А мне как раз таки это нужно.
Буду благодарен, кто покажет хотя бы пример .Вот сам скрипт :
[ENABLE]
alloc(newmem,2048,Player:UpdatePlacement+b23)
label(returnhere)
label(originalcode)
label(exit)newmem:
mov [rdi+00000790] ,#1originalcode:
movzx eax,byte ptr [rdi+00000790]exit:
jmp returnherePlayer:UpdatePlacement+b23:
jmp newmem
nop 2
returnhere:[DISABLE]
dealloc(newmem)
Player:UpdatePlacement+b23:
db 0F B6 87 90 07 00 00