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

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

Всем привет

Ребят, никто не ломал Banished? Супруга попросила сломать на возраст (чтобы старше 30 не росли) и что-то я на весь день залип. Может кто сталкивался?

P.S: Ресурсы ломают очень просто, проблема только с возрастом. Экранное значение нахожу (так как реальное значение либо шифрованное, либо динамически высчитывается - что логичнее), по нему пытаюсь отследить что в него пишет, нахожу соответственно, а дальше там магия какая-то начинается. (7FF89C70B5F3 - 89 91 D8000000  - mov [rcx+000000D8],edx) но при этом нигде выше по коду нет edx и в списке регистров его тоже нет...

Думал может где в коле(call) выше по коду определяется, но нет же зараза. Либо я слишком не далеко смотрел...

В общем буду дальше разбираться, но может кто уже покурил эту тему....

 

P.P.S не утверждаю, что это магия, так как только начал разбираться с данной областью в кодинге и возможно я просто туп и все логично и просто, но все же, интересный кейс Искал на fairless на предмет готового решения, чтобы его покурить и разобраться в реализации и найти моменты, которые не понимаю, но нет, там есть один скрипт, но он не рабочий также... ну и логика в скрипте совсем банальная и простая...

 

В общем если кто уже разбирался или есть возможность и время помочь, буду признателен. Всем добра :)

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

  • 4 недели спустя...

Тэкс с edx и т.п. разобался и понял что такое младшие регистры и как там все работает. Но проблема осталась актуальной. Дальше поиска экранного значения не сдвинулся, трейс функций не помог докопаться откуда же заполняется rdx. Может как-то можно вызвать стек трейс, чтобы понять где именно дернулся мой метод?

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

8 часов назад, FENIX145 сказал:

Может как-то можно вызвать стек трейс, чтобы понять где именно дернулся мой метод?

На днях на канале появится первый урок по IDA, возможно, он тебе поможет добраться до нужных значений ) 

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

В 19.07.2020 в 19:37, FENIX145 сказал:

там есть один скрипт, но он не рабочий также

Восстанови... Долго что ли...  и он там не один!

На худой конец... 

F3 * * * * * * * * FF * * * * * 48 * * * 48 * * * * * * 8B * * * * * 39 * * * * * 7C

и листинг, которого там нет... Явно таблицу делал китаец! Одноразово как то всё!

Спойлер

{
// ORIGINAL CODE - INJECTION POINT: "Application-steam-x64.exe"+8FCF4

"Application-steam-x64.exe"+8FCCB: EB 02                       -  jmp Application-steam-x64.exe+8FCCF
"Application-steam-x64.exe"+8FCCD: FF C6                       -  inc esi
"Application-steam-x64.exe"+8FCCF: 48 8D 4D 6F                 -  lea rcx,[rbp+6F]
"Application-steam-x64.exe"+8FCD3: FF 15 C7 8E 0C 00           -  call qword ptr [Application-steam-x64.exe+158BA0]
"Application-steam-x64.exe"+8FCD9: 48 8B 45 6F                 -  mov rax,[rbp+6F]
"Application-steam-x64.exe"+8FCDD: 48 8D 4D 6F                 -  lea rcx,[rbp+6F]
"Application-steam-x64.exe"+8FCE1: F3 0F 58 78 50              -  addss xmm7,[rax+50]
"Application-steam-x64.exe"+8FCE6: FF 15 B4 8E 0C 00           -  call qword ptr [Application-steam-x64.exe+158BA0]
"Application-steam-x64.exe"+8FCEC: 48 8B 45 6F                 -  mov rax,[rbp+6F]
"Application-steam-x64.exe"+8FCF0: 48 8D 4D 6F                 -  lea rcx,[rbp+6F]
// ---------- INJECTING HERE ----------
"Application-steam-x64.exe"+8FCF4: F3 44 0F 58 80 80 00 00 00  -  addss xmm8,[rax+00000080]
// ---------- DONE INJECTING  ----------
"Application-steam-x64.exe"+8FCFD: FF 15 9D 8E 0C 00           -  call qword ptr [Application-steam-x64.exe+158BA0]
"Application-steam-x64.exe"+8FD03: 48 8B 45 6F                 -  mov rax,[rbp+6F]
"Application-steam-x64.exe"+8FD07: 48 8B 88 88 02 00 00        -  mov rcx,[rax+00000288]
"Application-steam-x64.exe"+8FD0E: 8B 91 18 01 00 00           -  mov edx,[rcx+00000118]
"Application-steam-x64.exe"+8FD14: 39 90 10 02 00 00           -  cmp [rax+00000210],edx
"Application-steam-x64.exe"+8FD1A: 7C 2D                       -  jl Application-steam-x64.exe+8FD49
"Application-steam-x64.exe"+8FD1C: 48 8D 4D 6F                 -  lea rcx,[rbp+6F]
"Application-steam-x64.exe"+8FD20: FF 15 7A 8E 0C 00           -  call qword ptr [Application-steam-x64.exe+158BA0]
"Application-steam-x64.exe"+8FD26: 48 8B 45 6F                 -  mov rax,[rbp+6F]
"Application-steam-x64.exe"+8FD2A: 48 8B 88 88 02 00 00        -  mov rcx,[rax+00000288]
}

 

 

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

