Перейти к содержанию
  • записи
    3
  • комментариев
    0
  • просмотров
    4 209

CKM, или Creation Kit Mod


CKM, или (возможная расшифровка) Creation Kit Mod - "архив" от Беседки, созданный для "бандлинга" модов из Creation Kit в Воркшоп. Применялся ранее до введения системы платных модов, после файлы начали скачиваться "как есть", без каких либо архивов.
Очень примитивный формат. Открыв в HEX-редакторе, и немного включив мозг, можно понять, что к чему.

Первыми четырьмя байтами в архиве всегда записан размер BSA-архива в Little Endian формате (байты идут наоборот). Возможно, есть моды и без BSA в CKM. У меня таких нет, пока что. В таких случаях, скорее всего будет восемь нолей в HEX-представлении.



explorer_jNXwtA4yHV.png
Открытый в HEX-редакторе CKM, свойства записанного внутри BSA-архива и переведённый размер в HEX

При переводе берём за основу именно фактический размер (100 506 607 байт), а не тот, который в итоге на диске (100 507 648 байт).
Вводим число в калькулятор в режиме программиста, предварительно выбрав DEC, после тыкаем на HEX-режим. Добавляем ноль в начале, если кол-во знаков не кратно двум, получаем размер в HEX: 05 FD 9B EF.
Теперь переворачиваем: EF 9B FD 05. Видим полное совпадение. Значит первыми четырьмя байтами у нас действительно идёт размер BSA-архива. Странно, кстати, что заголовка у файла нет, ну да ладно...
Сразу после размера записан сам BSA, "как есть". Вообще без изменений. Без сжатия и вот этого всего. Видимо, решили не экономить на трафике. Печально, конечно.
Скипнем весь BSA, ведь нам известен размер (записан первыми четырьмя байтами). Идёт четыре нулевых байта (кстати, они идут, даже если BSA архива в файле нет (таки нашёл CKM без BSA)), и сразу начинается сам ESP/ESM. Видно по заголовку (TES4):


HxD_IddbSwvOBB.png
Всё, что идёт до красной черты - BSA + 4 нулевых байта (смещающие?). После - ESP.

Идёт сам файл плагина до конца файла. Т.е. как только поток закончился - всё, это конец ESP.
На коленке набросал на Шарпе класс, который принимает на вход:[list]
[*]Путь к файлу или поток с CKM.
[*]Путь к папке, куда надо распаковать.
[*]Имя мода (используется при формировании имён BSP и ESP-файла).
[/list]Можно посмотреть здесь. Возможно, как-нибудь сделаю и упаковщик, и оформлю в виде библиотеки в NuGet. Пока работает - и хрен с ним...

Для себя написал небольшую консольную утилитку, которая умеет распаковывать файлы, если:[list]
[*]Дропнуть файл на неё исполняемый (Drag'n'Drop);
[*]Передать аргументом запуска (можно не в кавычках, если пробелы; я не предусматривал наличие каких-либо иных аргументов);
[*]Просто запустить, ввести вручную или вставить в окно консоли путь к файлу.
[/list]Можно указать путь относительно бинарника. Сожрёт всё равно.
По предложению одного из форумчан в комментарии, публикую архив с ней. Писалось для себя, потому если возникнет какая-нибудь ошибка - отрапортует в консоли полностью все технические детали.
[sharedmedia="downloads:files:10360"]



MuIwRRxnPS.gif
Небольшая демонстрация

  • Нравится 2

6 Комментариев


Рекомендуемые комментарии

Пакость

Опубликовано

сделаю и упаковщик, и оформлю в виде библиотеки в NuGet
Лучше в виде библиотеки на Си, чтоб доступно было.

А вообще дельные статьи, отдельный респект за сей чудный разбор. И за тот тоже.
Одно но - картинки настоятельно-бы порекомендовать залить непосредственно на tesall, чтоб не отпали. Хотя они и сейчас толком не работают т. к. у kruzya.me https сервер кривой.

И ссылку на готовый анпакер хотелось бы. Прямую. (и опять-же желательно залить сюда, на Tesall, дабы не пропало)
  • Нравится 2
CrazyHackGUT

Опубликовано

07.01.2019 12:33:26, Пакость сказал(-а):

сделаю и упаковщик, и оформлю в виде библиотеки в NuGet
Лучше в виде библиотеки на Си, чтоб доступно было.

Можно и на Си, да. Так даже лучше будет, наверное.
Ох, придётся вспоминать, как с файлами работать)

07.01.2019 12:33:26, Пакость сказал(-а):

Одно но - картинки настоятельно-бы порекомендовать залить непосредственно на tesall, чтоб не отпали. Хотя они и сейчас толком не работают т. к. у kruzya.me https сервер кривой.

Перезалью. Когда-то давно, вроде, рекомендовалось вообще на Радикал и прочие файло-помойки заливать картинки. Хотя наверное путаю с другим форумом...

07.01.2019 12:33:26, Пакость сказал(-а):

И ссылку на готовый анпакер хотелось бы. Прямую. (и опять-же желательно залить сюда, на Tesall, дабы не пропало)

Ща упакую, залью тоже.
Пакость

Опубликовано

Когда-то давно, вроде, рекомендовалось вообще на Радикал
У нас тут форум на приличной 3й ИПбороде позволяющей файлы цеплять к постам. (правда да, в счёт разрешённого места на хранилище профиля) А для особо важного есть и раздел "Файлы" (кстати как по мне твой анпакер вполне достоин там отдельного места в категории Программы для Skyrim и "Host" для действительно важных картинок.
:)
CrazyHackGUT

Опубликовано

07.01.2019 12:52:51, Пакость сказал(-а):
А для действительно важных картинок в тексте у нас есть ещё и свой форумный имгхостинг Host (вот правда не знаю точно, доступен ли он сейчас просто пользователям. Но если тебе недоступен - я могу туда тебе залить.

К счастью, доступен. Уже залил на этом посте. Сейчас переливаю для другого касательно Стимовского API.

 

07.01.2019 12:52:51, Пакость сказал(-а):
У нас тут форум на приличной 3й ИПбороде позволяющей файлы цеплять к постам.

К постам в блоге - не вижу. Хотя может плохо смотрю, или спрятано :rolleyes:

Lord RZ

Опубликовано

К постам в блоге - не вижу. Хотя может плохо смотрю, или спрятано

 

Лучше и правда класть в Файлы, а потом через свою библиотеку вставлять красивую ссылку (надпись Мои файлы в редакторе).

[sharedmedia="downloads:files:9251"]
  • Нравится 1
CrazyHackGUT

Опубликовано

Загрузил в Файлы.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...