Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Конструктор класса в памяти

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 20.06.2013, 17:43   #1
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Конструктор класса в памяти

Привет, ребята.
Вопрос простой: как со стопроцентной уверенностью локализовать конструктор класса (скажем, игрока) в памяти процесса Perfect World?

Ответ на данный вопрос позволит существенно оптимизировать ботов, работающих с мобами/игроками/лутом, а так же вычислить с абсолютной точностью настоящие размеры всех структур в PW.

Короче, кто понял суть вопроса, тот должен понимать, что это было бы ну очень круто.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 20.06.2013, 20:27   #2
Заблокирован
 Разведчик
Аватар для TorgPW
 
TorgPW неизвестен в этих краяхTorgPW неизвестен в этих краяхTorgPW неизвестен в этих краяхTorgPW неизвестен в этих краях
Регистрация: 31.05.2013
Сообщений: 5
Популярность: -356
Сказал(а) спасибо: 0
Поблагодарили 12 раз(а) в 11 сообщениях
Отправить сообщение для TorgPW с помощью Skype™
 
По умолчанию Re: Конструктор класса в памяти

Мне кажется что этого никто не скажет)
  Ответить с цитированием
Старый 25.06.2013, 14:50   #3
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: Конструктор класса в памяти

Подсказка - посмотреть как это делает плагин ClassInformer для IDA =)
+ В конструкторе ты на найдёшь размер экземпляра класса, там только инициализация полей. Размер экземпляра явным числом указан в операторе New, который идёт непосредственно перед вызовом конструктора.
N.B. - Не совсем понял, как это должно оптимизировать работу. Пояснишь ?
  Ответить с цитированием
Старый 27.06.2013, 00:17   #4
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Конструктор класса в памяти

vogel, всё именно так. Размер явно задаётся в new. Но new и вызывает конструктор, так что там всё будет рядом.

Способ оптимизации крайне прост. Вот любой типичный ingame-бот мутит огромнейшие циклы по "страницам структур" в памяти клиента игры, либо перебирает циклами "хеш ближайших игроков/монстров" с целью найти структуры игроков/мобов/лута и т.д.

Но если перехватить управление из конструктора, то можно заставить игру работать на бота - сразу сохранять адреса структур в каких-нибудь там динамических списках типа vector.
И никаких циклов! Игра всё будет делать сама. А удалять структуры из списка можно будет с помощью деструкторов соответствующих классов.

Я честно до сих пор не понимаю, почему люди продолжают писать ботов в виде отдельных программ с использованием всяких там OpenProcess, ReadProcessMemory, VirtualAllocEx и CreateRemoteThread (вероятно потому, что гораздо проще копирнуть с форума то, что выложено предшественниками, нежели пошевелить немного извилинами), когда можно внедрить DLL и избавить себя от всех этих функций раз и навсегда, пользуясь адресным пространством PW как своим.
И я также до сих пор не понимаю, почему раньше фишку с конструкторами-деструкторами ещё никто не реализовал (или не рассказал общественности :3).
Это как перехват пакетов - как два пальца. Трабл только в том, чтоб найти это место. И к тому же, если узнать точный размер структуры, не нужно будет копаться в памяти наугад, выходя за пределы структуры в поисках скрытого смысла найденной там каши из левых байтов; можно будет вообще описать полную структуру в виде struct/class(/record для delphi), а оттуда уже шагнуть вперёд - найти и полностью описать как можно больше методов этого класса.
Такую фишку уже проворачивали с другими игрушками, например GTA: San Andreas, где некоторые участки кода игры восстановлены тупо до исходников на C++ (причём участки не малые).
Тут же пойдут всякие там фреймворки и прочая лабуда, что позволит ЗНАЧИТЕЛЬНО облегчить разработку ботов, плагинов, программ для Perfect World и игр на том же движке.
Так что я реквестирую БОЛЬШЕ ЛЮДЕЙ в эту тему. Спасибо. ;)
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3

Последний раз редактировалось BritishColonist; 27.06.2013 в 00:21.
  Ответить с цитированием
Старый 27.06.2013, 18:19   #5
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: Конструктор класса в памяти

Про внедрение DLL и "разгуливанию" по памяти ПВ как по своей - согласен, сам так делаю.

Про создание SDK на основе разгаданных классов - поддерживаю, надо заниматься. Вон братюни, которые по шутерам угорают - уже давно всё сделали и для BF и для СoD и даже для всяких варфэйсов с APB.

Про "перехватить управление из конструктора" - весьма и весьма спорно. Гораздо выгоднее перехватить диспетчер распакованных пакетов в клиенте - тогда ты будешь своевременно получать свежую инфу от сервера и сможешь сам держать себе списки мобов/игроков/чего захочешь без периодического поллинга и итерирования памяти клиента. Опять же своевременное уведомление о событиях - кто что кастанул, кто где издох... ну ты понял, я уверен =)

P.S. Если что - пиши в скайп, он у меня в подписи на пвид'е.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Онлайн конструктор приложений для Вконтакте Topki Баги игр ВКонтакте 7 10.06.2013 21:12
[Программа] cfg creator alpha (Конструктор конфигов cs) Point3D Прочий софт для Counter-Strike 6 19.09.2012 22:48
[Скрипт] Онлайн ICQ конструктор (jimm constructor) Novichok Web-программирование и технологии 0 12.04.2010 17:37
Конструктор Эвентов Винсент World of Warcraft 0 09.04.2010 00:35

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net