FENIX145 Опубликовано 19 июля, 2020 Поделиться Опубликовано 19 июля, 2020 (изменено) Всем привет Ребят, никто не ломал Banished? Супруга попросила сломать на возраст (чтобы старше 30 не росли) и что-то я на весь день залип. Может кто сталкивался? P.S: Ресурсы ломают очень просто, проблема только с возрастом. Экранное значение нахожу (так как реальное значение либо шифрованное, либо динамически высчитывается - что логичнее), по нему пытаюсь отследить что в него пишет, нахожу соответственно, а дальше там магия какая-то начинается. (7FF89C70B5F3 - 89 91 D8000000 - mov [rcx+000000D8],edx) но при этом нигде выше по коду нет edx и в списке регистров его тоже нет... Думал может где в коле(call) выше по коду определяется, но нет же зараза. Либо я слишком не далеко смотрел... В общем буду дальше разбираться, но может кто уже покурил эту тему.... P.P.S не утверждаю, что это магия, так как только начал разбираться с данной областью в кодинге и возможно я просто туп и все логично и просто, но все же, интересный кейс Искал на fairless на предмет готового решения, чтобы его покурить и разобраться в реализации и найти моменты, которые не понимаю, но нет, там есть один скрипт, но он не рабочий также... ну и логика в скрипте совсем банальная и простая... В общем если кто уже разбирался или есть возможность и время помочь, буду признателен. Всем добра Изменено 19 июля, 2020 пользователем Xipho Правила все же немного внимательнее почитай ) Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 13 августа, 2020 Автор Поделиться Опубликовано 13 августа, 2020 (изменено) Тэкс с edx и т.п. разобался и понял что такое младшие регистры и как там все работает. Но проблема осталась актуальной. Дальше поиска экранного значения не сдвинулся, трейс функций не помог докопаться откуда же заполняется rdx. Может как-то можно вызвать стек трейс, чтобы понять где именно дернулся мой метод? Изменено 13 августа, 2020 пользователем FENIX145 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 14 августа, 2020 Поделиться Опубликовано 14 августа, 2020 8 часов назад, FENIX145 сказал: Может как-то можно вызвать стек трейс, чтобы понять где именно дернулся мой метод? На днях на канале появится первый урок по IDA, возможно, он тебе поможет добраться до нужных значений ) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 14 августа, 2020 Поделиться Опубликовано 14 августа, 2020 В 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] } Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 14 августа, 2020 Автор Поделиться Опубликовано 14 августа, 2020 (изменено) 10 часов назад, LIRW сказал: Восстанови... Долго что ли... и он там не один! Женьк, а я не смог. Там скрипт обращается к ячейке памяти, которой по сути не существует. Т.е. я перехожу через ctr+g к нужному адресу, начинаю скролить и он хоп и пропал. Я даже не понимаю почему так происходит... Но да ладно, разберемся. @Xipho Руслан, спасибо, чекну в первых рядах, не зря ж спонсором стал ПыСы слишком громкое слово в данном контексте Изменено 14 августа, 2020 пользователем FENIX145 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 14 августа, 2020 Поделиться Опубликовано 14 августа, 2020 37 минут назад, FENIX145 сказал: Женьк, а я не смог. Так я тебе дал сигнатуру... А адрес то понятное дело пустой... он и ведет не туда куда над... игра то обновлялась 15 раз и адрес уехал, а сигнатура работает, она и покажет тебе эту функцию! Открой СЕ подключись к игре х64 которая... В СЕ выбери как на скрине и нажми скан... И перейди по адресу... Там и будет нужная тебе функция. Только игра х64 - посмотрим как работает функция и потом найдешь в х32 если конечно это имеет какую то разницу для тебя. F3 44 0F 58 80 80 00 00 00 Вот видео к примеру снял тебе. Спойлер У меня не чего не срабатывает при бряке, но я игру только начал и там поди не кто еще не растет я в такое не играю и не понимаю, что тут делать надо в игре! 1 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 августа, 2020 Поделиться Опубликовано 15 августа, 2020 (изменено) 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 } Изменено 15 августа, 2020 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 августа, 2020 Поделиться Опубликовано 15 августа, 2020 Переделал скрипт так что если житель достигает 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 } Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 15 августа, 2020 Автор Поделиться Опубликовано 15 августа, 2020 2 часа назад, JIeXA сказал: Возраст жителей хранится как float делённое на 5 Ага, я в дискорд скинул тоже кусок где видно эту махинацию....очень прикольно, весь мозг сломал пока пропарился... а вот не зная этого как найти?! Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 15 августа, 2020 Автор Поделиться Опубликовано 15 августа, 2020 Ребят, всем спасибо огромное за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 августа, 2020 Поделиться Опубликовано 15 августа, 2020 (изменено) 28 минут назад, FENIX145 сказал: Ребят, всем спасибо огромное за помощь. И как скрипт у Вас заработал??? Где мой лайк Изменено 15 августа, 2020 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
youneuoy Опубликовано 16 августа, 2020 Поделиться Опубликовано 16 августа, 2020 (изменено) 4 часа назад, FENIX145 сказал: а вот не зная этого как найти?! реверсить?Иногда встречаются всякие shl, and и т.д. Кажется на ютуб канале форума что-то по поиску зашифрованных значений есть. Изменено 16 августа, 2020 пользователем youneuoy Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 16 августа, 2020 Автор Поделиться Опубликовано 16 августа, 2020 15 часов назад, JIeXA сказал: Где мой лайк у меня ж нет возможности тебя лайкнуть А твой пример не пробовал, я еще вчера с утра написал свой. Женька же сигнатуру скинул и там дальше уже проще было. Но в любом случае спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 16 августа, 2020 Автор Поделиться Опубликовано 16 августа, 2020 11 часов назад, youneuoy сказал: реверсить?Иногда встречаются всякие shl, and и т.д. Кажется на ютуб канале форума что-то по поиску зашифрованных значений есть. да что-то я искал, но толком ничего не нашел. Хотя признаться не особо плотно занимался этим вопросом. Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 16 августа, 2020 Автор Поделиться Опубликовано 16 августа, 2020 15 часов назад, JIeXA сказал: Где мой лайк я бы и Женьке, и тебе однозначно лайку дал, если бы мог Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 16 августа, 2020 Поделиться Опубликовано 16 августа, 2020 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 } А на счет лайка уж не перетрудился думаю! Да и Руслан уже поставил. Если честно, я на него и не рассчитывал, так решил помочь. Да и таблица готовая на СЕ форуме есть, её подкорректировать (что не составит труда) и искать не чего не надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 16 августа, 2020 Автор Поделиться Опубликовано 16 августа, 2020 @LIRW @JIeXA так вот как раз было интересно не готовое использовать, а понять как вы нашли. Ну с Женькой то понятно, как он сигнатуру выцепил. Леш, а как ты это сделал? Через экранное значение как-то вышел на нужную конструкцию или сидел с unknown value делал постоянно increased. Но мне кажется это невозможно, так как значение всегда увеличивается и искать будешь пол года такое. Если не сложно расскажи, чтобы в след раз уже было понимание как подобное можно найти Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 16 августа, 2020 Поделиться Опубликовано 16 августа, 2020 (изменено) 22 часа назад, JIeXA сказал: Где мой лайк Даю плюс как аванс, только расскажи как ты это понял? Изменено 16 августа, 2020 пользователем Pitronic Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 17 августа, 2020 Поделиться Опубликовано 17 августа, 2020 В 16.08.2020 в 23:03, Pitronic сказал: Даю плюс как аванс, только расскажи как ты это понял? Плоховато слышно но суть понять можно Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 17 августа, 2020 Автор Поделиться Опубликовано 17 августа, 2020 @JIeXA вот за такое огромное спасибо, быстро ты конечно на функцию нужную вышел, но суть я понял. Я так же делал Break and trace, но для себя ничего нужного так и не нашел, опыта пока не хватает Ссылка на комментарий Поделиться на другие сайты Поделиться
Pitronic Опубликовано 18 августа, 2020 Поделиться Опубликовано 18 августа, 2020 5 часов назад, JIeXA сказал: суть понять можно Суть понял, думаю что тоже на плюс тянет. Лови! Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 19 августа, 2020 Поделиться Опубликовано 19 августа, 2020 Тему можно закрыть. Вопрос решён! Ссылка на комментарий Поделиться на другие сайты Поделиться
FENIX145 Опубликовано 19 августа, 2020 Автор Поделиться Опубликовано 19 августа, 2020 4 минуты назад, JIeXA сказал: Тему можно закрыть. Вопрос решён! Спасибо, совсем забыл Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 19 августа, 2020 Поделиться Опубликовано 19 августа, 2020 (изменено) Трейнми сдался Изменено 19 августа, 2020 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 20 августа, 2020 Поделиться Опубликовано 20 августа, 2020 7 часов назад, JIeXA сказал: Трейнми сдался А зачем это в данной теме? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения