Перейти к содержанию

однократная запись адреса в регистр


Рекомендуемые сообщения

Доброго времени форумчане,, необходим шаблон для читов которые требуют именно такого подхода, у меня в игре их много,

игра  Saints Row IV  Game of the Century Edition репак by.xatab. скидываю скрипт задачи там прописаны в комментариях

Спойлер

// это не чит, это для шаблона, в разных читах, в игре много читов который требует именно этот подход
[ENABLE]
aobscan(_test_,0F 2F 86 20 1E 00 00 0F 82 21)
alloc(newmem_test_,$1000)

label(code_test_)
label(return_test_)
label(_flag_test_)

registersymbol(_test_)
registersymbol(_flag_test_)

newmem_test_:
push eax
cmp [esi+04],0 // это фильтр я написал от балды, потому что в разных читах он  тоже разумется разный
jne code_test_
// здесь дописать такой скрипт в регистр mov eax,[esi+00001E20] но аднократно (один раз чтоб регистр eax после записи значения адреса не менялся)

cmp eax,[esi+00001E20]
je code_test_
cmp byte ptr [_flag_test_],0
je code_test_
add [esi+00001E20],0 // этот код тоже от балды и тоже в разных читах он разныйй где то mov, где то sub и т.д
pop eax
code_test_:
comiss xmm0,[esi+00001E20]
jmp return_test_
_flag_test_:
db 0 // это флаг включеня
_test_:
jmp newmem_test_
nop 2
return_test_:


[DISABLE]

_test_:
comiss xmm0,[esi+00001E20]

unregistersymbol(_test_)
unregistersymbol(_flag_test_)

dealloc(newmem_test_)

{
// ORIGINAL CODE - INJECTION POINT: "Saints Row IV.exe"+6B29A2

"Saints Row IV.exe"+6B297F: F3 0F 10 86 68 15 00 00  -  movss xmm0,[esi+00001568]
"Saints Row IV.exe"+6B2987: 0F 2E 05 78 4A 62 01     -  ucomiss xmm0,["Saints Row IV.exe"+1224A78]
"Saints Row IV.exe"+6B298E: 9F                       -  lahf 
"Saints Row IV.exe"+6B298F: F6 C4 44                 -  test ah,44
"Saints Row IV.exe"+6B2992: 7B 0B                    -  jnp "Saints Row IV.exe"+6B299F
"Saints Row IV.exe"+6B2994: 6A 00                    -  push 00
"Saints Row IV.exe"+6B2996: 56                       -  push esi
"Saints Row IV.exe"+6B2997: E8 04 CD 02 00           -  call "Saints Row IV.exe"+6DF6A0
"Saints Row IV.exe"+6B299C: 83 C4 08                 -  add esp,08
"Saints Row IV.exe"+6B299F: 0F 57 C0                 -  xorps xmm0,xmm0
// ---------- INJECTING HERE ----------
"Saints Row IV.exe"+6B29A2: 0F 2F 86 20 1E 00 00     -  comiss xmm0,[esi+00001E20]
// ---------- DONE INJECTING  ----------
"Saints Row IV.exe"+6B29A9: 0F 82 21 01 00 00        -  jb "Saints Row IV.exe"+6B2AD0
"Saints Row IV.exe"+6B29AF: 56                       -  push esi
"Saints Row IV.exe"+6B29B0: E8 6B 39 03 00           -  call "Saints Row IV.exe"+6E6320
"Saints Row IV.exe"+6B29B5: 83 C4 04                 -  add esp,04
"Saints Row IV.exe"+6B29B8: 84 C0                    -  test al,al
"Saints Row IV.exe"+6B29BA: 0F 85 10 01 00 00        -  jne "Saints Row IV.exe"+6B2AD0
"Saints Row IV.exe"+6B29C0: 56                       -  push esi
"Saints Row IV.exe"+6B29C1: E8 2A C8 02 00           -  call "Saints Row IV.exe"+6DF1F0
"Saints Row IV.exe"+6B29C6: 83 C4 04                 -  add esp,04
"Saints Row IV.exe"+6B29C9: 84 C0                    -  test al,al
}

 

Извините что не тот синтаксист но поче муто от се там не было вот скриншёт

Спойлер

2020-08-26_081130.png

Благодарю заранее всех кто подскажет.

Изменено пользователем Pitronic
Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, Pitronic сказал:

pop eax

Это отвал игры. Он не зависимо от условий должен быть скинут. 

 

24 минуты назад, Pitronic сказал:

// здесь дописать такой скрипт в регистр mov eax,[esi+00001E20] но аднократно (один раз чтоб не менялся)

Такой - это какой ? я что то не совсем понимаю вопроса...  Тут явно переводчик нужен СЕРВИК. а он пропал!

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, LIRW сказал:

я что то не совсем понимаю вопроса

ну я же написал понятно вроде в регистр eax записать адрес ,[esi+00001E20]  однократно чтоб то значение больше не менялось потому что ниже идёт сравнение eax с этим же адресом,  допустим надо записать максимальное значение адреса а его в структуре нет. а потом сравнить максимальное значение с фактическим.

Изменено пользователем Pitronic
Ссылка на комментарий
Поделиться на другие сайты

15 минут назад, LIRW сказал:

Это отвал игры

Это почему? выше же есть 

newmem_test_:
push eax и в логах его вроде нет
Изменено пользователем Pitronic
Ссылка на комментарий
Поделиться на другие сайты

59 минут назад, Xipho сказал:

Посмотри урок "Флаги и однократное выполнение".

я про это тоже думал, только ситуация такая адреса могут обновляться и я не могу знать когда надо использовать этот флаг, значит надо как то сделать чтоб подобное автоматом было. А это урок я смотрел.

Изменено пользователем Pitronic
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.