10 часов назад, LIRW сказал:

Восстанови... Долго что ли...  и он там не один!

Женьк, а я не смог. Там скрипт обращается к ячейке памяти, которой по сути не существует. Т.е. я перехожу через ctr+g к нужному адресу, начинаю скролить и он хоп и пропал. Я даже не понимаю почему так происходит... Но да ладно, разберемся. @Xipho Руслан, спасибо, чекну в первых рядах, не зря ж спонсором стал :) ПыСы слишком громкое слово в данном контексте :)

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

37 минут назад, FENIX145 сказал:

Женьк, а я не смог.

Так я тебе дал сигнатуру... А адрес то понятное дело пустой... он и ведет не туда куда над... игра то обновлялась 15 раз и адрес уехал, а сигнатура работает, она и покажет тебе эту функцию!

Открой СЕ подключись к игре х64 которая... В СЕ выбери как на скрине и нажми скан... И перейди по адресу... Там и будет нужная тебе функция. Только игра х64 - посмотрим как работает функция и потом найдешь в х32 если конечно это имеет какую то разницу для тебя. 

F3 44 0F 58 80 80 00 00 00

Вот видео к примеру снял тебе.

Спойлер

 

У меня не чего не срабатывает при бряке, но я игру только начал и там поди не кто еще не растет :) я в такое не играю и не понимаю, что тут делать надо в игре!

166666.jpg

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

Application-x64.exe

Версия 1.07 ru (пиратка)

Оказалось очень даже интересно

Возраст жителей хранится как видимое значение  делённое на 5 (тип float)

То-есть если жителю 18 лет то 18 делим на 5 и получаем 3.6

Ищем как 4 байта с точкой. Диапазон от 3.4 до 3.8

Собственно скрипт для моей версии

Спойлер

[ENABLE]
aobscanmodule(Age,Application-x64.exe,f3xxxxxxxx0f2fxxxx72xx48xxxxxxxxxxxxxx75xxb1)
alloc(newmem,$1000,"Application-x64.exe"+112EC5)
label(return)
registersymbol(Age)

newmem:
  mov [rdi+3C],(float)3.6
  movss xmm1,[rdi+3C]
  jmp return

Age:
  jmp newmem
return:

[DISABLE]
Age:
db F3 0F 10 4F 3C
unregistersymbol(Age)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Application-x64.exe"+112EC5

"Application-x64.exe"+112E94: 0F 29 78 A8              -  movaps [rax-58],xmm7
"Application-x64.exe"+112E98: 44 0F 29 40 98           -  movaps [rax-68],xmm8
"Application-x64.exe"+112E9D: 48 8B F2                 -  mov rsi,rdx
"Application-x64.exe"+112EA0: 48 8B F9                 -  mov rdi,rcx
"Application-x64.exe"+112EA3: 48 8B 1D 2E 0F 0B 00     -  mov rbx,[Application-x64.exe+1C3DD8]
"Application-x64.exe"+112EAA: 4C 8B B3 30 01 00 00     -  mov r14,[rbx+00000130]
"Application-x64.exe"+112EB1: 48 8B CA                 -  mov rcx,rdx
"Application-x64.exe"+112EB4: FF 15 5E E4 03 00        -  call qword ptr [Application-x64.exe+151318]
"Application-x64.exe"+112EBA: 44 0F 28 C0              -  movaps xmm8,xmm0
"Application-x64.exe"+112EBE: 48 8B 87 88 02 00 00     -  mov rax,[rdi+00000288]
// ---------- INJECTING HERE ----------
"Application-x64.exe"+112EC5: F3 0F 10 4F 3C           -  movss xmm1,[rdi+3C]
// ---------- DONE INJECTING  ----------
"Application-x64.exe"+112ECA: 0F 2F 48 44              -  comiss xmm1,[rax+44]
"Application-x64.exe"+112ECE: 72 0E                    -  jb Application-x64.exe+112EDE
"Application-x64.exe"+112ED0: 48 83 BF 08 02 00 00 00  -  cmp qword ptr [rdi+00000208],00
"Application-x64.exe"+112ED8: 75 04                    -  jne Application-x64.exe+112EDE
"Application-x64.exe"+112EDA: B1 01                    -  mov cl,01
"Application-x64.exe"+112EDC: EB 02                    -  jmp Application-x64.exe+112EE0
"Application-x64.exe"+112EDE: 32 C9                    -  xor cl,cl
"Application-x64.exe"+112EE0: 41 0F 28 C0              -  movaps xmm0,xmm8
"Application-x64.exe"+112EE4: F3 0F 59 40 40           -  mulss xmm0,[rax+40]
"Application-x64.exe"+112EE9: F3 0F 58 C1              -  addss xmm0,xmm1
}

 

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

Переделал скрипт так что если житель достигает 30 лет то его возраст скидывается на 18 лет

Спойлер

[ENABLE]
aobscanmodule(Age,Application-x64.exe,f3xxxxxxxx0f2fxxxx72xx48xxxxxxxxxxxxxx75xxb1)
alloc(newmem,$1000,"Application-x64.exe"+112EC5)
label(return)
label(code)
registersymbol(Age)

newmem:
  cmp [rdi+3C],(float)6
  jle short code
  mov [rdi+3C],(float)3.6
code:
  movss xmm1,[rdi+3C]
  jmp return

Age:
  jmp newmem
return:

[DISABLE]
Age:
db F3 0F 10 4F 3C
unregistersymbol(Age)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Application-x64.exe"+112EC5

