pavel3333 Опубликовано 15 июня, 2017 Поделиться Опубликовано 15 июня, 2017 Всем добрый день! Я новый на форуме, с программированием в ладах (знание Python, C++, C#), с ассемблером не очень, но код на нём более-менее понятен. Забил на ММОРПГшки, решил ломануть триалку "Minecraft Win10 Edition", которая некоторое время назад вышла в релиз. Выводится сообщение вверху "Осталось времени до окончания пробного периода: 23:25". Все string'и как выше и как в виде времени "23:25" находятся, их очень много, до 15-ти штук. И каждую секунду создаются новые такие строки с новыми адресами. Пытался поставить брейкпоинты на запись, на некоторых строках это удавалось, листинг кодов приведу ниже. 7FFEA90AC250 - 0F11 48 F0 - movups [rax-10],xmm1 7FFEA90AC492 - 41 0F11 44 08 F0 - movups [r8+rcx-10],xmm0 7FFEB090F914 - 66 89 08 - mov [rax],cx 7FFEB08D7D2F - 44 88 19 - mov [rcx],r11l 7FFEA90AC254 - 0F11 41 F0 - movups [rcx-10],xmm0 7FF7ECA03590 - 48 89 02 - mov [rdx],rax 7FF7EC15C624 - 48 C7 47 18 0F000000 - mov [rdi+18],0000000F 7FF7EC15C872 - 48 C7 03 0F000000 - mov [rbx],0000000F Пытался находить dword значение времени с помощью отсева "неизвестного значения" по признаку "уменьшилось", нашел десяток значений, даже если их замораживать, ничего не изменяется. Каждую секунду создается новая десятка таких значений. Копался в коде. Несколько раз ставил nop-ы в операциях инкрементирования в циклах типа 1 cmp [ebx],A 2 je 3 3 inc [ebx] 4 jmp 1 Один раз вылетело, один раз таки получилось остановить таймер, выводящийся на экране, но, поиграв так минуту и перезапустив игру, оказалось, что эффект был визуальным. Что я делаю не так? Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 15 июня, 2017 Поделиться Опубликовано 15 июня, 2017 1 час назад, pavel3333 сказал: Один раз вылетело, один раз таки получилось остановить таймер, выводящийся на экране, но, поиграв так минуту и перезапустив игру, оказалось, что эффект был визуальным. Что я делаю не так? Наверно значит не тот адрес юзаешь! Нужно найти правельный, а не экранный. Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 (изменено) 12 минуты назад, krocki сказал: Наверно значит не тот адрес юзаешь! Нужно найти правельный, а не экранный. Это я уже понял... но все "правильные" и "неправильные" переменные меняются каждую секунду. То есть нашлось десяток 4-байтных переменных, которые уменьшаются с течением времени, но они перестают время от времени менять значение, и при повторном поиске я нахожу переменные с другими адресами. Заморозка этого десятка тоже не помогает. Я так понимаю, нужно со спидхаком на 0.0 найти указатель на переменную времени. Попробую. Изменено 15 июня, 2017 пользователем pavel3333 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 июня, 2017 Поделиться Опубликовано 15 июня, 2017 1 час назад, pavel3333 сказал: Каждую секунду создается новая десятка таких значений. Попробуй искать: 4 байта, диапазон, в миллисекундах. Пример: На экране 23:25 23*3600=82800 24*60=1440 и 26*60=1560 82800+1440=84240 и 82800+1560=84360 диапазон: от 84240000 до 84360000. Может получиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 13 минуты назад, Garik66 сказал: Попробуй искать: 4 байта, диапазон, в миллисекундах. Спасибо! Попробую. Плюсы тут пока не могу ставить, а жаль. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 15 июня, 2017 Поделиться Опубликовано 15 июня, 2017 (изменено) А как же правило на счет пиратства? По теме: думаю можешь через timeLocaltime winapi выйти на функцию которая при первом запуске игры определяет время и устанавливает таймер. В идеале, если ломать триальный таймер, надо проверить не синхронизируется время с сервером. Изменено 15 июня, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 Только что, partoftheworlD сказал: А как же правило на счет пиратства? Я таймер практикуюсь ломать в образовательных целях, здоровье в играх легко ломается, хотел что-то посложней, типа такого. Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 6 минут назад, partoftheworlD сказал: В идеале, если ломать триальный таймер, надо проверить не синхронизируется время с сервером. Возможно. оно так, но я не авторизован в игре, хотя есть мысли по поводу того, что клиентская часть связывается с БД сервера и берет в качестве ключа что-то типа ID компьютера из магазина Windows Store. НО! если включить игру без интернета, то таймер всё равно течет, с того же самого места. возможно,имеет место быть запись в реестр или на диск. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 15 июня, 2017 Поделиться Опубликовано 15 июня, 2017 (изменено) 5 минут назад, pavel3333 сказал: НО! если включить игру без интернета, то таймер всё равно течет, с того же самого места. возможно,имеет место быть запись в реестр или на диск. Ну это можно проверить используя PCHunter или Process hacker Изменено 15 июня, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 8 минут назад, partoftheworlD сказал: PCHunter На Win10 вылетает ошибка с загрузкой драйвера Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 15 июня, 2017 Автор Поделиться Опубликовано 15 июня, 2017 Покопался, поигрался, ничего не вышло. Сам клиент на С++ написан, напишу приложение с таймером и попробую сломать. Не получится - ну и хрен с ним. Буду DirectX потом изучать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 16 июня, 2017 Поделиться Опубликовано 16 июня, 2017 Модераторы и администрация, куда смотрим? Название темы не соответствует правилам форума. Ссылка на комментарий Поделиться на другие сайты Поделиться
pavel3333 Опубликовано 16 июня, 2017 Автор Поделиться Опубликовано 16 июня, 2017 (изменено) 3 часа назад, Xipho сказал: Название темы не соответствует правилам форума. Xipho, прошу великодушно простить, еле нашел правила форума. Прошу сменить заголовок темы на "[Minecraft Windows 10 Edition]: вопрос по взлому таймера". Изменено 16 июня, 2017 пользователем pavel3333 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения