[Ссылки могут видеть только зарегистрированные пользователи. ]
Инструкция:
Поместить в папку ../element/
Переименовать elementclient.exe в elementclient_оригинал.exe
Переименовать elementclient_nocats.exe в elementclient.exe
Баги:
Иногда остаются коты
Иногда продавец остаётся стоять без кота
[Ссылки могут видеть только зарегистрированные пользователи. ] | [Ссылки могут видеть только зарегистрированные пользователи. ]
Q: Что такого в этом ехе? A: Он убирает всех котов (засовывает на высоту 0)
Q: Меня забанят? A: Если отправить скрин в саппорт - да
Q: Это только у меня в клиенте? A: Да, это только у тебя. И у всех, кто поставил этот ехе.
Q: Если я - дурак и решил поставить это на другую версию игры, что будет? A: Ничего, продолжай в том же духе
Q: Лагов станет меньше? A: Не намного, но буду исправлять
Q: Отступания останутся? A: Да. Почему? Это не исправить? Потому что отступания происходят из-за большого количества пакетов (входящих или исходящих), сервер вас кикает (дурак). Но именно в пакете хранится информация о том кот стоит или персонаж. И пока клиент его не примет, он не может определить это, поэтому клиенту придётся принимать все пакеты.
Если будут просящие и будет желание, могу написать маленькую статью, как это делается.Статья
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Последний раз редактировалось Smertig; 04.03.2014 в 21:56.
Как говорят, кот без программиста - кот, а программист без кота не программист Было бы, наверное, удобнее, если был бы переключатель показывать / не показывать котов. Это же удобнее
Как говорят, кот без программиста - кот, а программист без кота не программист Было бы, наверное, удобнее, если был бы переключатель показывать / не показывать котов. Это же удобнее
Заставить клиент реагировать на хоткеи я пока не научился (без посторонних программ). Можно нарисовать свой GUI (теоретически) и поставить переключатель на клавишу в этом GUI'е, но ставить функции на что-то самодельное я пока не научился. Можно изменить любую клиентскую функцию (какую? все нужны), либо какую-нибудь галочку в настройках? (какую? все нужны).
А вообще, идея хорошая. Сделаю, как только определюсь, куда засунуть переключатель
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Ещё можно пофантазировать и сделать что-то вроде фильтра котов, по подстроке выбирать или из pwdatabase. Но это уже лишнее.
Цитата:
Сообщение от Smertig
ставить функции на что-то самодельное
Это называется hook, в фрэймворке от крюковиса где-то в классе памяти есть установка хука на клавишу, можно начать оттуда, либо почитать msdn. И в автоите хук тоже есть, там тоже понято объясняется в хэлпе.
Ещё можно пофантазировать и сделать что-то вроде фильтра котов, по подстроке выбирать или из pwdatabase. Но это уже лишнее.
Это уже точно извращение. Этот ехе'шник я сделал только для удобства игры
Цитата:
Это называется hook, в фрэймворке от крюковиса где-то в классе памяти есть установка хука на клавишу, можно начать оттуда, либо почитать msdn. И в автоите хук тоже есть, там тоже понято объясняется в хэлпе.
Фреймворк никак не помог, про хук была информация только в WinAPI (очевидно), а вообще, языки программирования тут ни при чём, так как идёт модификация asm-кода. Тот же хук на аутоите я могу реализовать, на асме посложнее. Почитаю, покопаю еще клиент.
Update. Разобрался с хуком, на днях обновлю ехе'шник
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Последний раз редактировалось Smertig; 13.02.2014 в 00:03.
Заставить клиент реагировать на хоткеи я пока не научился (без посторонних программ). Можно нарисовать свой GUI (теоретически) и поставить переключатель на клавишу в этом GUI'е, но ставить функции на что-то самодельное я пока не научился. Можно изменить любую клиентскую функцию (какую? все нужны), либо какую-нибудь галочку в настройках? (какую? все нужны).
Можно для этого использовать маленькую иконку гиперов, которая вверху возле портрета, все равно попасть по ней в спешке в УФ нереально и проще пользоваться большой иконкой внизу слева.
________________ Nihil est verum. Omne datum est.
Последний раз редактировалось Ringil; 12.02.2014 в 23:52.
И в автоите хук тоже есть, там тоже понято объясняется в хэлпе.
Автоит тут, видимо, не при чем...
Smertig, но если всем котам присвоить высоту 0, проц все равно будет так же загружен? Или загрузка падает? Спрашиваю, потому-что руоф клиента нет.
А если освобождать память структуры кота? Ведь наверняка в клиенте имеются собственные функции для этого? Которые используются, если, допустим кот офнулся? Найти, я думаю, не станет проблемой.
Smertig, но если всем котам присвоить высоту 0, проц все равно будет так же загружен? Или загрузка падает? Спрашиваю, потому-что руоф клиента нет.
А если освобождать память структуры кота? Ведь наверняка в клиенте имеются собственные функции для этого? Которые используются, если, допустим кот офнулся? Найти, я думаю, не станет проблемой.
Я ждал этого вопроса Нагрузку процессора не проверил, честно. Нагрузка чуть уменьшилась, но не намного. Красивее стало, да. Освобождать память - тоже идея. Сначала я хотел кинуть котов на неведомые координаты, но клиент, не получив информацию, шлёт пакет раз за разом и в итоге "Вы отступаете".
Сделано это за 2 часа после случайного нахождения функции проверки маски перса (в пакете 0x04), поэтому такое сырое. Доработаю обязательно.
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Последний раз редактировалось Smertig; 13.02.2014 в 00:15.
Ты чё, ты чё! Ты добавляешь свою функцию в очередь обработки сообщения целевого окна, всё на уровне Windows, никакой модификации кода, никаких языков, это просто WinApi, в фрэймворке есть P/Invoke хука, легче разобраться на примере готового кода, и в хелпе AutoIt тоже есть пример кода, я только ради этого на них сослался.
Добавлено через 13 минут
Цитата:
Сообщение от Smertig
Освобождать память - тоже идея. Сначала я хотел кинуть котов на неведомые координаты, но клиент, не получив информацию, шлёт пакет раз за разом и в итоге "Вы отступаете"
В итоге получаем пакет о том, что перс вышел из кота и бежит куда-то, а тут в массиве игроков его вдруг не оказывается. Скорее всего вылет. Нагрузка и так уменьшается, на всякий случай можно по x ещё в 0 отправить, тогда он рендерится точно не будет. Можно попробовать набросать такой костыль: как-то перехватить получение пакета, распарсить список игроков, если кот, то добавить в свою базу, переформировать пакет так, чтобы кота в нём не было. Как только в каком-либо пакете будет wid из базы, то нужно послать перед этим пакетом пакет на кота(который мы убирали) и сразу после этого пакет, который мы обогнали, ну и удалить wid из базы. Под базой понимаю массив wid котов. Тогда вообще никакой нагрузки. За алгоритм перехвата пакета можно взять PW Packet Listener.
Последний раз редактировалось Ilyialat; 13.02.2014 в 21:18.
Причина: Добавлено сообщение
В итоге получаем пакет о том, что перс вышел из кота и бежит куда-то, а тут в массиве игроков его вдруг не оказывается.
У меня стоит джамп сразу после получения пакета 0x04 (CharacterAppearArray) и разбиения его на отдельные "подпакеты" с информацией: ID, x, y, z, Angle и маска. Перед обработкой пакета клиентом стоит джамп на мою память, там проверяется маска и, если она равна 0x1000, то координата (проверял с x, y (высота который)), поэтому перс не может выйти из кота по мнению клиента, т.к. он только-только появился и бац - в коте по неведомым координатам. И клиент это устраивает, если он находится в зоне видимости (нагрузка на процессор идёт всё же), а если не увидел (неведомые координаты прописаны), тогда он еще раз шлёт пакет. И ещё раз.. И я отступаю.
Костыль слишком заумный, делать лень
Цитата:
Ты чё, ты чё! Ты добавляешь свою функцию в очередь обработки сообщения целевого окна, всё на уровне Windows, никакой модификации кода, никаких языков, это просто WinApi, в фрэймворке есть P/Invoke хука, легче разобраться на примере готового кода, и в хелпе AutoIt тоже есть пример кода, я только ради этого на них сослался.
Да причём тут фреймворк
Всё, с чем я работаю, это OllyDbg и CFF Explorer. Исключительно дизассемблирование клиента и модификация кода. Никаких фреймворков, никаких Autoit'ов или ещё чего-то. Оригинальный и NoCats ехешники отличаются на 100 байт максимум. Это не программа, это обычный elementclient. [Ссылки могут видеть только зарегистрированные пользователи. ]
Возможно, я слоупок, и речь идёт о хуке с помощью самописной проги, исследовании того кода, который она заинжектила и дописывания этого в ехе? Если так, то там создаётся дополнительный поток (уверен на 95%), а в дизасме особо не насуёшь лишних потоков.
P.S. 006D1EA0 адрес функции, вызывающейся для исчезновения перса с заданным айди (edx) с экрана. Апдейтить было лень, сейчас чуть другим занят
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Последний раз редактировалось Smertig; 13.02.2014 в 22:33.
Если будут просящие и будет желание, могу написать маленькую статью, как это делается.
Я просящий! в клиенте особо не ковырялся, поэтому интересно будет послушать.
Спасибо за то, что сразу описан принцип работы (опускания кота на 0 высоту), решил попробовать сделать это ингейм, через изменения памяти.
Коты убрались, но когда проводишь курсором мышки над тем местом, где были коты - появляется ник и название кота, и также кот берется в таргет... Видимо клиент хранит инфу о координанах игрока (чтоб взять в таргет) отдельно от координат модели (чтоб отрисовать)..
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW. PW Everyday Helper Bot