Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » скрипт "company value" и статистический анализ | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал X2: The Threat: «скрипт "company value" и статистический анализ»
dragonlord
 





Не так давно в вопроснице я пытался узнать, есть ли у кого наработки по формату savegame x2. Не получив вообще никакого ответа, взялся за собственные изыскания.

Самое близкое, что я пока обнаружил, это вот такой вот скрипт (zip, ~8kb). Занимается созданием текстового файла с перечислением всех (или многих) объектов, принадлежащих игроку, плюс всякая доп. информация.

Может быть, кому-то он окажется полезным. Но это еще не все.

Результат работы скрипта даже в текущем виде может быть вполне нормальным источником данных для статистического анализатора, который я собираюсь написать. В возможности такого анализатора должна входить поддержка полноценой SQL базы данных (с прицелом на последующее online-использование),возможность сравнения неограниченного количества сэйвов одного или разных пилотов с получением различных отчетов по срезам информации, "глубокий" подсчет финансов (т.е. не сколько стоят все ваши фабрики, а, к примеру, сколько они стоят вместе с ресурсами и продукцией, которая на них имеется на момент снятия дампа).

Возможно, подобный софт уже существует, но руки чешутся написать лучше Хы... (всем, кто программирует, думаю, понятно, о чем я ) Улыбка Результат будет фриварным, при желании администрации данного ресурса - под эгидой ЕГ.

В этой связи вопрос: для первоначального наполнения базы по объектам мне требуеются разнообразные списки: сектора с названиями и статистикой, список товаров с мин. и макс. ценами, список кораблей и.т.д. формат произвольный. если кто-то может помочь - прошу в приват.

еще хотелось бы узнать мнение общественности о таком проекте в принципе.

p.s. тут находится наглядный пример использования вышеупонянутого скрипта. Объективная статистика. к примеру, сразу снимается обсуждение вопроса "какой корапь лучше" - факты вещь упрямая Подмигиваю
    Добавлено: 11:28 13-07-2005   
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
    Добавлено: 17:03 13-07-2005   
Kamizeka
 370 EGP


Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
dragonlord :
В возможности такого анализатора должна входить поддержка полноценой SQL базы данных (с прицелом на последующее online-использование),возможность сравнения неограниченного количества сэйвов одного или разных пилотов с получением различных отчетов по срезам информации, "глубокий" подсчет финансов

Идея-то хорошая Улыбка Только вот думается мне, это все пустое перемалывание клавиатуры Расстроен Ведь сейв все равно подделать пять минут, защиты-то со стороны движка нету. Максимум античитерства в X2 - это скриптами в моде защититься (и то сложно) от артманьки Расстроен (может, я ошибаюсь? хорошо бы).
dragonlord :
для статистического анализатора, который я собираюсь написать.

Сначала писать надо, а потом собираться Улыбка Я например много чего тоже собираюсь (вон Алекс в курсе и еще некоторые личности Улыбка )
dragonlord :
еще хотелось бы узнать мнение общественности о таком проекте в принципе.

Пиши конечно, все будут только рады. Хорошо все-таки что есть люди у которых много свободного времени Улыбка

Глубокий подсчет финансов - это хорошо, он помог бы развиваться научнее и не спорить до посинения, "какая фаба лучше" Улыбка. А вот если делать статистику, надо к ней еще и офигенную античитерскую систему, желательно (нет, даже обязательно) внешнюю к движку. Думаю понятно, сколько на это времени и труда уйдет Улыбка

И еще ведь куча народа играет в разные моды (кстати может опрос провести, для выяснения популярности модов?), поэтому если будет поддерживаться только оригинал, толк также не особо большой в статистике, ибо халявы уж больно много в оригинале.
_________________
Something's rotten in the state of Denmark.
    Добавлено: 17:38 13-07-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32767

Зарегистрирован: 26.10.2003
Все статистики не имеют к объективности абсолютно никакого отношения. В игре ВСЁ, кроме торгового и боевого рейтинга, можно начитить даже не модифицируя игру и не активируя редактор скриптов!

Посему - составлять статистику для ЕГи, если есть на то желание, нужно только по двум параметрам:

1. Боевой рейтинг.
2. Торговый рейтинг.

И ВСЁ! Все значения надо выковыривать из сейвов в цифровом виде и по ним пиписьками меряться Улыбка

Скоро появится возможность считать и количество релоадов игры, поэтому его так же можно включить в статистику (только игру придется начинать с начала). По этой цифре сразу будет видно, кто злостный релоадер, а кто действительно крутой перец Улыбка
    Добавлено: 17:40 13-07-2005   
Kamizeka
 370 EGP


Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
AlexYar :
В игре ВСЁ, кроме торгового и боевого рейтинга, можно начитить даже не модифицируя игру и не активируя редактор скриптов!

Не, ну есть альтернативный вариант - сделать внешний лоадер, этакий punkbuster X2 edition, который будет ловить артманьщиков и всяких прочих читеров. На всякого читера можно найти свой утюг, если долго заморачиваться.
А торговый и боевой рейтинг тоже можно начитить, причем той же артманькой Улыбка И "появить" объект на пустом месте без скриптов (та же функция вроде применяется и для добавки шмотья в трюм), и пр. и пр. Не зря же я все про отладчики толковал.

И поэтому остается только один вариант - внешний лоадер. Судя по всему, у автора темы времени уйма - вот пусть он и займется Улыбка (если, конечно, опыт есть).
_________________
Something's rotten in the state of Denmark.
    Добавлено: 17:58 13-07-2005   
violator666
 337 EGP


Нарушитель
Рейтинг канала: 1(1)
Репутация: 79
Сообщения: 1744
Откуда: Moscow (Мытищи)
Зарегистрирован: 19.09.2001
погодите вы глазами смотрели скрипт Логана ? запускаешь его - делается лог файл там вся собственность игрока и финансы.. все ет в бд вносится(кстати там нет анализа рейтингов) и на сайте у него простая статистика по основным показателям, а там читить можно и в игре и в этом логе пиши например на фабе денег девятки подрисовывай.. тут читерам делать нечего это не для них
_________________
Attention All Departing Pirates: Pilots have been seen in this sector
    Добавлено: 18:59 13-07-2005   
Kamizeka
 370 EGP


Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
violator666 :
а там читить можно и в игре и в этом логе пиши например на фабе денег девятки подрисовывай..

А что тогда толку в этой статистике? Понарисовал сколько хошь и вперед... Подозрение.
_________________
Something's rotten in the state of Denmark.
    Добавлено: 19:23 13-07-2005   
violator666
 337 EGP


Нарушитель
Рейтинг канала: 1(1)
Репутация: 79
Сообщения: 1744
Откуда: Moscow (Мытищи)
Зарегистрирован: 19.09.2001
ну правильно пара сотен человек так и сделали результат там на сайте Хы...
_________________
Attention All Departing Pirates: Pilots have been seen in this sector
    Добавлено: 19:30 13-07-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
dragonlord :
список товаров с мин. и макс. ценами, список кораблей и.т.д. формат произвольный. если кто-то может помочь - прошу в приват.

http://www.elite-games.ru/x2/ Здесь есть все что тебе может понадобиться.
dragonlord :
но руки чешутся написать лучше

Если руки чешуться, бери и пиши. Когда напишешь и будет тема для обсуждения, а предварительный опрос "надо-ненадо" это бессмыслица. Делелай то, что считаешь нужным и никого не слушай. Будет скрипт, тогда и будем обсуждать плюсы и минусы (все на собственном опыте проверенно).

Если нежна будет помощь обращайся, чем смогу помогу. Улыбка
_________________
Звезды зовут...
    Добавлено: 20:24 13-07-2005   
dragonlord
 





el-kamikaze :
И поэтому остается только один вариант - внешний лоадер.

поясни в чем идея, желательно поподробнее plz.

p.s. ну в принципе, если сильно подорваться, можно информацию снимать из памяти запущенного процесса x2. пойдет за античит? Хы...
    Добавлено: 10:46 14-07-2005   
dragonlord
 





DragonP :
Если руки чешуться, бери и пиши. Когда напишешь и будет тема для обсуждения, а предварительный опрос "надо-ненадо" это бессмыслица. Делелай то, что считаешь нужным и никого не слушай. Будет скрипт, тогда и будем обсуждать плюсы и минусы (все на собственном опыте проверенно).


ну, рад что хоть кто-то поддерживает идею. так и поступим. первая альфа, которая будет давать некоторое представление о концепте, будет где-то недели через 1.5-2. Что-то типа рабочей БД плюс общий вид интерфейса плюс первоначальное наполнение базы объектами (возможно, неполное). Импорта в этой версии не будет Хы...

кстати, делаю информацию обо всех объектах динамической. это позволит воспользоваться результатом любителям модов и по выходу X3. расы, рейтинги, сектора - тоже динамические (т.е. будет требоваться только слегка сменить инфу в базе для адаптации под конкретный случай).

DragonP :
Если нежна будет помощь обращайся, чем смогу помогу


Спасибо, принимается. В первом приближении это - бетатестинг и всякие ценные идеи. Улыбка
    Добавлено: 10:53 14-07-2005   
dragonlord
 





Кстати по поводу защиты от читерства. Дело в том, что задача эта в общем и целом сводится к теме "как создать абсолютно надежную систему, защищенную от взлома". Правильный ответ - никак. Можно затруднить взломщику/читеру жизнь до нецелесообразности проведения взлома. По этой причине на любых спортивных соревнованиях есть судьи, и эти судьи - люди, а не компьютеры, по крайней мере, последнее решение всегда за человеком.

На мой взгляд, прога может пригодиться людям, играющим самостоятельно и желающим получать более подробную информацию о положении дел в игре, чем сама игра наглядно может показать. Или для проведения турниров и ведения статистики с участием модераторов-людей.
    Добавлено: 11:07 14-07-2005   
Grey Wolf
 500 EGP


Рейтинг канала: 2(17)
Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
Что-то я видимо пропустил. Народ уже научился ковырять сэйвы? Подозрение.
В игре не убран 1 баг, позволяющий без всякой модификации и скриптов, делать за короткое время любые деньги. Хотя бы поэтому от читерства никак не защитишься.
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 12:23 14-07-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Grey Wolf :
Хотя бы поэтому от читерства никак не защитишься.

ИМХО даже пытататься бороться с читерами - пустая трата времени. Читерство - это личная проблема читера. Улыбка
_________________
Звезды зовут...
    Добавлено: 17:39 14-07-2005   
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.
    Добавлено: 17:43 14-07-2005   
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
    Добавлено: 19:13 14-07-2005   
dragonlord
 





Цитата:
Ну что, dragonlord, отпало желание писать такую систему?

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

По поводу античитов, лоадеров и прочего - это уже твоя идея Хы... Несколькими постами выше я писал, что работающая система уязвима по определению. (и дело тут, кста, совсем даже не в win32, и не такое ломали Хы...)

p.s. для внедрения в файл сейва сигнатуры достаточно перехватывать функции api. следить за памятью процесса и прочим бессмысленно, думаю, ты понимаешь, о чем я. Против человека с айсом все равно мало что помогает Хы... кроме того, можно было бы сейв вообще прозрачно шифровать, к примеру. Вот тут уже фиг ты его ковырнешь без знания алгоритма и ключа, то есть 99% не сможет этого сделать, пока какая-нибудь добрая душа не выпустит распаковщик, и все по новой.

p.p.s. а по поводу упомянутого тобой стиля программистов Egosoft, видного при дисассемблировании. Сорри, они там что, таблицу символов забыли или прямо на асме пишут? Гы-гы
    Добавлено: 10:38 15-07-2005   
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

[конец цитаты]

естественно, будет модифицироваться для увеличения функционала, тут явно не все.
    Добавлено: 10:56 15-07-2005   
Канал X2: The Threat: «скрипт "company value" и статистический анализ»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Склероз - это когда глядя на тему, мучительно пытаешься вспомнить, писал ты в нее или еще нет... (Pastor Schlagge)

  » скрипт "company value" и статистический анализ | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18