ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» скрипт "company value" и статистический анализ | страница 1 |
 |
Страница 1 из 1 |
|
|
|
Канал X2: The Threat: «скрипт "company value" и статистический анализ» |
|
|
dragonlord
|
|
Не так давно в вопроснице я пытался узнать, есть ли у кого наработки по формату savegame x2. Не получив вообще никакого ответа, взялся за собственные изыскания.
Самое близкое, что я пока обнаружил, это вот такой вот скрипт (zip, ~8kb). Занимается созданием текстового файла с перечислением всех (или многих) объектов, принадлежащих игроку, плюс всякая доп. информация.
Может быть, кому-то он окажется полезным. Но это еще не все.
Результат работы скрипта даже в текущем виде может быть вполне нормальным источником данных для статистического анализатора, который я собираюсь написать. В возможности такого анализатора должна входить поддержка полноценой SQL базы данных (с прицелом на последующее online-использование),возможность сравнения неограниченного количества сэйвов одного или разных пилотов с получением различных отчетов по срезам информации, "глубокий" подсчет финансов (т.е. не сколько стоят все ваши фабрики, а, к примеру, сколько они стоят вместе с ресурсами и продукцией, которая на них имеется на момент снятия дампа).
Возможно, подобный софт уже существует, но руки чешутся написать лучше (всем, кто программирует, думаю, понятно, о чем я ) Результат будет фриварным, при желании администрации данного ресурса - под эгидой ЕГ.
В этой связи вопрос: для первоначального наполнения базы по объектам мне требуеются разнообразные списки: сектора с названиями и статистикой, список товаров с мин. и макс. ценами, список кораблей и.т.д. формат произвольный. если кто-то может помочь - прошу в приват.
еще хотелось бы узнать мнение общественности о таком проекте в принципе.
p.s. тут находится наглядный пример использования вышеупонянутого скрипта. Объективная статистика. к примеру, сразу снимается обсуждение вопроса "какой корапь лучше" - факты вещь упрямая
|
|
|
violator666
337 EGP
   Рейтинг канала: 1(1) Репутация: 79 Сообщения: 1744 Откуда: Moscow (Мытищи) Зарегистрирован: 19.09.2001
 |
|
dragonlord : |
Возможно, подобный софт уже существует
|
да вот http://www.lagerchurch.com/lordsuch/ Sector Planner прадла как по мне и без него не хуже видно что где но тут конечно наглядно и все такое там уже 1.4 релиз..
dragonlord : |
Не так давно в вопроснице
|
да тож недавно эту тему цеплял ссылка
dragonlord : |
узнать мнение общественности
|
супер ! ЕГ хотябы упрощенная версия была бы кстати, хотя можно наверно при желании на сайте Логана юзать..
dragonlord : |
Объективная статистика
|
там в Top 15 Most Populated Sectors моя компания неплохо вписалась(правда я не понял по какому принципу там скока фабов надо в секторе минимуум одна иди более)
_________________ Attention All Departing Pirates: Pilots have been seen in this sector |
|
|
Kamizeka
370 EGP
  Репутация: 136 Сообщения: 1037 Откуда: Калуга - родина космонавтики Зарегистрирован: 14.06.2005
 |
|
dragonlord : |
В возможности такого анализатора должна входить поддержка полноценой SQL базы данных (с прицелом на последующее online-использование),возможность сравнения неограниченного количества сэйвов одного или разных пилотов с получением различных отчетов по срезам информации, "глубокий" подсчет финансов
|
Идея-то хорошая Только вот думается мне, это все пустое перемалывание клавиатуры Ведь сейв все равно подделать пять минут, защиты-то со стороны движка нету. Максимум античитерства в X2 - это скриптами в моде защититься (и то сложно) от артманьки (может, я ошибаюсь? хорошо бы).
dragonlord : |
для статистического анализатора, который я собираюсь написать.
|
Сначала писать надо, а потом собираться Я например много чего тоже собираюсь (вон Алекс в курсе и еще некоторые личности )
dragonlord : |
еще хотелось бы узнать мнение общественности о таком проекте в принципе.
|
Пиши конечно, все будут только рады. Хорошо все-таки что есть люди у которых много свободного времени
Глубокий подсчет финансов - это хорошо, он помог бы развиваться научнее и не спорить до посинения, "какая фаба лучше" . А вот если делать статистику, надо к ней еще и офигенную античитерскую систему, желательно (нет, даже обязательно) внешнюю к движку. Думаю понятно, сколько на это времени и труда уйдет
И еще ведь куча народа играет в разные моды (кстати может опрос провести, для выяснения популярности модов?), поэтому если будет поддерживаться только оригинал, толк также не особо большой в статистике, ибо халявы уж больно много в оригинале.
_________________ Something's rotten in the state of Denmark. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Все статистики не имеют к объективности абсолютно никакого отношения. В игре ВСЁ, кроме торгового и боевого рейтинга, можно начитить даже не модифицируя игру и не активируя редактор скриптов!
Посему - составлять статистику для ЕГи, если есть на то желание, нужно только по двум параметрам:
1. Боевой рейтинг.
2. Торговый рейтинг.
И ВСЁ! Все значения надо выковыривать из сейвов в цифровом виде и по ним пиписьками меряться
Скоро появится возможность считать и количество релоадов игры, поэтому его так же можно включить в статистику (только игру придется начинать с начала). По этой цифре сразу будет видно, кто злостный релоадер, а кто действительно крутой перец
|
|
|
Kamizeka
370 EGP
  Репутация: 136 Сообщения: 1037 Откуда: Калуга - родина космонавтики Зарегистрирован: 14.06.2005
 |
|
AlexYar : |
В игре ВСЁ, кроме торгового и боевого рейтинга, можно начитить даже не модифицируя игру и не активируя редактор скриптов!
|
Не, ну есть альтернативный вариант - сделать внешний лоадер, этакий punkbuster X2 edition, который будет ловить артманьщиков и всяких прочих читеров. На всякого читера можно найти свой утюг, если долго заморачиваться.
А торговый и боевой рейтинг тоже можно начитить, причем той же артманькой И "появить" объект на пустом месте без скриптов (та же функция вроде применяется и для добавки шмотья в трюм), и пр. и пр. Не зря же я все про отладчики толковал.
И поэтому остается только один вариант - внешний лоадер. Судя по всему, у автора темы времени уйма - вот пусть он и займется (если, конечно, опыт есть).
_________________ Something's rotten in the state of Denmark. |
|
|
violator666
337 EGP
   Рейтинг канала: 1(1) Репутация: 79 Сообщения: 1744 Откуда: Moscow (Мытищи) Зарегистрирован: 19.09.2001
 |
|
погодите вы глазами смотрели скрипт Логана ? запускаешь его - делается лог файл там вся собственность игрока и финансы.. все ет в бд вносится(кстати там нет анализа рейтингов) и на сайте у него простая статистика по основным показателям, а там читить можно и в игре и в этом логе пиши например на фабе денег девятки подрисовывай.. тут читерам делать нечего это не для них
_________________ Attention All Departing Pirates: Pilots have been seen in this sector |
|
|
Kamizeka
370 EGP
  Репутация: 136 Сообщения: 1037 Откуда: Калуга - родина космонавтики Зарегистрирован: 14.06.2005
 |
|
violator666 : |
а там читить можно и в игре и в этом логе пиши например на фабе денег девятки подрисовывай..
|
А что тогда толку в этой статистике? Понарисовал сколько хошь и вперед...
_________________ Something's rotten in the state of Denmark. |
|
|
violator666
337 EGP
   Рейтинг канала: 1(1) Репутация: 79 Сообщения: 1744 Откуда: Moscow (Мытищи) Зарегистрирован: 19.09.2001
 |
|
ну правильно пара сотен человек так и сделали результат там на сайте
_________________ Attention All Departing Pirates: Pilots have been seen in this sector |
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
dragonlord : |
список товаров с мин. и макс. ценами, список кораблей и.т.д. формат произвольный. если кто-то может помочь - прошу в приват.
|
http://www.elite-games.ru/x2/ Здесь есть все что тебе может понадобиться.
dragonlord : |
но руки чешутся написать лучше
|
Если руки чешуться, бери и пиши. Когда напишешь и будет тема для обсуждения, а предварительный опрос "надо-ненадо" это бессмыслица. Делелай то, что считаешь нужным и никого не слушай. Будет скрипт, тогда и будем обсуждать плюсы и минусы (все на собственном опыте проверенно).
Если нежна будет помощь обращайся, чем смогу помогу.
_________________ Звезды зовут... |
|
|
dragonlord
|
|
el-kamikaze : |
И поэтому остается только один вариант - внешний лоадер.
|
поясни в чем идея, желательно поподробнее plz.
p.s. ну в принципе, если сильно подорваться, можно информацию снимать из памяти запущенного процесса x2. пойдет за античит?
|
|
|
dragonlord
|
|
DragonP : |
Если руки чешуться, бери и пиши. Когда напишешь и будет тема для обсуждения, а предварительный опрос "надо-ненадо" это бессмыслица. Делелай то, что считаешь нужным и никого не слушай. Будет скрипт, тогда и будем обсуждать плюсы и минусы (все на собственном опыте проверенно).
|
ну, рад что хоть кто-то поддерживает идею. так и поступим. первая альфа, которая будет давать некоторое представление о концепте, будет где-то недели через 1.5-2. Что-то типа рабочей БД плюс общий вид интерфейса плюс первоначальное наполнение базы объектами (возможно, неполное). Импорта в этой версии не будет
кстати, делаю информацию обо всех объектах динамической. это позволит воспользоваться результатом любителям модов и по выходу X3. расы, рейтинги, сектора - тоже динамические (т.е. будет требоваться только слегка сменить инфу в базе для адаптации под конкретный случай).
DragonP : |
Если нежна будет помощь обращайся, чем смогу помогу
|
Спасибо, принимается. В первом приближении это - бетатестинг и всякие ценные идеи.
|
|
|
dragonlord
|
|
Кстати по поводу защиты от читерства. Дело в том, что задача эта в общем и целом сводится к теме "как создать абсолютно надежную систему, защищенную от взлома". Правильный ответ - никак. Можно затруднить взломщику/читеру жизнь до нецелесообразности проведения взлома. По этой причине на любых спортивных соревнованиях есть судьи, и эти судьи - люди, а не компьютеры, по крайней мере, последнее решение всегда за человеком.
На мой взгляд, прога может пригодиться людям, играющим самостоятельно и желающим получать более подробную информацию о положении дел в игре, чем сама игра наглядно может показать. Или для проведения турниров и ведения статистики с участием модераторов-людей.
|
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
Что-то я видимо пропустил. Народ уже научился ковырять сэйвы?
В игре не убран 1 баг, позволяющий без всякой модификации и скриптов, делать за короткое время любые деньги. Хотя бы поэтому от читерства никак не защитишься.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Grey Wolf : |
Хотя бы поэтому от читерства никак не защитишься.
|
ИМХО даже пытататься бороться с читерами - пустая трата времени. Читерство - это личная проблема читера.
_________________ Звезды зовут... |
|
|
Kamizeka
370 EGP
  Репутация: 136 Сообщения: 1037 Откуда: Калуга - родина космонавтики Зарегистрирован: 14.06.2005
 |
|
el-kamikaze : |
И поэтому остается только один вариант - внешний лоадер.
|
dragonlord : |
поясни в чем идея, желательно поподробнее plz.
|
Нет. Мои извинения. Лоадер не поможет.
Ну во-первых. Почему так трудно читить в онлайн РПГ? Да потому что клиент ни за что не отвечает. Он есть КЛИЕНТ. Все начисления опыта/денег/репы/чего-там-еще игроку происходят на сервере, а клиент всего лишь это послушно отображает на мониторе и посылает серверу сигналы от клавы/мыши.
Поэтому, взломав клиент, ты ничего не добьешься. Хотя в принципе даже там (!) всякие кренделя находят всякие баги и недосмотры. Что уж тут говорить о не-онлайн играх.
А что имеем мы в X2? Игра, которая сама себе и сервер и клиент. Она НЕ предназначена для онлайна, для сбора онлайн-статистики. Она имеет монолитную структуру, а не распределенную. Если мы будем аплоадить на сервер статистики даже десять раз зашифрованную статистику, ничто не помешает нам ломануть клиент и зааплоадить уже ломаную инфу.
Так что максимум что можно сделать - это защитить сам процесс X2 от внешнего вмешательства. Сразу скажу, такая защита на Win32 невозможна из-за особенностей ОС (вот она, мастдайность ).
Понятное дело, что эта античитерская программа должна передавать инфу на сервер в СВОЕМ зашифрованном формате (а не чистые сейвы), иначе невозможно будет заставить игрока эту программу запустить .
Затем. Надо быть уверенным, что игра чистая, для этого нужно в этой программе хранить все хэши оригинальных файлов игры, а при запуске их проверять. Тогда можно быть уверенным, что оригинальные файлы не изменены и не добавлено/удалено ничего лишнего.
Еще надо быть уверенным, что игрок не загружает игру с непроверенного сейва, а начинает новую игру, надо внедрять в файл каждого сейва "чистую" сигнатуру.
Из сказанного видно, что нам потребуется:
1) слежение за памятью процесса
2) слежение за функциями, вызываемыми внутри процесса. Чтобы отследить например вызов той или иной функции.
3) внешнее управление процессом, чтоб перехватывать функцию сохранения и загрузки.
Слежение за памятью процесса - это относительно просто. При своей простоте, оно позволяет защититься от примитивных редакторов памяти типа ArtMoney. Например, у нас в игре есть значение, и мы не хотим чтобы его нелегально изменяли. Тогда мы запоминаем раз секунду (например) это значение, и все события, ведушие к его изменению (для этого надо пункт 2 - перехват функций). Опять же раз в секунду проверяем, каким должно быть это значение, и сверяем его с реальным значением в игре. Если отличаются - значит обман.
Перехват функций - довольно сложная техника. Казалось бы, можно воспользоваться Debug API - ан нет. Его легко поиметь извне. Можно воспользоваться хуками. Их тоже можно поиметь. Остается только внедрить делегирующую DLL в адресное пространство процесса. Эта техника далеко не для начинающих, если охота разобраться - есть например несколько неплохих русскоязычных статей на http://wasm.ru и, по-моему, на http://cracklab.ru тоже на эту тему кое-что есть (боюсь соврать).
Вместе с перехватом при внедрении DLL можно осуществить и контроль над процессом, т.е. вызывать код движка в его же контексте по своему желанию. Практическое применение - любое, ибо контроль над движком полный. Можно исправить старые баги, добавить новые, сделать свой формат сейвов, добавить мультиплеер в игру, сделать ботов и т.п. Но все это крайне трудоемко и во много раз сложнее рефакторинга существующего исходного кода. Однако есть масса любительских программ, использующих такой подход, в основном это трейнеры, иногда полезные программы.
В любом случае чтобы сделать нормальную античитерскую систему, нужен как минимум почти тотальный дизассемблинг движка, что, замечу, незаконно. Кода в движке не так много (меньше 2 мб), но учитывая отвратный стиль программеров ЕГ (говорю только о тех ужасах, которые я видел в отладчике - хорошие программисты так не пишут), дизассемблинг займет кучу времени. А без этого останутся дыры, и причем легко обходимые даже неспециалистом.
Ну что, dragonlord, отпало желание писать такую систему?
Grey Wolf : |
В игре не убран 1 баг, позволяющий без всякой модификации и скриптов, делать за короткое время любые деньги.
|
Если я думаю о том же что и ты , то и этот баг можно убрать при помощи внешнего контроля над процессом.
В общем, это примерно 1/10 того, что я хотел написать (там бы дальше еще страшнее было - про необходимость ядровых драйверов например ), но работать надо и времени нету Если кому будет интересно - пишите в приват, отвечу.
_________________ Something's rotten in the state of Denmark. |
|
|
violator666
337 EGP
   Рейтинг канала: 1(1) Репутация: 79 Сообщения: 1744 Откуда: Moscow (Мытищи) Зарегистрирован: 19.09.2001
 |
|
el-kamikaze : |
Grey Wolf :
В игре не убран 1 баг, позволяющий без всякой модификации и скриптов, делать за короткое время любые деньги.
Если я думаю о том же что и ты , то и этот баг можно убрать
|
гы.. секунда на то чтоб викинуть и подобрать контейнер говорите
п.с. не пытайтесь обломать читерство полностью, это невозможно как искоренить преступность совсем..
по скрипту Логана кто разбирается посмотрели ? он просто считает всe объекты игрока в галактике и их параметры ?
_________________ Attention All Departing Pirates: Pilots have been seen in this sector |
|
|
dragonlord
|
|
Цитата: |
Ну что, dragonlord, отпало желание писать такую систему?
|
Ну, видишь ли, во-первых я собирался писать базу данных, а не античитерскую систему. Мне она нужна самому для внутреннего применения, если кто-то найдет ее полезной и тоже будет использовать - тем лучше. Самому себе ковырять сейвы, а потом офигевать от "крутости" империи я, думаю, не буду
По поводу античитов, лоадеров и прочего - это уже твоя идея Несколькими постами выше я писал, что работающая система уязвима по определению. (и дело тут, кста, совсем даже не в win32, и не такое ломали )
p.s. для внедрения в файл сейва сигнатуры достаточно перехватывать функции api. следить за памятью процесса и прочим бессмысленно, думаю, ты понимаешь, о чем я. Против человека с айсом все равно мало что помогает кроме того, можно было бы сейв вообще прозрачно шифровать, к примеру. Вот тут уже фиг ты его ковырнешь без знания алгоритма и ключа, то есть 99% не сможет этого сделать, пока какая-нибудь добрая душа не выпустит распаковщик, и все по новой.
p.p.s. а по поводу упомянутого тобой стиля программистов Egosoft, видного при дисассемблировании. Сорри, они там что, таблицу символов забыли или прямо на асме пишут?
|
|
|
dragonlord
|
|
violator666 : |
по скрипту Логана кто разбирается посмотрели ? он просто считает всe объекты игрока в галактике и их параметры ?
|
Вот пример файла дампа этого скрипта:
Player-Alex
Money-107464
PlayTime-646653
Version-25.4
sp-Split Mamba-0
sr-5-1-1-1
st-Argon Ore Mine-75756-2
wr-Ore-170-3
wr-Energy Cells-15-4
sp-Argon Mercury-5
sr-9-2-1-6
st-Argon Ore Mine-74436-7
wr-Ore-170-8
wr-Energy Cells-15-9
sp-Paranid Demeter-10
sr-1-5-1-11
st-Argon Silicon Mine-44414-12
wr-Energy Cells-15-13
wr-Silicon Wafers-500-14
sp-Teladi Vulture-15
[конец цитаты]
естественно, будет модифицироваться для увеличения функционала, тут явно не все.
|
|
|
|
|
|
Канал X2: The Threat: «скрипт "company value" и статистический анализ» |
|
|