3DMark 1999 - 2011 [.RAS / .DAT]
#21
Отправлено 06 May 2005 - 17:19
Ну чтож, как появится у меня '05 так сразу отпишу что да как... Скорее всего на следующей неделе после праздников...
#22
Отправлено 07 May 2005 - 19:20
бился я с 05 ооочень долго, но так и не понял. xorил всем чем можно.
если там и xor, то не байтом а выражением, скорее всего.
и очень долго смеялся, когда узнал, что так легко открывается 03.
#23
Отправлено 11 May 2005 - 09:37
Цитата (CrOm @ 7.05.2005 - 23:20) |
ух, там понты. бился я с 05 ооочень долго, но так и не понял. xorил всем чем можно. если там и xor, то не байтом а выражением, скорее всего. и очень долго смеялся, когда узнал, что так легко открывается 03. |
Да уж разработчики намудрили с архивом
#24
Отправлено 11 May 2005 - 18:37
(*задумчиво чешет репу*)
Что-то я тоже лоханулся... Единственное что пока понял - так это то, что первые 8 байт во всех файлах одно и тоже и на них можно забить. Что насчёт ключа - он точно не байтовый. Байт от 0 до 255 я уже опробовал. Слово от 0..65535 - лениво... А уж и про двойное слово - и говорить не хочу... Разве что анализатор кода написать, чтобы в рашифрованном тексте искал ".dds"... Хм-гм... Пока что сравниваю файлы с '03 и смотрю чем отличаются. Есть там область пустых мест, где какой-нибудь байт в картинках часто повторяется. Нужно понять как он выглядит в оригинале - оттуда сразу как дважды-два выползает ключ... В теории. (*улыбается*) Ведь ключ ещё можно пошаговый сделать, а ещё не хорить, а в тупую применить какой-нибудь из существующий алгоритмов шифрования... RSA например. (*улыбается*) Хотя врядли они так заморачиваться будут...
#25
Отправлено 11 May 2005 - 20:30
1. Вычислить примерно место, где может быть множество нулей (по аналогии с предидущей версией). Если ключ XOR, он там себя проявит.
2. В старых версиях поискать что-то вроде размера файла. Зная, где он, посмотреть это место в проблемном архиве. Попробовать вычислить ключ таким образом.
#26
Отправлено 12 May 2005 - 17:27
Увы и ах! Я дурак-дураком прохорил всё на слово (2 байта), с анализатором, который искал в расшифрованном тексте ".tga", ".dds" - ничего не нашёл. Далее. Такая странная вещь наблюдается: есть офигенно здоровые поля, заполненные одним и тем же байтом. При попытке расшифровать всё на этот байт проявляется интересная штуковина: как файло было зашифрованным фуфлом, так оно им и остаётся. Я тут повозился, и у меня вкрадываются бо-о-ольше подозрения, что формат всё-таки не XOR'еный, а шифрованный, причём шифрование идёт байт->в->байт. Уж очень много косвенных признаков на это указывают. И ещё - форматы различаются. Во всяком случае, формат заголовка для '03-'04 был другим (тут вообще какие-то константные 8 байт (выше я о них уже говорил)). В старом формате, первые четыре байта шла какая-то туфта, а затем размер заголовка.
Хм... Вот такие тараканы. У меня сейчас нету времени, так что не знаю, когда я ещё за него возьмусь.
#28
Отправлено 12 May 2005 - 20:50
а какой xor?
#29
Отправлено 12 May 2005 - 21:08
все я понял как там кодируются файлы. там действительно xor
VAG молодец, спасибо тебе. осталось теперь это к Mr.Ripper приделать.
#30
Отправлено 12 May 2005 - 21:15
#31
Отправлено 13 May 2005 - 17:47
Цитата (Terminus @ 13.05.2005 - 01:15) |
Рискну предположить, что в качестве XOR'а для байта N берется результат XOR'а N-1 . Это бы объяснило поля из одинаковых значений... |
риск оправдан, но не верен.
там все намного проще. надо после xora еще кое-что сделать.
#32
Отправлено 13 May 2005 - 18:49
http://vovan.dankov....addon0_20a6.zip
еще раз спасибо VAG'у за подсказку. без него этот апдейт бы затянулся на неопределенный срок.
#33
Отправлено 13 May 2005 - 18:50
Я сегодня дурак какой-то! Скажите как он кодируется-то?! Очень интересно!!!
Заранее благодарен.
#34
Отправлено 13 May 2005 - 18:55
там прикол в том, что после xor 0xAD надо еще поменять местами полубайты.
т.е. было 0xBA надо 0xAB. вообщем я надеюсь ты понял
#35
Отправлено 13 May 2005 - 19:04
Это же долбануться можно, что они с байтом делают!
Всё - понял.
Респект всем, кто догадался до меня - вы просто мега-мозги, раз сразу догадались (*улыбается*).
Добавленно:
CrOm!
Я уже сам допёр. (*улыбается*) Всё-равно спасибо!
Там ROL или ROR делается - неважно. На языке Pascal чтобы не заморачиваться с функцией, проще сделать такой финт ушами:
Код |
B:=A[I]; Asm rol B, 4 End; A[I]:=B; |
#36
Отправлено 13 May 2005 - 19:09
#37
Отправлено 13 May 2005 - 19:27
#38
Отправлено 14 May 2005 - 03:15
Вышла фигня с этими архивами. Суть проблемы: в файлах patch1.dat и sponsored.dat оглавление начинается с 9-го байта, а в 3DMark05.dat с 10-го! Это что за жестокий прикол такой? И как узнать сколько файлов в архиве??? Пришлось страдать такой фигнёй: складывать размер файлов, по мере прохождения заголовка, и если суммарный размер всех файлов, которые я уже прошёл + текущая позиция в файле (размер заголовка) оказывались >= размеру файла, то заголовок, будем считать, кончился. Это не проблема... Поблема всё ещё в этих 9-ти (10-ти) байтах. Вот как узнать когда сколько скипать??? Сейчас в тупую сделал - проверкой: если размер файла больше 100 метров - значит пропускать 10 байт, иначе 9. Хотелось бы знать точно, чтобы если этот формат останется в '06, то не приходилось переписывать...
Ну и совсем маленькое дополнение на последок:
Function Un05(BT: Byte): Byte; Assembler; Asm mov al, BT xor al, 0ADh rol al, 4 End;Вызываем:
A[I]:=Un05(A[I]);
Получаем расшифрованный байт.
Распаковщик можно взять здесь: 3DMark2005 / 3DMark2006 unpacker.
P.S. credits.ogg из 3DMark05.dat - это, оказывается, Poets Of The Fall - "Lift" ( http://www.poetsofthefall.com/ ) Тащусь. (*улыбается*)
#39
Отправлено 13 January 2009 - 17:31
#40
Отправлено 13 January 2009 - 21:08
На данный момент - никак. Утилит понимающих эти архивы нет. Дело в том, что там используется RAS-формат, а распространённая утилита RasMaker от Max Payne ругается на эти архивы примерно так:
Попытка обойти проверку заломав программу ни к чему, кроме падения с фатальной ошибкой, не приводит - там что-то сильно изменили в формате.Reading archive Testdata.ras...
Error: Archive "Testdata.ras" version is 1.00, expected version 1.20
Могу сказать, что в 3DMark2000, как в и Max Payne, RAS-архивы - это просто куча файлов дописанных в хвост друг к другу, а заголовок архива (где хранится информация об имени файлов, их размерах и смещении) просто зашифрован. Но т.к. сами тела файлов не шифруются, то их можно достать при помощи каких-нибудь файловых парсеров/сканеров. Как дела обстоят с 2001 не помню (давно очень его формат смотрел), но там что-то похожее.