Похоже, что я разрешил таки свою проблему.
Если кому понадобится -
Примерно на 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