Перейти к содержимому

Фотография

Вопрос по mds файлам


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Andy_Scull

Andy_Scull
  • Старожилы
  • PipPipPipPipPip
  • Maidophile

  • Cообщений: 1 096
12
Обычный

Отправлено 26 Июнь 2009 - 08:29

Собственно, даже близкой темы я не нашел, так что извиняйте, создал новую

Ситуация
Есть mds+mdf образ диска. Я хочу в имя файла всунуть CRC32. Естественно, у mds и у mdf разные чексуммы, поэтому и имена будут разные.
Уже проверено - в некоторых mds, где имя mdf-файла прописано в самом конце, можно просто фаром вписать новое имя.
Но наткнулся тут на mds, где после текста "*.mdf" идут ещё метаданные, и вставление байт его убивает.

Так вот, вопрос -
Кто-нибудь знает, где что в нём надо поправить, чтобы можно было сделать как я хочу - прописать вручную имя mdf-файла внутри mds.
Имеется в виду - поправить какой-нить байт смещения или ещё что...

Сообщение отредактировал Andy_Scull: 26 Июнь 2009 - 08:29

  • 0

#2 niiro dzyaki

niiro dzyaki
  • Старожилы
  • PipPipPipPipPipPipPip
  • провокатор

  • Cообщений: 16 297
350
Маленький пони

Отправлено 26 Июнь 2009 - 09:05

Нескромный вопрос - а зачем? Положить рядом файлик с CRC не подходит? Или, как вариант, вообще в iso перегнать, там можно в сам файл md5-хэш прикрепить.
  • 0

#3 Andy_Scull

Andy_Scull
  • Старожилы
  • PipPipPipPipPip
  • Maidophile

  • Cообщений: 1 096
12
Обычный

Отправлено 26 Июнь 2009 - 10:16

Нескромный вопрос - а зачем? Положить рядом файлик с CRC не подходит? Или, как вариант, вообще в iso перегнать, там можно в сам файл md5-хэш прикрепить.

Потому что хочется иметь всё в самом файле, тем более есть прога Anime Checker, которой можно массово проверить crc'шки. Она берет как раз из имени файла.
Перегнать - исключается, есть риск что потом образ не будет браться игрушкой.

Как вариант решения (не самый изящный, но всё же) - может, кто-то подскажет программу, которая бы массово проверяла все .sfv и .md5 во всех поддиректориях?
(с поддержкой юникода, еснно)
  • 0

#4 Andy_Scull

Andy_Scull
  • Старожилы
  • PipPipPipPipPip
  • Maidophile

  • Cообщений: 1 096
12
Обычный

Отправлено 29 Июнь 2009 - 11:02

Похоже, что я разрешил таки свою проблему.
Если кому понадобится -
Примерно на 0x1E8 (мой случай) идет блок, где прописано имя мдф-ки (*.mdf).
Редактором вставляем байты и вписываем новое имя. После имени файла идут dword'ы, один из них - адрес следующего блока метаданных. Его надо исправить на новое значение, поскольку он абсолютный.
Выглядит это примерно так -
001E0: 00 00 00 00 00 00 00 00 31 00 31 00 2E 00 6D 00 <-- имя mdf
001F0: 64 00 66 00 00 00 01 00 00 00 FE 01 00 00 01 00
адрес следующего блока --------------------------^
И в начале файла (оффсет ~0x54) идет дворд адреса на соседний блок, его надо поправить на новое значение (адрес выше -4, помечен зеленым цветом).
Если коротко -
Если Х = адрес красного значения после исправления имени файла
ставим [ X ] = X + 4 (пишем туда адрес + 4, это будет оффсет второй единички)
ставим [ 0x54 ] = X - 4. (тот же самый адрес - 4, или оффсет первой единички)
Если в имени файла пробелы - кавычки не нужны.

Проверено только на одном образе, если где-то не сработает - пишите, мне будет интересно покопаться в вашем мдс.

//edit
И для второго варианта решения моей задачи - прога FileVerifier++. В ней есть команднострочная версия, которая может проверить все .md5/sfv/итп в поддиректориях.

Сообщение отредактировал Andy_Scull: 30 Июнь 2009 - 12:10

  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных