Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

[Редактирование клиента] Убираем котов

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 04.03.2014, 21:45   #1
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
Smile [Редактирование клиента] Убираем котов

Доброго времени суток всем читателям.
В этой статье я попытаюсь наиболее понятным языком рассказать об основах редактирования клиента на примере удаления котов из него. Результат тут.

Основные инструменты и требования:
  1. Клиент PW (куда без него)
  2. Cheat Engine (далее сокращение - СЕ)
  3. CFF Explorer
  4. Olly Debugger
  5. Опыт использования СЕ
  6. Pandora Box или небольшой опыт в OOG
  7. Знать, чем отличается int (dword) и byte
  8. Желание понять ассемблер

Статья разбита на три части для удобства восприятия:

1. Вступление, или составляем план.
2. Ищем код, отвечающий за появление кота
3. Редактируем код под себя - удаляем котов

Часть 1.
Жми, если не страшно
Часть 2.
Жми, если не страшно
Часть 3.
Жми, если не страшно
Эпилог
А тут бояться нечего

Сделано по просьбе.

Флуд буду тереть нещадно, о неточностях в лс, о важных уточнениях в комментарии.

P.S. Планирую написать ещё пару статей на тему редактирования клиента, только подкиньте идеи.

UPDATE: Картинки все сломались, восстанавливать долго, извините уж
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.

Последний раз редактировалось Smertig; 20.07.2014 в 02:32.
  Ответить с цитированием
10 пользователя(ей) сказали cпасибо:
74ser (30.03.2014), DonQuatro (25.07.2014), Кот(матроскин) (15.03.2014), fds255 (05.03.2014), mafiosi (21.08.2014), N00bSa1b0t (04.03.2014), Nek1t (05.03.2014), Sirioga (04.03.2014), sumikot (05.03.2014), vogel (05.03.2014)
Старый 05.03.2014, 01:19   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Статья хорошая, да.
Цитата:
MOV EAX,DWORD PTR SS:[EBP+16]

Цитата:
кратко mov eax, [ebp+16] - записываем в регистр (кому удобнее - переменную) eax значение по адресу ebp+16 (наша маска)

А что, если я тебе скажу, что эта команда записывает в аккумулятор четвёртый по счёту элемент стека(ну если от ebp отсчитывать)?
Цитата:
MOV DWORD PTR SS:[EBP+8],0

А эта пишет во второй элемент стека 0
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Пользователь сказал cпасибо:
Smertig (05.03.2014)
Старый 05.03.2014, 04:34   #3
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
А что, если я тебе скажу, что эта команда записывает в аккумулятор четвёртый по счёту элемент стека(ну если от ebp отсчитывать)?

А эта пишет во второй элемент стека 0

А что, от этого оно не будет работать что ли?
  Ответить с цитированием
Старый 05.03.2014, 06:41   #4
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Цитата:
Сообщение от SiriogaПосмотреть сообщение
А что, от этого оно не будет работать что ли?

Я допустил грубую ошибку. Я забыл, что ebp - указатель на стек. push eax помещает в стек значение eax, следовательно ebp -= 4, и дальнейшее обнуление [ebp+8] обнуляет по факту [ebp+4] (если считать относительно начального ebp). Странно, что эта ошибка не всплыла (обнулялась координата x). Буду с пк - поправлю статью.

апдейт: А флаг вообще из левого места тогда читается. Странно, что это работает. Либо я спросонья запутался и всё в порядке. Обязательно проверю.


Паника отменяется. Push eax суёт eax в "другой" стек, за адрес которого отвечает esp, а не ebp. Почитав гугл, не особо понял разницу esp и ebp как стековых указателей.
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.

Последний раз редактировалось Smertig; 05.03.2014 в 19:53.
  Ответить с цитированием
Старый 06.03.2014, 23:16   #5
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Цитата:
не особо понял разницу esp и ebp

ESP отвечает за адрес вершины стека; вручную (умышленно, разработчиком взламываемого ПО) модифицируется редко, но часто команды sub esp и add esp встречаются в прологах/эпилогах функций.

EBP же - Base Pointer, часто содержит в себе указатели на что-нибудь, но лично я ни разу не видел особой специфики работы с этим регистром (совсем необязательно он содержит указатель на стек, лично я вообще его иногда использую как те же eax/edx/ecx).

UPD:
Кстати, добавлю про перехват управления в коде, в частности про 0xE9.
Если хотим пропатчить клиент с целью перехода с адреса X в адрес Y, то в адрес X записывается байт 0xE9 (jmp), а в следующие 4 байта, т.е. по адресу памяти X+1 запишется число Y-(X+5). Т.е. адрес назначения минус текущий адрес плюс размер команды jmp с операндами (5 байт).
Это я к тому, что можно и без дополнительных программ вычислить этот адрес, даже не проверяя через Olly.

P.S. Думал на днях запилить гайд по перехвату управления. Но даже не знаю, стоит ли игра свеч, ибо прошлые мои гайды особого успеха не поимели (пишу громоздко и максимально подробно). Интересно кому-нибудь?
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3

Последний раз редактировалось BritishColonist; 06.03.2014 в 23:27.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Nek1t (07.03.2014), Smertig (07.03.2014)
Старый 07.03.2014, 00:03   #6
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Цитата:
ESP отвечает за адрес вершины стека; вручную (умышленно, разработчиком взламываемого ПО) модифицируется редко, но часто команды sub esp и add esp встречаются в прологах/эпилогах функций.

EBP же - Base Pointer, часто содержит в себе указатели на что-нибудь, но лично я ни разу не видел особой специфики работы с этим регистром (совсем необязательно он содержит указатель на стек, лично я вообще его иногда использую как те же eax/edx/ecx).

Вот за это спасибо.

Цитата:
UPD:
Кстати, добавлю про перехват управления в коде, в частности про 0xE9.
Если хотим пропатчить клиент с целью перехода с адреса X в адрес Y, то в адрес X записывается байт 0xE9 (jmp), а в следующие 4 байта, т.е. по адресу памяти X+1 запишется число Y-(X+5). Т.е. адрес назначения минус текущий адрес плюс размер команды jmp с операндами (5 байт).
Это я к тому, что можно и без дополнительных программ вычислить этот адрес, даже не проверяя через Olly.

Проще говоря - относительная адресация. Она очень удобна, когда джамп локальный и при перемещении куска кода ничего не нужно исправлять.

Цитата:
P.S. Думал на днях запилить гайд по перехвату управления. Но даже не знаю, стоит ли игра свеч, ибо прошлые мои гайды особого успеха не поимели (пишу громоздко и максимально подробно). Интересно кому-нибудь?

Гайды имели успех, и этим пользовался, а эти две темы вдохновили на написание своего яп. Пили гайд, обязательно
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.

Последний раз редактировалось Smertig; 07.03.2014 в 00:42.
  Ответить с цитированием
Старый 08.03.2014, 00:07   #7
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [Редактирование клиента] Убираем котов

Цитата:
EBP же - Base Pointer, часто содержит в себе указатели на что-нибудь, но лично я ни разу не видел особой специфики работы с этим регистром

Там должен быть указатель на начало сегмента стека, используется "по назначению" в случае необходимости работы с элементом стека, не вынимая все предыдущие, что мы, кстати, тут и видим
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 21.08.2014, 18:11   #8
 Разведчик
Аватар для mafiosi
 
mafiosi неизвестен в этих краяхmafiosi неизвестен в этих краях
Регистрация: 27.05.2011
Сообщений: 29
Популярность: -110
Сказал(а) спасибо: 11
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: [Редактирование клиента] Убираем котов

прошу ,перезалей все скрины,очень интересная тема,но без наглядных примеров я не понимаю что к чему
  Ответить с цитированием
Ответ

Метки
cff explorer, cheat engine, disassembler, редактирование клиента, nocats, убираем котов, ollydbg, smertig

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Обход котов kibo Общение и обсуждение, архив Lineage 2 1 01.10.2013 21:28
[Руководство] Модификация Клиента Warface (Убиваем Сквозь Стенки + Убираем Деревья И Кусты) mayflowers Warface Online 6 27.08.2012 21:53
[Статья] Убираем заставки из клиента MrFloppy Rising Force Online 12 04.08.2012 14:31
[Помогите!] aim кофог для cs 1.6 Nekitosss Общение и обсуждение Counter-Strike 0 02.04.2012 11:21

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:57.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net