|
|
|
Канал X4: Foundations »
Модовый и скриптовый отсек X4: Foundations: «Ковыряем движок и всё такое» |
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
ну что, привет абсолютно все подписанные файлы и некрасивая надпись "modified".
про ключи
так как игра должна работать в оффлайне, то все необходимые ключи должны быть такие же локальные. если прошерстить экзешник на предмет фраз "BEGIN RSA PRIVATE KEY" и "BEGIN PUBLIC KEY", то быстро обнаружим один приватный и пару публичных RSA-ключей. один публичный ключ соответствует приватному, второй нет. приватный ключ запаролен, однако passphrase (16 символов) лежит чуть выше ключа и легко обнаруживается при шестнадцатеричном просмотре.
что можно с этим сделать. для начала можно убрать пароль, чтобы при экспериментах не париться:
Код: |
$openssl rsa -in private.key -out private.key.nopass |
затем получить публичный ключ (для сравнения с имеющимся, например):
Код: |
$openssl rsa -in private.key.nopass -pubout > public.key |
теперь можно самостоятельно подписывать дайджесты для файлов (для примера взял 0002-L007.xml из каталога t):
Код: |
$openssl dgst -sha256 -sign private.key.nopass -out 0002-L007.xml.new.sig 0002-L007.xml |
на этом случился тормоз, ибо полученный дайджест не совпал с оригинальным 0002-L007.xml.sig. либо используется не sha256, либо приватный ключ от чего-то другого, либо подпись выполнена при помощи сертификата, который пока не обнаружен.
такой же облом при попытке проверить дайджест имеющимися публичными ключами:
Код: |
$openssl dgst -sha256 -verify public.key -signature 0002-L007.xml.sig 0002-L007.xml
Verification Failure |
про "новые" *_sig.(cat|dat)
с обычными cat|dat без проблем работают все известные утилиты. а вот в новых что-то с чем-то. для примера взял 09_sig, он содержит 377 дайджестов по 1 Кб, для русского и английского по 34 штуки.
предполагаю, что это подписи не для всего файла, а для множеста его "кусков". однако для русского файлика размером 2879421 байт 34 "куска" дают ~84688 байт на каждый, что ни разу не похоже на кратные степени двойки числа.
ещё наблюдение, если отсортировать дайджесты по дате (третий элемент - unixtime в cat-файле), то для 0001-L007.xml получается вот такая фигня:
Cкрытый текст (кликните здесь для просмотра)
2018-11-14 10:42:42
2018-11-14 13:14:30
2018-11-14 18:23:52
2018-11-15 00:12:24
2018-11-15 12:20:29
2018-11-16 10:29:24
2018-11-16 12:43:48
2018-11-16 18:08:37
2018-11-16 21:07:07
2018-11-17 16:53:01
2018-11-19 18:29:37
2018-11-20 10:50:28
2018-11-20 18:14:51
2018-11-21 18:58:05
2018-11-22 00:27:53
2018-11-22 16:47:05
2018-11-22 18:28:43
2018-11-23 11:52:25
2018-11-23 13:25:59
2018-11-23 14:42:42
2018-11-23 16:37:55
2018-11-23 21:41:34
2018-11-23 23:40:25
2018-11-24 14:54:12
2018-11-27 01:27:38
2018-11-27 02:57:49
2018-11-27 11:14:37
2018-11-27 20:26:10
2018-11-28 13:26:17
2018-11-28 14:08:29
2018-11-28 18:18:11
2018-11-29 00:23:14
2018-11-29 17:16:17
2018-11-30 12:06:01
|
может это даты изменений конкретного файла, но на фига хранить их я не понял.
так как игра вполне себе принимает распакованные файлы, то вопрос пока что один: где бы раздобыть нужные ключи/сертификаты, не дожидаясь, пока "самая дружественная к моддерам контора" не выдаст новые X4 Foundation Tools.
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
Взял 1 кат открыл программой X Rebirth Tools - v. 1.10 и все распаковал как обычный так и сигнатурный 4 гига обычный 44 метра сигнатурный.
Cкрытый текст (кликните здесь для просмотра)
|
Структура внутренняя, как и у хребта.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (22:33 30-11-2018), всего редактировалось 2 раз(а) |
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
речь о том, что уже в 01_sig.cat over9000 повторений. если алгоритм работы с архивами не менялся, то актуальна только последняя запись, поэтому XRTools и не спотыкается. но зачем в одном каталоге держать несколько дайджестов?
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
Деньги через сейв как и в хребте добавить можно ))
Cкрытый текст (кликните здесь для просмотра)
|
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (23:24 30-11-2018), всего редактировалось 1 раз |
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
прогресс:
Код: |
$openssl dgst -sha512 -verify public2.key -signature 0002-L007.xml.sig 0002-L007.xml
Verified OK
$openssl dgst -sha512 -verify public2.key -signature 0002-L044.xml.sig 0002-L044.xml
Verified OK |
дайджест используется SHA512, публичный ключ второй, для которого нет приватного ключа
|
|
|
egornov.ivan
-36 EGP Репутация: -5 Сообщения: 61 Заблокирован Откуда: Блинолопатная скотоублюдия Зарегистрирован: 26.04.2017
 |
|
Признавайтесь кто обидел EGOSOFT что они на локализацию подпись повесили?
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
Это что бы не расслаблялись)) И они же обещали упростить в разы моддинг в Х4, вот и упростили
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите.... |
|
|
egornov.ivan
-36 EGP Репутация: -5 Сообщения: 61 Заблокирован Откуда: Блинолопатная скотоублюдия Зарегистрирован: 26.04.2017
 |
|
Моды и так уже можно клепать, а вот оригинальные файлы уже не подправить
|
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
честно говоря, я бы понял все эти подписи если хотя бы ачивки в стиме перестали работать. ан нет, modified присутствует, но прохождение лётной школы и пролёт через аномалию засчитали.
к слову, сейвы тоже подписаны, но для них что-то не выходит проверить подпись. может кто знает, что именно является критичным, физическое содержание файла между тегами savegame или его некое бинарное представление внутри игры после загрузки?
|
|
|
eliseeff
268 EGP
      Рейтинг канала: 2(21) Репутация: 5 Сообщения: 932
Зарегистрирован: 07.03.2015
 |
|
alexalsp : |
Это что бы не расслаблялись)) И они же обещали упростить в разы моддинг в Х4, вот и упростили
|
А в чем проблема для моддинга? Они не моддерам жизнь усложнили, а упростили себе. Теперь хоть что в игре поменяй - вот тебе и модифайд. И техподдержка тебя сразу шлет ннна...
Собственно, я их понимаю. А уж ты, с твоим опытом, должен еще больше быть в курсе, что если кто на что-то жалуется - хрен он признается, что сам виноват. Ну, у меня же всего навсего пицод модов стоит и они никак не могли вызвать ЭТУ мою проблему... И даже когда я из них два отключил, проблема осталась...
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
А где пишется модифед в игре или в стиме ? Скринаесть у кого.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите.... |
|
|
eliseeff
268 EGP
      Рейтинг канала: 2(21) Репутация: 5 Сообщения: 932
Зарегистрирован: 07.03.2015
 |
|
alexalsp : |
А где пишется модифед в игре или в стиме ? Скринаесть у кого.
|
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
и так сделал тестовый микро мод, все работает за исключением только одного
Cкрытый текст (кликните здесь для просмотра)
|
Код: |
[General] 0.00 ======================================
[=ERROR=] 0.00 File I/O: Could not find file '.\extensions\alexalsp_add_money\md\add_money.xml.sig'
[General] 0.00 ======================================
[General] 0.00 File I/O: Failed to verify the file signature for file '.\extensions\alexalsp_add_money\md\add_money.xml' (error: 14)
[General] 458.34 ======================================
|
Кто в курсе как их делать ? *.sig По ходу они теперь требуются к каждому долбанному файлу .
Мож кто то програмку впилит что бы это делало , я хз ни когда с этим не сталкивался , сиги , биги, Мария Магдалена ....
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (22:45 01-12-2018), всего редактировалось 6 раз(а) |
|
|
egornov.ivan
-36 EGP Репутация: -5 Сообщения: 61 Заблокирован Откуда: Блинолопатная скотоублюдия Зарегистрирован: 26.04.2017
 |
|
alexalsp : |
Кто в курсе как их делать ? *.sig
|
Это по сути цифровая подпись на файл, ключ для подписи есть только у егософтов и гдето в екзешнике. Чуть выше HikeR пишет что куча непоняток с этими ключами
|
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
на оффоруме уже лежит сейв с 999 910 000 деньгами (если больше миллиарда, то с ачивками какая-то беда). подпись у сейва валидная, то есть modified не возникает, но получена она скорее всего через какую-нить артмани (в игре похакали денежный счёт и сохранились).
чтобы самостоятельно подписать измененённые файлы нужен приватный ключ, а он недоступен. про "взломать" 8192-битный RSA можно даже и не мечтать лет сто.
p.s.
АНБ, по слухам, умеет ломать 4096-битные ключи, а немцы, походу, решили и им насолить.
egornov.ivan : |
куча непоняток
|
не, сейчас уже понятно, что один публичный ключ встроен для проверки дайджестов (подписей), а пара из приватного/публичного скорее всего нужна для шифрования отправляемой статистики и дампов.
то есть можно сгенерировать свой собственный RSA-ключ, заменить в экзешнике публичный ключ, распаковать и переподписать абсолютно все файлы в игре. имхо, черезчур запарно.
Последний раз редактировалось: HikeR (23:25 01-12-2018), всего редактировалось 1 раз |
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
Так получается что в логе теперь из за этого накаждый мод, малотого, что модифид да еще тона строк на 1000 модовых файлов о том что нет SIG ?
Что у них с головой. ?
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите.... |
|
|
egornov.ivan
-36 EGP Репутация: -5 Сообщения: 61 Заблокирован Откуда: Блинолопатная скотоублюдия Зарегистрирован: 26.04.2017
 |
|
alexalsp : |
да еще тона строк
|
Ну тут видимо придется ждать воркшопа в стиме
HikeR : |
публичный ключ встроен для проверки дайджестов
|
Вот теперь дощло, примерно как пакеты в линупсах проверяются
Последний раз редактировалось: egornov.ivan (23:45 01-12-2018), всего редактировалось 1 раз |
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
из сегодняшнего патча, в скриптах интерфейса:
Код: |
icon = string.format("\027#FF%02x%02x%02x#", iconcolor.r, iconcolor.g, iconcolor.b) .. "\027[workshop_error]\027X" |
и такого добра там, оказывается, куда ни плюнь. при том что каждый начинающий Lua-программист первым делом учится понимать, что в Lua все строки неизменяемы, операция конкатенации строк очень затратная и есть куча способов этого избежать.
зла не хватает. в одном месте насчитал аж 18 конкатенаций строк по несколько байт...
|
|
|
alexalsp
521 EGP
      Рейтинг канала: 5(215) Репутация: 56 Сообщения: 4559
Зарегистрирован: 12.08.2014
 |
|
даже сжав в кат/дат выдает ошибку на отсутствие sig фала к файлам мода. думаю тут и воркшоп не поможет . По ходу им надо эти подписки отрубить для папки модов, а то бред получается . Если есть мод в папке , пиши модифицировано но подписи к модам это уже странно.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Пользуйте мои моды как хотите.... |
|
|
HikeR
145 EGP
   Рейтинг канала: 2(24) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
ну, будут как в X2 собственноручно подписывать избранные моды, которые, по их мнению, не меняют баланс.
с другой стороны, организовать онлайн-подпись модов при их загрузке в мастерскую через свою утилиту не передавая приватный ключ пользователю легче лёгкого.
с третьей стороны, тогда зачем было огород городить...
|
|
|
|
|
|
Канал X4: Foundations ->
Модовый и скриптовый отсек X4: Foundations: «Ковыряем движок и всё такое» |
|