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

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

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

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

игра  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

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

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

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

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