kenshin Опубликовано 10 ноября, 2020 Поделиться Опубликовано 10 ноября, 2020 Доброго времени суток! Использовался Cheat Engine 7.2 Ситуация такая: Нашел адрес который отвечает за нужный мне параметр, хранится он в float. Выполнил поиск инструкций, выбрал ту, к который меньше всего обращений. Выполненные действия в картинках: Спойлер Попробовал вписать код через автоассамблер: Спойлер Код сработал, после удара по мне линейка полностью восполнилась и получил бесконечные супер удары. Проблема проявилась сразу, дошёл до первого ограждения и не смог его разбить, как я понял инструкция обращается не только к одному адресу. Подозреваю, что по мере прохождения будет задействовано больше адресов, что приведет к не обратимым последствиям. Вопрос заключается именно в том, как исключить все остальные адреса и оставить только то, что нужно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 10 ноября, 2020 Поделиться Опубликовано 10 ноября, 2020 19 минут назад, kenshin сказал: как исключить все остальные адреса фильтр Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 10 ноября, 2020 Автор Поделиться Опубликовано 10 ноября, 2020 Будьте так добры, подскажите как это реализовать ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 10 ноября, 2020 Поделиться Опубликовано 10 ноября, 2020 1 час назад, kenshin сказал: Будьте так добры, подскажите как это реализовать ? Посмотреть видосы от Руслана к примеру Почитать статьи на форуме, Каждый раз проговаривать одно и тоже - утомительно уже. Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 10 ноября, 2020 Поделиться Опубликовано 10 ноября, 2020 (изменено) Игра на юнити В структуре игрока есть это Тоесть наш ГГ всегда (вроде) =13. Остальное не то Скрипт будет такой Спойлер [ENABLE] aobscan(INJECT,D9 5B 18 85 DB 0F 84 47 00 00 00 0F B6 47 41 85 C0 0F 84 3B 00 00 00 89 1C 24) alloc(newmem,$1000) label(code) label(return) registersymbol(INJECT) newmem: push eax mov eax,[ebx+08] add eax,08 cmp [eax],#13 je short code fstp dword ptr [ebx+18] code: pop eax test ebx,ebx jmp return INJECT: jmp newmem return: [DISABLE] INJECT: db D9 5B 18 85 DB unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+133 HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+117: 8B 47 34 - mov eax,[edi+34] HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11a: 89 04 24 - mov [esp],eax HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11d: 39 00 - cmp [eax],eax HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11f: E8 9C B9 2A 0A - call HutongGames.PlayMaker:FsmFloat:get_Value HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+124: DD 45 E0 - fld qword ptr [ebp-20] HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+127: D9 C9 - fxch st(1) HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+129: DE E9 - fsubp st(1),st(0) HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+12b: D9 5D F0 - fstp dword ptr [ebp-10] HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+12e: 39 1B - cmp [ebx],ebx HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+130: D9 45 F0 - fld dword ptr [ebp-10] // ---------- INJECTING HERE ---------- HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+133: D9 5B 18 - fstp dword ptr [ebx+18] // ---------- DONE INJECTING ---------- HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+136: 85 DB - test ebx,ebx HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+138: 0F 84 47 00 00 00 - je HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+185 HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+13e: 0F B6 47 41 - movzx eax,byte ptr [edi+41] HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+142: 85 C0 - test eax,eax HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+144: 0F 84 3B 00 00 00 - je HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+185 HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14a: 89 1C 24 - mov [esp],ebx HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14d: 39 1B - cmp [ebx],ebx HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14f: E8 2C F1 EB 09 - call 1210F280 HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+154: DD 5D E0 - fstp qword ptr [ebp-20] HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+157: 8B 47 34 - mov eax,[edi+34] } Спойлер Игра пиратка The TakeOver v10.11.2019 Перед тем как влючать скрипт нужно чтоб по ГГ ударили иначе сигнатуру не найдёт Изменено 10 ноября, 2020 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 10 ноября, 2020 Автор Поделиться Опубликовано 10 ноября, 2020 Большое спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 11 ноября, 2020 Поделиться Опубликовано 11 ноября, 2020 12 часов назад, JIeXA сказал: В структуре игрока есть это Давать готовое решение - плохо. Я для чего все эти видосы записывал? Чтобы ребята учились, а не получали всё готовенькое. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 11 ноября, 2020 Поделиться Опубликовано 11 ноября, 2020 19 часов назад, kenshin сказал: Код сработал в другой раз может не сработать , а крашнуться . у тебя после строчки где ты почеркнул красным стоит прыжок на точный адрес . когда ты перезаргузишь игру этот адрес куда надо прыгнуть поменяеться ,а адрес прыжка в скрипте останеться старым и прыжлк будет на него . лучше сделать инжекцию на инструкцию выше что бы прыжок в скрипт не попал . и еще надо исправить аоб и байты возврата , а то твой скрипт не чего не найдет . у тебя аоб начинаеться с CC , а должен начинаться с D9 . это потому что ты поставил бряк , а потом сделал скрипт когда байт поменялся . 15 часов назад, JIeXA сказал: Скрипт будет такой может я не прав , но здесь по моему надо поправить cmp [eax],#13 je short code fstp dword ptr [ebx+18] code: pop eax test ebx,ebx jmp return у тебя получаеться когда сравнение равно значение останеться в стеке fpu , а его тоже надо вытолкнуть . не ? Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 11 ноября, 2020 Автор Поделиться Опубликовано 11 ноября, 2020 (изменено) 5 часов назад, Xipho сказал: Давать готовое решение - плохо. Я для чего все эти видосы записывал? Чтобы ребята учились, а не получали всё готовенькое. Я не беру тупо код. На его основе я и учусь, я сам пытаюсь дойти до результата, а иначе, я никогда не пойму как это работает. Ваши видео смотрю постоянно, там ведь вы тоже пишите код. Изменено 11 ноября, 2020 пользователем kenshin Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 11 ноября, 2020 Автор Поделиться Опубликовано 11 ноября, 2020 (изменено) 2 часа назад, Alex2411 сказал: у тебя аоб начинаеться с CC , а должен начинаться с D9 . это потому что ты поставил бряк , а потом сделал скрипт когда байт поменялся . Да, вы правы, я просто забываю об этом )) Но знаю это. Самое интересно, что скрипт всегда работает ))). Даже после перезагрузки системы. Поменял на D9 и скрипт перестал работать. Изменено 11 ноября, 2020 пользователем kenshin Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 11 ноября, 2020 Поделиться Опубликовано 11 ноября, 2020 23 часа назад, JIeXA сказал: иначе сигнатуру не найдёт так на юнити лучше aobscanregion Сразу всё найдет Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 12 ноября, 2020 Поделиться Опубликовано 12 ноября, 2020 [CENSORED] // Xipho: видео пришлось удалить из-за присутствия ненормативной лексики. Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 12 ноября, 2020 Автор Поделиться Опубликовано 12 ноября, 2020 Плюсовать не могу, я пока не достоин этих привилегий, а так + 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 ноября, 2020 Поделиться Опубликовано 15 ноября, 2020 (изменено) Нецензурщину вырезал Изменено 15 ноября, 2020 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
kenshin Опубликовано 19 ноября, 2020 Автор Поделиться Опубликовано 19 ноября, 2020 (изменено) В 15.11.2020 в 12:02, JIeXA сказал: Нецензурщину вырезал На основе уроков, я сделал свое решение, возможно оно и не верное, но все работает ?. Враги умирают, ограждения разрушаются, мой персонаж бессмертный. Спойлер newmem: cmp [ebx+18],42C80000 <<<<<<<<< В этом смещении полоска жизни. Правда есть одно условие, нужно ударить врага. jne code nop nop nop jmp return code: fstp dword ptr [ebx+18] test ebx,ebx jmp return INJECT+09: jmp newmem return: registersymbol(INJECT) Изменено 19 ноября, 2020 пользователем kenshin Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения