То что Вы увидели пустые сектора без маркера, но имеющие какой-то [код ЕСС]
Не какой-то код, а это именно сгенерированный код контрольной суммы для сектора полностью забитого этими FFFF FFFF FFFF FFFF.
Можно проследить, что он у всех секторов с такими данными одинаковый.
В некоторых местах отсутствует контрольная сумма, это потому, что сектор совсем не используется. Но если у пустого сектора есть контрольная сумма, значит, пусть даже он и пустой, но он используется и воспринимается, как часть реальных данных.
Это всё можно так же проследить в nand-dump-ах, где например IPL в конце заполнен пустыми блоками FFFF, но с контрольными суммами. И IPL дампится и пишется именно со всеми этими блоками. Однако, где данные идут без ECC, эта часть отрезается.
Ну я так понял задачки вы не решили )))
Yokel, отлично! Всё верно, у тебя первого получилось из непонятного кода извлечь читабельный код из песни Эминема
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.
Если даже просмотреть XOR в u8 или u32, то мы увидим тоже вроде читабельный код, но там сразу понятно по хаотичности данных, что это не верный код. Верный код мы видим именно в u16.
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,828
Вы сказали Спасибо: 825
Поблагодарили 3,959 раз(а) в 2,066 сообщениях
Сила репутации: 1
Репутация: 3959 
(репутация неоспорима)
Сообщение от ErikPshat
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.
Так и не понял почему. Если вдруг какой-то мусор поксорился в другой мусор, но для человека (подчеркну, не консоли/контроллера/etc) чуть более понятный - это не показатель. Данные хранятся "как есть" и ничуть не защищены ксором. Так что ничего расшифровывать и не стоило. Нужно подобрать только некий хэш (т.к. есс меньше данных). По ссылке с якобы алгоритмом есс просто пример использования оператора ксор, не более.
Yoti, согласен, что конечно там никакой защиты нет.
Но это служебный сектор и по моему единственный, поэтому там содержится всё - и VendorID и PendorID и MSID и серийный номер, а соответственно, как обычно бывает во всех независимых областях, Алфавит с циферками.
В данном случае, думаю это не случайный мусор, а вполне закономерные данные.
Вот эта область в реале:
Это не сказать бы, что случайность. Вдруг всплыл алфавит, а за ним символы скобок, наклонной черты, знака ксора, знака подчёркивания... И причём такое появляется именно с этими двумя байтами D1BF. Но если в этих байтах поменять хоть одну циферку, то мы уже увидим действительно неупорядоченный мусор. Поэтому считаю, что это преобразование над первыми 64 байтами происходит не случайно.
Думаю это матрица, которая может используется для восстановления данных.
Это аналогично тому, что такие матрицы есть, например в BMP. Там все цвета лежат отдельно в матрице, и на её основе строится изображение. Такая же матрица существет во многих других форматах, например в GIF, JPEG, RAR, ZIP.
На основе некой таблицы производится сжатие и восстановление информации.
Последний раз редактировалось ErikPshat; 18.11.2011 в 19:09.
думаю реверсить все алго ЕСС лишено смысла да это и понятно нужно выбрать 1 кролика и под него сделать пересчет ECC кому надо найдет кролика по описанию
P.S.
как раз начал смотреть где взять и какой тулчейн надо юзать под сборку дампера.
есть прога http://www.ice-graphics.com/ICEECC/IndexR.html ICE ECC, ее автор (по мылу) утверждает что она может с этой задачей справиться, у меня пока не получилось, может еще кто потыкает!?
НЕТ! После смены MSID ошибочными будут данные, а ECC валидный остается, по которому контроллер может восстановить старые данные!
Это с какой стороны посмотреть )))
Если сменить в секторе MSID, то ECC уже не будет соответствовать этому сектору, то есть, ECC уже будет не тот.
А если сменть ECC на не тот, то сектор не будет соответствовать ECC.
Таким образом, оригинальный ECC восстановит сектор к его прежнему значению.
Изменённый ECC восстановит сектор к тому значению, по мнению которого должна быть такая ECC.