Rybik Опубликовано 3 марта, 2018 Поделиться Опубликовано 3 марта, 2018 Всем привет. Я скачал утилиту, которая отслеживает какие пакеты отправляет MMORPG. Название игры Guild Wars(Первая часть). Показать контент Собственно вот что она мне выдает. Соответственно вопрос, как этот HeX код найти в CE? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 3 марта, 2018 Поделиться Опубликовано 3 марта, 2018 В 03.03.2018 в 20:23, Rybik сказал: Соответственно вопрос, как этот HeX код найти в CE? Показать Никак, это значения из перезаписываемого буфера для конкретного дескриптора идентифицирующего сокета который работает с send/sendto. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 3 марта, 2018 Автор Поделиться Опубликовано 3 марта, 2018 (изменено) В 03.03.2018 в 20:55, kiwipapayamongoose сказал: Никак, это значения из перезаписываемого буфера который работает с send/sendto. Показать Я хочу отследить таймер, который появляется во время запуска пвп сражения. Для этого у меня есть 60 секунд, чтобы отследить всю цепочку оффсетов. После того как таймер исчезает, все адреса меняются приходится начинать сначала. Для чего тогда писалась эта утилита? Во всем хекс коде значения не меняются, кроме последний 4х: "B8 0B 00 00" - это значение меняется в зависимости от того, какое время приходит от сервера. Изменено 3 марта, 2018 пользователем Rybik Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 3 марта, 2018 Поделиться Опубликовано 3 марта, 2018 В 03.03.2018 в 21:02, Rybik сказал: Я хочу отследить таймер Показать Ну есть способы с помощью которых можно найти инструкцию работающую с таймером не на прямую, а например какой-нибудь флаг начала боя(значение которое будет постоянно в памяти), а уже от него выйти на таймер. В 03.03.2018 в 21:02, Rybik сказал: Для чего тогда писалась эта утилита? Показать Чаще всего такие утилиты полезны в исследовании игры и восстановлении структуры пакетов, к примеру можно посмотреть что происходит во время транзакций или ещё чего, в том числе и отправки данных на сервер получив дескриптор сокета. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 3 марта, 2018 Автор Поделиться Опубликовано 3 марта, 2018 В 03.03.2018 в 21:11, kiwipapayamongoose сказал: Ну есть способы с помощью которых можно найти инструкцию работающую с таймером не на прямую, а например какой-нибудь флаг начала боя, а уже от него выйти на таймер. Чаще всего такие утилиты полезны в исследовании игры и восстановлении структуры пакетов, к примеру можно посмотреть что происходит во время транзакций или ещё чего, в том числе и отправки данных на сервер получив дескриптор сокета. Показать 0x100 Integer => 3000. Означает что от сервера пришла команда, бой начнется через 3 секунды. Соответственно я ищу значение 3000 в CE. Нахожу адрес, и смотрю что к нему обращается. Куда дальше посоветуете следовать? Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 марта, 2018 Поделиться Опубликовано 4 марта, 2018 Как вариант - попытаться обмануть игру встроенным в СЕ спидхаком, чтобы времени побольше было. Еще вариант - найти что-то "рядом" с этим таймером - например, какую-то надпись. Типа, когда появляется на экране такая-то надпись, то этот таймер стартует. Дальше - в дизассемблер и изучать код. СЕ тут не спасет вот так запросто, я думаю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 4 марта, 2018 Автор Поделиться Опубликовано 4 марта, 2018 (изменено) В общем то у меня уже есть готовый offset, который был найден не мной, тот человек не хочет объяснять как он был найден, поэтому я пишу вам. Offset = [0, 0x18, 0x44, 0x9C, 0]. Показать контент Оффсет возвращает значение от 0 до 30000 после нажатия на кнопку "Вступить в бой", затем приходит пакет от сервера, пакет присылает оставшееся время до начала миссии. Все работает. Теперь остается выяснить каким образом был найден данный оффсет. 1. Нажимаю кнопку вступить в бой. 2. Вижу на таймере 28 секунд, значит в строке поиска Cheat Engine ввожу значение 28000. Появилось несколько адресов. Показать контент 3. Снова нажимаю на кнопку "Вступить в бой" на этот раз пришло время до начала мисси было 15 секунд, соответственно равно 15000. Видим что по адресу 11E6F010 значение изменилось на 15000. Это то что нужно, перепроверил несколько раз, значение меняется относительно таймера. Показать контент 4. Двойным нажатием ЛКМ добавляю адрес 11E6F010 в нижнее окно. Показать контент 5. ПКМ по 11E6F010 ---> Find out what writes to this address. Затем опять нажимаю на кнопку "вступить в бой" и в окне The Following opcodes write to 11E6F010 появляется инструкция. ПКМ по инструкции ---> More info. Открывается новое окно Extra Info. Cheat Engine говорит что возможно значение можно найти по адресу 11E6F010. Показать контент 6. Далее пытаюсь найти значение по адресу, но без результатно. Как можно найти куда передвигается mov [esi], dl? Показать контент 7. Если разобраться, то значение таймера приходит на 11E6F010, а готовый offset получает значение от 1A16E7E8 (последнее смещение). То есть последнее смещение выглядит следующим образом 1A16E7E8+0 = 1A16E7E8. Предпоследнее смещение выглядит так: [1A16E74C+9С] = 1A16E7E8(См. 1 картинка). Как происходит перемещение от 1A16E7E8 до 11E6F010? Изменено 4 марта, 2018 пользователем Xipho Не забываем убирать картинки под спойлер. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 марта, 2018 Поделиться Опубликовано 4 марта, 2018 В 04.03.2018 в 08:50, Rybik сказал: Как происходит перемещение от 1A16E7E8 до 11E6F010? Показать [1A16E7E8+0] указатель на 11E6F010 Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 4 марта, 2018 Автор Поделиться Опубликовано 4 марта, 2018 В 04.03.2018 в 10:05, kiwipapayamongoose сказал: [1A16E7E8+0] указатель на 11E6F010 Показать Offset = [0, 0x18, 0x44, 0x9C, 0] - этот уже найдено. Давайте представим, что оффес не найден и найдем его заново. То есть вы написали, что указатель на [1A16E7E8+0] , но это взято из уже найденного оффсета (См. первую картинку). Исходя из второй картинки и далее, как найти смещение? Меня интересует 6 пункт. В 04.03.2018 в 08:50, Rybik сказал: 6. Далее пытаюсь найти значение по адресу, но без результатно. Как можно найти куда передвигается mov [esi], dl? Показать Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 марта, 2018 Поделиться Опубликовано 4 марта, 2018 В 04.03.2018 в 10:17, Rybik сказал: Как можно найти куда передвигается mov [esi], dl? Показать Не понятно, что подразумевается под "передвигается", это же не шкаф на колесиках какой-нибудь. Если у тебя есть инструкция работающая с таймером и ты хочешь найти смещения, то воспользуйся ручным поиском указателя, это быстрее, чем автоматический. И желательно воспользоваться инструкцией которая работает только с таймером, иначе можно найти не то что нужно. Либо же останавливать процесс во время автоматического поиска указателей. Ещё можно пойти от обратного, не искать таймер, а найти где используется статический адрес от которого вычисляется адрес таймера. В общем вариантов куча. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 5 марта, 2018 Автор Поделиться Опубликовано 5 марта, 2018 Показать контент В 04.03.2018 в 10:49, kiwipapayamongoose сказал: Либо же останавливать процесс во время автоматического поиска указателей. Ещё можно пойти от обратного, не искать таймер, а найти где используется статический адрес от которого вычисляется адрес таймера. В общем вариантов куча. Показать Следую инструкции как показано на видео, я нахожу 3-4 смещения. Потом получается так что брекпоинты в ollydbg перестают срабатывать. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 марта, 2018 Поделиться Опубликовано 5 марта, 2018 В 05.03.2018 в 15:58, Rybik сказал: Потом получается так что брекпоинты в ollydbg перестают срабатывать. Показать Значит все нашел) а вообще лучше использовать x64dbg, вместо ольки Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 5 марта, 2018 Автор Поделиться Опубликовано 5 марта, 2018 В 05.03.2018 в 15:59, kiwipapayamongoose сказал: Значит все нашел) а вообще лучше использовать x64dbg, вместо ольки Показать Как нашел если самый первый адрес не статический? Ссылка на комментарий Поделиться на другие сайты Поделиться
Rybik Опубликовано 6 марта, 2018 Автор Поделиться Опубликовано 6 марта, 2018 Или я не прав? Может быть такое что последний адрес не зеленый(не статический)? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения