|
|
|
Канал X4: Foundations »
Модовый и скриптовый отсек X4: Foundations: «Ковыряем движок и всё такое» |
|
|
Kyoryukun 50 EGP Репутация: 0 Сообщения: 2
Зарегистрирован: 22.07.2016 |
|
Вопросец для тех, кто шарит. Разрабы на реддите писали, что максимальный размер для "плота" (участка под строительство станции) может быть 10x10x10 км, иначе игра сломается, потому что корабли не смогут в пасфайндинге. Потом, правда, они эти параметры увеличили в 2 раза, то бишь до 20x20x20 км. Вот у меня в связи с этим назрел вопрос: можно ли эти параметры ещё увеличить и если можно, то насколько?
|
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
HikeR : |
4) если всё OK, идём дальше
|
Не-а, Verification Failure говорит
Код: |
openssl dgst -sha512 -verify public.key -signature save.sig save.xml
Verification Failure |
Делал все строго по инструкции.
Есть предположение что-то не то с кодировками этих охраняемых/сравниваемых файлов. В cmd ставил 866 или 65001, результат все равно "Verification Failure".
Пробовал по-всякоиму: пересохранять все эти файлы (save.sig, save.xml, signature.b64) и в 866 и в 65001 (UTF-8) вреучную - не работает.
Ну и на всякий случай: ось - Win7x64 рус.
чяднт?
Последний раз редактировалось: Shadowman (14:41 03-12-2018), всего редактировалось 2 раз(а) |
|
|
RAMI 330 EGP
Репутация: 82 Сообщения: 2538 Откуда: Центральная Россия Зарегистрирован: 16.11.2005 |
|
А чем редактировал? Возможно там в файлах изначально нет перевода каретки (линуховый вариант), а при сохранении из под винды он появляется или наоборот. Это просто мысль, не утверждение.
_________________ В действительности всё иначе, чем на самом деле... |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
AkelPad. нормально он с кодировками обращается, проверено.
Что открывал, то и сохраняет.
Еще подумал - может, не те версии openssl и base64 взял.
Всебрал с sourceforge:
OpenSSL: 1.0.2c 12 Jun 2015
base64: 0.94.00, Thu Oct 29 01:36:00 2015, ANSI-SOURCE C
Я тут не сильно ориентируююсь. Может, подскажете, где виндовые бинарники взять. А то что-то на оффсайте openssl только исходники под компиляцию.
Последний раз редактировалось: Shadowman (14:54 03-12-2018), всего редактировалось 1 раз |
|
|
RAMI 330 EGP
Репутация: 82 Сообщения: 2538 Откуда: Центральная Россия Зарегистрирован: 16.11.2005 |
|
А если ничего не изменять и заново попробовать подписать, получится ли?
_________________ В действительности всё иначе, чем на самом деле... |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
В смысле, начать с конца? Легко.
после
Код: |
base64 -w0 new_save.sig > new_save.b64 |
имеем в файле new_save.b64 такое:
b64:001:Syntax Error -- check help (-h) for usage.
посмотрел help. Оказалось, такая строка правильная:
Код: |
base64 -e new_save.sig > new_save.b64 |
(так что как минимум бинарник base64 у меня не тот, что у автора).
Полученное на выходе (new_save.b64) похоже на то, что было в сейве в тэге сигнатуры.
Но прямо сейчас посмотреть в игре не могу, что она скажет на новый сейв, т.к. на работе видика с вулканом не имеется.
|
|
|
RAMI 330 EGP
Репутация: 82 Сообщения: 2538 Откуда: Центральная Россия Зарегистрирован: 16.11.2005 |
|
Shadowman : |
так что как минимум бинарник base64 у меня не тот, что у автора
|
Да есть такая беда линуховых/фряшных утилит где у одной версии одни параметры, у другой другие (одна линуховая изначально, другая например фряшная изначально). Думаю надо за правило взять указывать версию используемого софта.
_________________ В действительности всё иначе, чем на самом деле...
Последний раз редактировалось: RAMI (15:30 03-12-2018), всего редактировалось 1 раз |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
Shadowman : |
base64: 0.94.00, Thu Oct 29 01:36:00 2015, ANSI-SOURCE C
|
Походу, при исходнике new_save.sig в кодировке 866 на выход тулза выдает new_save.b64 в 1251, которая в сейв вписывается ракообразно (с концами строк как минимум не к месту).
Так что, очень похоже, что base64 и косячит.
|
|
|
RAMI 330 EGP
Репутация: 82 Сообщения: 2538 Откуда: Центральная Россия Зарегистрирован: 16.11.2005 |
|
Shadowman : |
Походу, при исходнике new_save.sig в кодировке 866 на выход тулза выдает new_save.b64 в 1251, которая в сейв вписывается ракообразно (с концами строк как минимум не к месту).
Так что, очень похоже, что base64 и косячит.
|
А если поставить cygwin и в нем установить openssl?
_________________ В действительности всё иначе, чем на самом деле... |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
Та че уже там, линух поставить, да и все
Не-е-т, не наш метод, винды еще попыхтят.
Значит, вот что можно проделать:
1. Вместо
base64 -d signature.b64 > save.sig
пишем
Код: |
certutil -decode signature.b64 save.sig |
после этого уже проходит проверку
Код: |
openssl dgst -sha512 -verify public.key -signature save.sig save.xml
Verified OK |
А потом вместо
base64 -w0 new_save.sig > new_save.b64
будет
Код: |
certutil -encode new_save.sig tmp.b64 && findstr /v /c:- tmp.b64 > new_save.b64 |
Т.е. как минимум от утилы base64 просто уходим (certutil стандартная в виндах).
А дальше надо чуток руками допилить (то же наблюдалось и для base64, кстати). Конечный файлик new_save.b64 взять убрать переносы строк и сохранить.
И что-то мне подсказывает, что алгоритм верен, т.к. наша новая подпись - байт в байт той же длины, что и исходная из сейва.
Но как грузиться будет в игру - пока непонятно, только дома смогу проверить.
ЗЫ: я бы не заморачивался только ради того чтобы деньги править. Но редактировать сейв без получения статуса "modified" в конечном итоге, мне кажется, того стоит.
добавлено спустя 5 минут:
Kyoryukun : |
в связи с этим назрел вопрос: можно ли эти параметры ещё увеличить и если можно, то насколько?
|
Вопрос, наверное, будет самое то, не побоюсь этого слова, запостить на форум Egosoft.
Последний раз редактировалось: Shadowman (16:58 03-12-2018), всего редактировалось 1 раз |
|
|
HikeR 145 EGP
Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005 |
|
по поводу base64 и иже с ними.
в виндовом коммандном шелле (cmd.exe) любой перевод строки при работе с перенаправлением вывода на самом деле записывает именно виндовый перевод строки (\x0D\0xA), даже если в потоке встретился случайный символ \x0A.
в сохранениях используется никсовый перевод строки (\x0A).
ключ -w0 у утилиты base как раз таки использован для получения целой строки без переносов (по умолчанию там на 76 символе вроде вставляется перенос), также как и в сейве.
а еще base64 кодирование/декодирование можно делать средствами самого openssl без перенаправлений:
Код: |
$ echo "X4 Foundation" > file.txt
...
$ openssl openssl enc -base64 -in file.txt -out file.b64
$ cat file.b64
WDQgRm91bmRhdGlvbgo=
$ openssl enc -base64 -d -in file.b64 -out file2.txt
$ cat file2.txt
X4 Foundation
|
но главное, что смысл действия получилось донести, а дальше, полагаю, кто-нить соорудит автоматический парсер и подписыватель сейва с драг-н-дропом.
если у кого Win10, то лучше установить WSL.
p.s.
на самом деле самое главное выдрать из сейва теги signature. при переподписывании же будет вообще пофиг на переводы строк и прочая, xml в любом виде будет принят лишь бы он был подписан. а перед подписью хоть через любой beautifier xml-ку прогонять можно.
Последний раз редактировалось: HikeR (18:46 03-12-2018), всего редактировалось 1 раз |
|
|
TechCat 100 EGP
Репутация: 25 Сообщения: 328
Зарегистрирован: 20.02.2006 |
|
HikeR : |
ну, будут как в X2 собственноручно подписывать избранные моды, которые, по их мнению, не меняют баланс.
с другой стороны, организовать онлайн-подпись модов при их загрузке в мастерскую через свою утилиту не передавая приватный ключ пользователю легче лёгкого.
с третьей стороны, тогда зачем было огород городить...
|
Они так сделали, поскольку обещали вернуть сервер с статистикой игры пользователей. Что бы рейтинг был. Ввели не сразу, либо для начало надо им хаки закрыть. Вот вы нарелизите подписанных модов — егософт и не будет его делать.
_________________ CMDR TechCat, Виконт Империи |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
Проверил. Измененный и подписанный сейв загружается, подписывание не прокатывает. Надпись "Модифицировано" имеет место быть. Модов не устанавливал.
Причем, все делается корректно, т.к. пересоздание подписи для неизмененнго сейва выдало абсолютно идентичный оригинальному по наполнению тэг signature.
Сейв грузил неупакованным и время/дату создания файла выставлял в точности по файлу, который редактировался.
Потом даже попробовал всего заменить байты (без измениния размера) - все равно "Модифицировано".
|
|
|
TechCat 100 EGP
Репутация: 25 Сообщения: 328
Зарегистрирован: 20.02.2006 |
|
А если вернуть оригинальный пропадает?
_________________ CMDR TechCat, Виконт Империи |
|
|
HikeR 145 EGP
Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005 |
|
Shadowman : |
сейв загружается, подписывание не прокатывает. Надпись "Модифицировано" имеет место быть.
|
вариант 1: сейв битый, был записан в то время, когда игрок нажимал кнопки (официально подтвержденный баг !).
вариант 2: вы всё делаете неправильно закиньте куда-нить оригинальный и измененный сейв, проверю. кстати, в uidata.xml ничего подозрительного нет?
вариант 3: я все делаю неправильно. я писал и проверял ещё на первой версии игры, а в 1.10 могли что-то подправить.
|
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
TechCat : |
А если вернуть оригинальный пропадает?
|
Да.
HikeR : |
вариант 1: сейв битый, был записан в то время, когда игрок нажимал кнопки (официально подтвержденный баг !).
|
Был бы битый, неправленый файл был бы также modified
HikeR : |
закиньте куда-нить оригинальный и измененный сейв, проверю. кстати, в uidata.xml ничего подозрительного нет?
|
Не вопрос (кликните здесь для просмотра)
|
Походу, игра уже версии 1.20.
|
|
|
HikeR 145 EGP
Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005 |
|
про шрифты.
следуя моде и прогрессу разработчики добрались до SDF-шрифтов. штуку эту лет 10 назад придумала(?), описала и использоовала Valve в своём TF2, затем подтянулись мобильные девелоперы, ну и немцы, наконец.
плюсов море. вместо множества текстур под каждый размер шрифта (в XR для русского языка их было чуть не под 100 метров) используется одна специально подготовленная текстура небольшого размера и простенький шейдер. последний выдает практически идеальные контрастные контуры символов, букв, цифры, иконок и чего угодно в очень широком диапазоне размеров.
минусов всего пара. всё это работает только с довольно простыми контурами (алфавит в это дело входит) и приемлимый результат можно получить либо для очень мелких объектов, либо для крупных.
теперь о реализации. в списке лицензий увидел библиотеку STB, (Sean's Tool Box), в которую как раз есть фича render glyphs to one-channel SDF bitmaps. однако как я не пытался подобрать нужные параметры, на результат немцев он походил очень слабо. перепробовал порядочную кучку других утилит, дошло до того, что самостоятельно считал этот самый distance field.
вот оригинальный символ решётки, мой самый лучший результат (увеличено в 4 раза, шрифт Cuprum) и как это выглядит в ноутбучном разрешении с масштабом UI 150%:
основной шрифт, конечно, ни к чёрту, но крупные заголовки, имхо, выглядят пристойно. и что-то надо делать с хинтингом.
да, нафига это нужно. когда в XR весь мир играл с приятным Zekton нам дали что-то несуразное. теперь весь мир пользует Arial (или какой-то другой sans serif), а до нас наконец дошел профессиональный, локализованный, но всё-таки Zekton (читай футуристический шрифт), который теперь вообще ни к месту.
к слову, не откажусь от намёков на какие-то готовые тулзы, выдающие подобный результат.
p.s.
с другой стороны, в больших разрешениях выглядит не так погано:
Последний раз редактировалось: HikeR (22:09 03-12-2018), всего редактировалось 3 раз(а) |
|
|
alexenin 50 EGP Репутация: 0 Сообщения: 18
Зарегистрирован: 30.11.2018 |
|
Парни, а thereshallbewings здесь зашит?
|
|
|
HikeR 145 EGP
Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005 |
|
Shadowman : |
Не вопрос (кликните здесь для просмотра)
оригинал
правка
uidata.xml
|
блин, копался со шрифтами игра обновилась до 1.2, пришлось искать и качать 1.10. итог — всё нормально с вашим сейвом, подписывается и принимается без modified. смотрите в diff-е вашу ошибку — https://pastebin.com/UszrEtkj , вы не во всех местах изменили циферки
а вот 1.20 у меня теперь вообще не запускается, дальше проверяйте сами.
alexenin : |
а thereshallbewings здесь зашит?
|
в экзешнике такая строка есть.
Последний раз редактировалось: HikeR (23:14 03-12-2018), всего редактировалось 1 раз |
|
|
Shadowman 265 EGP
Рейтинг канала: 3(31) Репутация: 42 Сообщения: 1392 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003 |
|
HikeR : |
смотрите в diff-е вашу ошибку
|
Это разве моя ошибка? Это ж новая закладка ES
HikeR : |
ключ -w0 у утилиты base как раз таки использован для получения целой строки без переносов
|
Вот потому я и указал выше
Shadowman : |
base64: 0.94.00, Thu Oct 29 01:36:00 2015, ANSI-SOURCE C
|
Не понимает она такого ключа. И похожего не имеет.
Хотя, это уже неважно.
upd:
Ну, вобщем, 1.10 уже нет - стим скачал и поставил 1.20 сразу при старте еще до моего пердыдущего поста.
А на 1.20 те 5 мест отредактировал, подпись прикрутил и снова получил modified при загрузке. Они там либо еще в паре мест закладочки сделали, либо ключ поменяли, либо хз что еще.
Вероятно, надо пробовать просто менять байтик не в таком "наблюдаемом" ЕГ месте. Глядишь, и получится. Как-то и не подумал даже сразу...
Напр., количество какой-нибудь хрени в трюме.
Но эксперимент смогу провести только вечером.
Последний раз редактировалось: Shadowman (17:23 04-12-2018), всего редактировалось 2 раз(а) |
|
|
|
|
|
Канал X4: Foundations ->
Модовый и скриптовый отсек X4: Foundations: «Ковыряем движок и всё такое» |
|