"Application-x64.exe"+112E94: 0F 29 78 A8              -  movaps [rax-58],xmm7
"Application-x64.exe"+112E98: 44 0F 29 40 98           -  movaps [rax-68],xmm8
"Application-x64.exe"+112E9D: 48 8B F2                 -  mov rsi,rdx
"Application-x64.exe"+112EA0: 48 8B F9                 -  mov rdi,rcx
"Application-x64.exe"+112EA3: 48 8B 1D 2E 0F 0B 00     -  mov rbx,[Application-x64.exe+1C3DD8]
"Application-x64.exe"+112EAA: 4C 8B B3 30 01 00 00     -  mov r14,[rbx+00000130]
"Application-x64.exe"+112EB1: 48 8B CA                 -  mov rcx,rdx
"Application-x64.exe"+112EB4: FF 15 5E E4 03 00        -  call qword ptr [Application-x64.exe+151318]
"Application-x64.exe"+112EBA: 44 0F 28 C0              -  movaps xmm8,xmm0
"Application-x64.exe"+112EBE: 48 8B 87 88 02 00 00     -  mov rax,[rdi+00000288]
// ---------- INJECTING HERE ----------
"Application-x64.exe"+112EC5: F3 0F 10 4F 3C           -  movss xmm1,[rdi+3C]
// ---------- DONE INJECTING  ----------
"Application-x64.exe"+112ECA: 0F 2F 48 44              -  comiss xmm1,[rax+44]
"Application-x64.exe"+112ECE: 72 0E                    -  jb Application-x64.exe+112EDE
"Application-x64.exe"+112ED0: 48 83 BF 08 02 00 00 00  -  cmp qword ptr [rdi+00000208],00
"Application-x64.exe"+112ED8: 75 04                    -  jne Application-x64.exe+112EDE
"Application-x64.exe"+112EDA: B1 01                    -  mov cl,01
"Application-x64.exe"+112EDC: EB 02                    -  jmp Application-x64.exe+112EE0
"Application-x64.exe"+112EDE: 32 C9                    -  xor cl,cl
"Application-x64.exe"+112EE0: 41 0F 28 C0              -  movaps xmm0,xmm8
"Application-x64.exe"+112EE4: F3 0F 59 40 40           -  mulss xmm0,[rax+40]
"Application-x64.exe"+112EE9: F3 0F 58 C1              -  addss xmm0,xmm1
}

 

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

2 часа назад, JIeXA сказал:

Возраст жителей хранится как float делённое на 5

Ага, я в дискорд скинул тоже кусок где видно эту махинацию....очень прикольно, весь мозг сломал пока пропарился... а вот не зная этого как найти?! 

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

28 минут назад, FENIX145 сказал:

Ребят, всем спасибо огромное за помощь. 

И как скрипт у Вас заработал???

Где мой лайк

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

4 часа назад, FENIX145 сказал:

а вот не зная этого как найти?! 

реверсить?Иногда встречаются всякие shl, and и т.д. Кажется на ютуб канале форума что-то по поиску зашифрованных значений есть.

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

15 часов назад, JIeXA сказал:

Где мой лайк

у меня ж нет возможности тебя лайкнуть :( А твой пример не пробовал, я еще вчера с утра написал свой. Женька же сигнатуру скинул и там дальше уже проще было. Но в любом случае спасибо

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

11 часов назад, youneuoy сказал:

реверсить?Иногда встречаются всякие shl, and и т.д. Кажется на ютуб канале форума что-то по поиску зашифрованных значений есть.

да что-то я искал, но толком ничего не нашел. Хотя признаться не особо плотно занимался этим вопросом.

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

3 часа назад, FENIX145 сказал:

я бы и Женьке

Тогда уж лучше так накатить...

Спойлер

[ENABLE]
aobscanmodule(_years_,Application-steam-x64.exe,F3 0F 58 C1 F3 0F 11 47 * 48 8B 06)
alloc(_years_mem,$1000,_years_)
 label(_exit_years_)
 label(_years_back_)
 label(_write_years_)
 label(_player_years_)
_years_mem:
 addss xmm0,xmm1
 comiss xmm0,[_player_years_]
 ja _unlimited_years_
 jmp _exit_years_
_unlimited_years_:
 movss xmm0,[_write_years_]
_exit_years_:
 readmem(_years_+4,5)
 jmp _years_back_
_player_years_:
 dd (float)6
_write_years_:
 dd (float)3.6
_years_:
 jmp _years_mem
 db 90 90 90 90
_years_back_:
 registersymbol(_years_)
 registersymbol(_exit_years_)
[DISABLE]
_years_:
 db F3 0F 58 C1
 readmem(_exit_years_,5)
 unregistersymbol(_years_)
 unregistersymbol(_exit_years_)
 dealloc(_years_mem)

{
// ORIGINAL CODE - INJECTION POINT: "Application-steam-x64.exe"+1183BD

"Application-steam-x64.exe"+11839A: 0F 2F 48 44              -  comiss xmm1,[rax+44]
"Application-steam-x64.exe"+11839E: 74 0E                    -  je Application-steam-x64.exe+1183AE
"Application-steam-x64.exe"+1183A0: 48 83 BF 08 02 00 00 00  -  cmp qword ptr [rdi+00000208],00
"Application-steam-x64.exe"+1183A8: 75 04                    -  jne Application-steam-x64.exe+1183AE
"Application-steam-x64.exe"+1183AA: B1 01                    -  mov cl,01
"Application-steam-x64.exe"+1183AC: EB 02                    -  jmp Application-steam-x64.exe+1183B0
"Application-steam-x64.exe"+1183AE: 32 C9                    -  xor cl,cl
"Application-steam-x64.exe"+1183B0: 41 0F 28 C0              -  movaps xmm0,xmm8
"Application-steam-x64.exe"+1183B4: F3 0F 59 40 40           -  mulss xmm0,[rax+40]
"Application-steam-x64.exe"+1183B9: F3 0F 58 C1              -  addss xmm0,xmm1    <---//

на худой конец -> F3 * * * F3 * * * * 48 * * 48 - module Application-steam-x64.exe

// ---------- INJECTING HERE ----------
"Application-steam-x64.exe"+1183BD: F3 0F 11 47 3C           -  movss [rdi+3C],xmm0
// ---------- DONE INJECTING  ----------
"Application-steam-x64.exe"+1183C2: 48 8B 06                 -  mov rax,[rsi]
"Application-steam-x64.exe"+1183C5: 48 01 47 58              -  add [rdi+58],rax
"Application-steam-x64.exe"+1183C9: 48 8B 06                 -  mov rax,[rsi]
"Application-steam-x64.exe"+1183CC: 48 01 87 90 00 00 00     -  add [rdi+00000090],rax
"Application-steam-x64.exe"+1183D3: 48 8B 06                 -  mov rax,[rsi]
"Application-steam-x64.exe"+1183D6: 48 29 87 E8 01 00 00     -  sub [rdi+000001E8],rax
"Application-steam-x64.exe"+1183DD: 48 83 BF 08 02 00 00 00  -  cmp qword ptr [rdi+00000208],00
"Application-steam-x64.exe"+1183E5: 74 0A                    -  je Application-steam-x64.exe+1183F1
"Application-steam-x64.exe"+1183E7: 48 8B 06                 -  mov rax,[rsi]
"Application-steam-x64.exe"+1183EA: 48 01 87 18 02 00 00     -  add [rdi+00000218],rax
}

 

А на счет лайка :rolleyes: уж не перетрудился думаю! Да и Руслан уже поставил.  Если честно, я на него и не рассчитывал, так решил помочь.  Да и таблица готовая на СЕ форуме есть, её подкорректировать (что не составит труда) и искать не чего не надо. 

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

@LIRW @JIeXA так вот как раз было интересно не готовое использовать, а понять как вы нашли. Ну с Женькой то понятно, как он сигнатуру выцепил. Леш, а как ты это сделал? Через экранное значение как-то вышел на нужную конструкцию или сидел с unknown value делал постоянно increased. Но мне кажется это невозможно, так как значение всегда увеличивается и искать будешь пол года такое.  Если не сложно расскажи, чтобы в след раз уже было понимание как подобное можно найти

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

22 часа назад, JIeXA сказал:

Где мой лайк

Даю плюс как аванс, только расскажи как ты это понял?

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

@JIeXA вот за такое огромное спасибо, быстро ты конечно на функцию нужную вышел, но суть я понял. Я так же делал Break and trace, но для себя ничего нужного так и не нашел, опыта пока не хватает :( 

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

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

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

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