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

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

Всем привет

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

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

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

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

 

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

 

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

Изменено пользователем Xipho
Правила все же немного внимательнее почитай )

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


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

Тэкс с 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

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


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

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 и т.д. Кажется на ютуб канале форума что-то по поиску зашифрованных значений есть.

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

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


Ссылка на сообщение
Поделиться на другие сайты
15 часов назад, JIeXA сказал:

Где мой лайк

я бы и Женьке, и тебе однозначно лайку дал, если бы мог :( 

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


Ссылка на сообщение
Поделиться на другие сайты
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

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


Ссылка на сообщение
Поделиться на другие сайты
В 16.08.2020 в 23:03, Pitronic сказал:

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

Плоховато слышно но суть понять можно

 

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, JIeXA сказал:

суть понять можно

Суть понял, думаю что тоже на плюс тянет. Лови!

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


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

Тему можно закрыть.

Вопрос решён!

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


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, JIeXA сказал:

Тему можно закрыть.

Вопрос решён!

Спасибо, совсем забыл :)

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


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

Трейнми сдался

 

Изменено пользователем JIeXA

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


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, JIeXA сказал:

Трейнми сдался

А зачем это в данной теме?

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


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

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 эмодзи.

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

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

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

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

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

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

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