PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Pandora (unbricker/downgrader) для PSP-200X TA-088v3 (https://www.pspx.ru/forum/showthread.php?t=92433)

frostegater 30.10.2011 09:03

ErikPshat, дык, давай просчитать попробуем. Дай ка мне секторок с родным msid и его хешик. Всё отдельно, секторок без избыточного кода и только его! и хешик тоже отдельно в первоначальном виде.

ErikPshat 30.10.2011 10:29

Цитата:

Сообщение от Frostegater (Сообщение 986763)
Всё отдельно, секторок без избыточного кода и только его! и хешик тоже отдельно в первоначальном виде.

Ты не можешь отличить обычный Сектор от ECC (избыточного кода)?
Каждый сектор в RAW идёт по формуле 512+16.

Когда мы подключаем карту по USB, то контроллёр эти 16 байт ECC не выдаёт, а даёт файл по порядку 512+512+512+... .
А в сыром дампе мы видим не только 512 байт сектора, но и котрольную сумму у каждого сектора.
То есть, мы считываем сырой RAW-дамп программатором напрямую с микросхемы памяти, минуя контроллёр.
Если в дампе присутствуют FFFFFFFF и через каждые 512 байт отсутствует контрольная сумма, значит это место просто пустое, а на пустое место ECC не рассчитывается.

Короче, скачай вот этот мой дамп: https://www.pspx.ru/forum/showpost.ph...&postcount=244

Вложи его во вложение, потому что я сам не могу его скачать оттуда, постоянно крутится индикатор загрузки и всё тут.

А я тебе выложу скрин, чтобы наглядно показать строение дампа.

frostegater 30.10.2011 10:49

Вложений: 1
...

ErikPshat 30.10.2011 11:48

Ну вот, думаю посмотрев на картинку ты всё-таки сумеешь в хексе отсчитать 512 байт и увидеть 16 байт ECC в конце каждого сектора :D
0x200 + 0x10

Нужно вычислить/найти алгоритм подсчёта этой контрольной суммы на сектор.

Собственно там первые 4 байта указывают на порядковый номер блока, к которому относятся сектора.
Все сектора одного блока имеют этот номер одинаковый.
Блок не может быть разделимым, т.е. не может полблока находиться в одном месте, а другая часть в другом. Он всегда пишется непрерывно.

После 4-ёх байт, ещё идут 2 байта FFFF
Остальные 10 байт и есть контролка.

Скриншот
[IMG]http://img812.**************/img812/4350/dumpmsidraw.png[/IMG]

Можно поступить по другому:
  1. Отпаять память.
  2. Снять дамп.
  3. Сохранить сектор 512 байт с изменённым MSID, без контролки, в бинарный файл.
  4. Припаять микросхему обратно.
  5. Сделать соединение по USB.
  6. Записать бинарный файл на карту памяти в корень.
  7. Отпаять микросхему.
  8. Снять дамп.
  9. Найти этот файл.
  10. Файл то 512 байт, он ровно ляжет в один сектор. Контроллёр сам подсчитает и запишет контрольную сумму на этот сектор. Там только первые 4 байта контролки будут иметь не тот порядковый номер блока.
  11. Записать этот сектор в исходный дамп, с правильной контролкой и нужным MSID, оставив родные первые 4 байта оригинала.
  12. Прошить микросхему и впаять на место.
  13. Сектор с изменённым MSID должен стать легитимным.
Все файлы, программы, музыку, видео, картинки, которые мы копируем по USB на карту памяти логическим способом (обывательски), мгновенно контроллёр пишет в свободные места по порядку и на каждый сектор 512 байт тут же подсчитывает контрольную сумму сам с порядковым номером блока.
Если файл не помещается целиком в свободное место, то контроллёр пропускает это место и пишет в следующее свободное место.
Занятые места посреди карты образуются, если мы заполняем карту памяти до середины или до конца, к примеру, а затем удаляем файлы, записанные ранее. Таким образом, в начале освобождается место, а файлы, записанные позднее, остаются в конце или середине карты памяти.

frostegater 30.10.2011 12:41

ErikPshat, постой, не развивай тему... кажись получилось... я там с одним челом сижу, щас он занят, потом ещё попробуем. Мало того, нашёлся способ программно это делать на SD'шках, надеюсь на MS'ках также выйдет. Перелазь в девелоперскую.

Yokel 30.10.2011 13:39

http://www.flash-extractor.com/forum...pic.php?t=1837

Gregorio 31.10.2011 07:14

Yokel, и все побежали покупать Flash Extractor =)

Erema36 31.10.2011 09:40

Цитата:

Сообщение от ErikPshat (Сообщение 986796)
Можно поступить по другому:
...
(13) Сектор с изменённым MSID должен стать легитимным.

ErikPshat, увы не станет.

Что по сути такое [ЕСС]?
Код ЕСС - код коррекции ошибок. Иными словами это СRC с ограниченной возможностью коррекции содержания по которому он высчитан.

Сектор представляет из себя [данные] + [служебка].
Точнее сказать, [данные] + [служебка контроллера] + [код ЕСС].

Код [ЕСС] защищает не только [пользовательские данные], но и [служебку контроллера]. В частности, [служебка контроллера] - хранит номер блока в банке, ротацию блока и еще бог знает какие служебные биты-флаги.

Поэтому выше предложенный способ не сработает.
Сектор, имеющий одно и то же содержание пользовательских данных, будучи записанным в разные места через стандартный интерфейс, имеет разную [служебку контроллера] и следовательно разный [код ЕСС] (высчитанный из [пользовательских данных] + [служебки контроллера]).

Не зря же пишут:
ECC Code: 512 / 7 / SM325QF AC
Sector: 519/9

или

ECC Code: 514 / 13 / Memory Stick 7
Sector: 527/1

Замете, размер сектора везде 528 (512+16), а вот код ЕСС защищает разное количество байт на странице.

================================================================================ ===============


Цитата:

Сообщение от ErikPshat (Сообщение 986796)
(10) Файл то 512 байт, он ровно ляжет в один сектор. Контроллёр сам подсчитает и запишет контрольную сумму на этот сектор. Там только первые 4 байта контролки будут иметь не тот порядковый номер блока.

это очень зависит от контроллера, точнее от алгоритма по которому он хранит данные в доступном ему пространстве памяти.

ErikPshat 31.10.2011 10:29

Цитата:

Сообщение от Erema36 (Сообщение 986929)
Что по сути такое [ЕСС]?
Код ЕСС - код коррекции ошибок. Иными словами это СRC с ограниченной возможностью коррекции содержания по которому он высчитан.

Сектор представляет из себя [данные] + [служебка].
Точнее сказать, [данные] + [служебка контроллера] + [код ЕСС].

Код [ЕСС] защищает не только [пользовательские данные], но и [служебку контроллера]. В частности, [служебка контроллера] - хранит номер блока в банке, ротацию блока и еще бог знает какие служебные биты-флаги.

Поэтому выше предложенный способ не сработает.
Сектор, имеющий одно и то же содержание пользовательских данных, будучи записанным в разные места через стандартный интерфейс, имеет разную [служебку контроллера] и следовательно разный [код ЕСС] (высчитанный из [пользовательских данных] + [служебки контроллера]).

По моему ты слишком много читаешь детективов )))
Это же ECC - просто проверка целостности данных, но это не относится к шифрованию.
Представляешь, записав только один единственный файл, во сколько секторов он ляжет?
А если это куча файлов или один большой файл?

Если рассуждать по твоему, то получается, чтобы произвести чтение карты памяти или запись, то на вычисление ECC к каждому сектору уйдёт масса времени, от которого зависят характеристики карт памяти на скорость чтения/записи, которыми хвалится каждый производитель и соревнуются между собой.

На этом основании покупатели и делают вывод, какого производителя купить карту памяти.



Здесь всё обстоит намного проще.
Каждый сектор просто-напросто проверяется операцией XOR и всё!
На основании заранее заданоого сида, с помощью XOR вычисляется код этого сектора 512 байт.
Если на основании СИДА, с помощью операции XOR, получается другое значение, отличное от имеющегося, значит сектор считается фейковым.

Цитата:

Сообщение от Erema36 (Сообщение 986929)
Не зря же пишут:
ECC Code: 512 / 7 / SM325QF AC
Sector: 519/9

Всё правильно. На Memory Stick, как правило ставятся контроллёры, которые форматируют карту на основании геометрии 512 + 16 = 528

Я уже разбирался с этим вопросом и вычислил, что 16 байт избыточного кода содержит:
  • Первые 4 байта - адресацию блока. Но цифра по моему перевёрнута, т.к. если эти байты превратить в децимальную цифру, то встречаются такие цифры, что столько блоков просто не может поместиться в память.
  • Следующие 2 байта - FFFF или 0000. То есть, я так думаю пустой резерв или разделение кода.
  • Остаётся 10 байт - это и есть контроль ECC - XOR u16 Bit Unsigned Short. То есть, эти 10 байт со здвигом переворачивают каждые 16 бит (2 байта) кода из этих 512 байт сектора.
Отсюда, в случае с рассматриваемым нами контроллёром, представленным в шапке, геометрия идёт так:

Код:

ECC Code: 512/10/ Memory Stick Hynix HY27UH08AG5M 2Гб; Контроллёр UD1F
Sector: 528/1

Если не понятно, то я чуть позже более подробнее объясню, как производится операция XOR на примере сектора MSID.



Кстати, это уже вопрос к нашим программистам Yoti и Frostegater: здесь я нашёл код вычисления ECC
  1. У нас есть дампы памяти, где как раз есть области, полностью забитые одинаковым кодом FFFF FFFF FFFFF FFFF
  2. И у такого сектора есть 10-значный код ECC.
  3. То что код имеет структуру u16 Bit Unsigned Short - я уже 100% вычислил и полностью уверен в этом.
  4. Так что можно найти SEED - код преобразования XOR.

Цитата:

P.S. За основу берём этот дамп: https://www.pspx.ru/forum/showpost.ph...&postcount=283
Там есть оригинальный дамп сектора MSID под названием "07FFC4 - MSID Page Original (1 Page = 4 Sectors).bin"
Это неизменённый натуральный дамп, с которым можно работать.

Код
Код:

00000000 3F FF 3F FE 3F FD 3F FC 3F FB 3F FA 3F F9 3F F8 ?.?.?.?.?.?.?.?.
00000010 3F F7 3F F6 3F F5 3F F4 3F F3 3F F2 3F F1 3F F0 ?.?.?.?.?.?.?.?.
00000020 3F EF 3F EE 3F ED 3F EC 3F EB 3F EA 3F E9 3F E8 ?.?.?.?.?.?.?.?.
00000030 3F E7 3F E6 3F E5 3F E4 3F E3 3F E2 3F E1 3F E0 ?.?.?.?.?.?.?.?.
00000040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000100 FF FF 00 C8 3D 4E 01 00 00 3D 4E 00 20 80 03 D4 ....=N...=N. ...
00000110 00 20 02 00 46 0E FF FF FF 3E 54 3E 4E 3E 4E 3E . ..F....>T>N>N>
00000120 4E 01 DF 1F 01 DE 1F AA 01 01 00 00 80 80 80 5B N..............[
00000130 00 00 03 07 15 01 0A 32 FF 01 4C F7 4C F7 01 FF .......2..L.L...
00000140 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000150 20 20 20 20 20 20 20 20 20 20 20 32 47 4D 65 6D            2GMem
00000160 6F 72 79 53 74 69 63 6B 50 72 6F 24 07 D6 09 14 oryStickPro$....
00000170 13 3B 2D 22 55 B6 28 01 00 01 00 AD 00 D3 00 00 .;-"U.(.........
00000180 00 00 00 21 21 00 00 20 01 01 01 20 4D 53 50 53 ...!!.. ... MSPS
00000190 4E 59 30 00 78 44 00 B9 FF 00 00 FF FF FF FF FF NY0.xD..........
000001A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000001B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000001C0 00 96 03 20 FF FF FF FF FF FF FF FF FF FF FF FF ... ............
000001D0 FF EC 5C 6B FF 58 54 0C FF FF FF FF FF FF FF FF ..\k.XT.........
000001E0 FF FF FF FF FF FF FF FF 30 35 2F 31 35 2F 30 36 ........05/15/06
000001F0 01 10 01 18 5A FF FF FF FF FF FF FF FF FF FF FF ....Z...........
00000200 A0 A0 01 FF FF FF D1 BF 21 3A 6B B8 E7 F0 41 F2 ........!:k...A.

А файл "07FFC4 - MSID Page Changed (1 Page = 4 Sectors).bin" - это тот же самый, только я туда вписал сам MSID от сервисной карты. Ессно ECC осталось прежним. Вот туда нужно подсчитать новый легитимный ECC.

Erema36 31.10.2011 11:39

Цитата:

Сообщение от ErikPshat (Сообщение 986931)
По моему ты слишком много читаешь детективов )))
Это же ECC - просто проверка целостности данных, но это не относится к шифрованию.

Я просто знаю..

ErikPshat, где слова про шифрование?
XOR я вообще как тему трогаю, т.к. в MS Pro он пока что не встречается.

Тут линейный циклический код. Либо "Код Хемминга", либо "Рида — Соломона"
http://ru.wikipedia.org/wiki/%D0%9E%...B1%D0%BE%D0%BA

http://ru.wikipedia.org/wiki/%D0%9A%...BD%D0%B3%D0%B0

ErikPshat 31.10.2011 11:48

Вложений: 1
Ну чтобы было более понятно, о чём я говорю и что есть на самом деле, то предлагаю, в качестве подсказки, небольшую элементарную задачку:

Вот вам задачка... Кто решит, тому +1 )))
Прилагаю отксоренный файл во вложении.
Предлагаю его попробовать посмотреть в блокноте, в Hex Workshop и убедиться, что там ничего читабельного нет.

Ваша задача: на основе SEED'a, записанного по формуле 512/10 восстановить данные в 512 байтах сектора.
  • Подсказка: воспользуйтесь функцией Hex Workshop - "Tools => Operations => ^XOR..." (u16 Bit).

Результат можете выложить здесь в спойлер в теге CODE.
Воспользуйтесь функцией вывода - "File => Export => Text (*.txt)"
Текстовой редактор советую использовать EmEditor, т.к. Блокнот показывает результат не форматированным.

P.S. Надеюсь, с помощью этой задачки вы поймёте, что записано в секторе MSID в шапке, вместо вопросиков ???????????

Задача №2: что написано в секторе оригинального MSID вместо вопросиков в шапке?

Шапка
Код:

00000000 3F FF 3F FE 3F FD 3F FC 3F FB 3F FA 3F F9 3F F8 ?.?.?.?.?.?.?.?.
00000010 3F F7 3F F6 3F F5 3F F4 3F F3 3F F2 3F F1 3F F0 ?.?.?.?.?.?.?.?.
00000020 3F EF 3F EE 3F ED 3F EC 3F EB 3F EA 3F E9 3F E8 ?.?.?.?.?.?.?.?.
00000030 3F E7 3F E6 3F E5 3F E4 3F E3 3F E2 3F E1 3F E0 ?.?.?.?.?.?.?.?.

00000040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000000F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000100 FF FF 00 C8 3D 4E 01 00 00 3D 4E 00 20 80 03 D4 ....=N...=N. ...
00000110 00 20 02 00 46 0E FF FF FF 3E 54 3E 4E 3E 4E 3E . ..F....>T>N>N>
00000120 4E 01 DF 1F 01 DE 1F AA 01 01 00 00 80 80 80 5B N..............[
00000130 00 00 03 07 15 01 0A 32 FF 01 4C F7 4C F7 01 FF .......2..L.L...
00000140 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00000150 20 20 20 20 20 20 20 20 20 20 20 32 47 4D 65 6D            2GMem
00000160 6F 72 79 53 74 69 63 6B 50 72 6F 24 07 D6 09 14 oryStickPro$....
00000170 13 3B 2D 22 55 B6 28 01 00 01 00 AD 00 D3 00 00 .;-"U.(.........
00000180 00 00 00 21 21 00 00 20 01 01 01 20 4D 53 50 53 ...!!.. ... MSPS
00000190 4E 59 30 00 78 44 00 B9 FF 00 00 FF FF FF FF FF NY0.xD..........
000001A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000001B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
000001C0 00 96 03 20 FF FF FF FF FF FF FF FF FF FF FF FF ... ............
000001D0 FF EC 5C 6B FF 58 54 0C FF FF FF FF FF FF FF FF ..\k.XT.........
000001E0 FF FF FF FF FF FF FF FF 30 35 2F 31 35 2F 30 36 ........05/15/06
000001F0 01 10 01 18 5A FF FF FF FF FF FF FF FF FF FF FF ....Z...........
00000200 A0 A0 01 FF FF FF D1 BF 21 3A 6B B8 E7 F0 41 F2 ........!:k...A.


Erema36 31.10.2011 11:48

Цитата:

Сообщение от ErikPshat (Сообщение 986931)
Кстати, это уже вопрос к нашим программистам Yoti и Frostegater: здесь я нашёл код вычисления ECC

Цитата:

-Artix 20:45, 15 января 2011 (UTC)

Шифр XOR - очень плохой шифр, потому что если в исходной последовательности встречается длинная цепочка одинаковых символов - ключ шифрования вылетает в выходной поток в чистом или почти чистом виде. Поэтому ломается такой шифр за 1 минуту. Соответственно, программа, демонстрирующая суть метода, а также наглядно показывающая как в шифрованном потоке возникают повторения ключа, применима только в ознакомительных и учебных целях - и никогда в практических. В общем, не используйте XOR и деление по модулю в качестве шифров.
Написано на этой страничке прямым текстом.

Понял. Понял. Извиняюсь.
Схожу за попкорном и Колой. Устраиваюсь поудобнее за своими двумя мониторами :)

ErikPshat 31.10.2011 12:52

Скажу больше, в XOR-е принимают участие только первые 2 байта ECC. Остальные 8 байт несут ещё какие-то функции.

Erema36 31.10.2011 13:17

Цитата:

Сообщение от ErikPshat (Сообщение 986942)
Скажу больше, в XOR-е принимают участие только первые 2 байта ECC. Остальные 8 байт несут ещё какие-то функции.

ErikPshat, XOR - это маска, накладываемая на блок целиком.
Изначально, маска не может осуществлять функцию коррекции битовых ошибок. Она лишь может выполнять функцию контроля целостности данных.

XOR применяется во флешках для уменьшения взаимовлияния винтелей памяти при большей их плотности. Особенно этим заморачивается Тошиба и СанДиск.

То что Вы увидели пустые сектора без маркера, но имеющие какой-то [код ЕСС], объясняется тем, что контроллер во время операций записи не желает тратить время на стирание сектора. Он подготавливает очередь заранее, очищая сектора.
Так же он знает, что [код ЕСС] ему писать в сектор по любому. Зачем тогда его очищать? Правильно не нужно. Нужно подготовить сектора так, чтобы туда по-быстрому все записать, а именно забить его [FFFFFFFF] или [яяяяяяяя] и затем записать только измененые байты.

Для ускорения этого процесса в SSD придумали команду /trim .

Yokel 31.10.2011 15:16

Задача 1.
Код:

00000000 53 74 69 6C 6C 20 64 6F 6E 27 74 20 47 69 76 65 20 41 20 46 75 63 6B 0D 0A 28 45 6D 69 6E 65 6D Still don't Give A Fuck..(Eminem
00000020 29 0D 0A 41 20 6C 6F 74 20 6F 66 20 70 65 6F 70 6C 65 20 61 73 6B 20 6D 65 2E 2E 20 61 6D 20 49 )..A lot of people ask me.. am I
00000040 20 61 66 72 61 69 64 20 6F 66 20 64 65 61 74 68 2E 2E 0D 0A 48 65 6C 6C 20 79 65 61 68 20 49 27  afraid of death....Hell yeah I'
00000060 6D 20 61 66 72 61 69 64 20 6F 66 20 64 65 61 74 68 0D 0A 49 20 64 6F 6E 27 74 20 77 61 6E 74 20 m afraid of death..I don't want
00000080 74 6F 20 64 69 65 20 79 65 74 0D 0A 41 20 6C 6F 74 20 6F 66 20 70 65 6F 70 6C 65 20 74 68 69 6E to die yet..A lot of people thin
000000A0 6B 2E 2E 20 74 68 61 74 20 49 20 77 6F 72 73 68 69 70 20 74 68 65 20 64 65 76 69 6C 2E 2E 0D 0A k.. that I worship the devil....
000000C0 74 68 61 74 20 49 20 64 6F 20 61 6C 6C 20 74 79 70 65 73 20 6F 66 2E 2E 20 72 65 74 61 72 64 65 that I do all types of.. retarde
000000E0 64 20 73 68 69 74 0D 0A 4C 6F 6F 6B 2C 20 49 20 63 61 6E 27 74 20 63 68 61 6E 67 65 20 74 68 65 d shit..Look, I can't change the
00000100 20 77 61 79 20 49 20 74 68 69 6E 6B 0D 0A 41 6E 64 20 49 20 63 61 6E 27 74 20 63 68 61 6E 67 65  way I think..And I can't change
00000120 20 74 68 65 20 77 61 79 20 49 20 61 6D 0D 0A 42 75 74 20 69 66 20 49 20 6F 66 66 65 6E 64 65 64  the way I am..But if I offended
00000140 20 79 6F 75 3F 20 47 6F 6F 64 0D 0A FF FF FF FF 20 20 20 20 20 20 20 20 20 20 20 32 47 4D 65 6D  you? Good......          2GMem
00000160 6F 72 79 53 74 69 63 6B 50 72 6F 24 07 D6 09 14 13 3B 2D 22 55 B6 28 01 20 01 20 AD 20 D3 20 20 oryStickPro$.....;-"U.(. . . . 
00000180 20 20 20 21 21 20 20 20 01 01 01 20 4D 53 50 53 4E 59 30 20 78 44 20 B9 FF 20 20 FF FF FF FF FF    !!  ... MSPSNY0 xD ..  .....
000001A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................................
000001C0 20 96 03 20 FF FF FF FF FF FF FF FF FF FF FF FF FF EC 5C 6B FF 58 54 0C FF FF FF FF FF FF FF FF  .. ..............\k.XT.........
000001E0 FF FF FF FF FF FF FF FF 30 35 2F 31 35 2F 30 36 01 10 01 18 5A FF FF FF FF FF FF FF FF FF FF FF ........05/15/06....Z...........
00000200 71 1F D0 40 2E 40 00 00 F0 85 BA 07 36 4F 90 4D                                                q..@.@......6O.M

Задача 2. Английский алфавит?

ErikPshat 31.10.2011 16:05

Цитата:

Сообщение от Erema36 (Сообщение 986945)
То что Вы увидели пустые сектора без маркера, но имеющие какой-то [код ЕСС]

Не какой-то код, а это именно сгенерированный код контрольной суммы для сектора полностью забитого этими FFFF FFFF FFFF FFFF.
Можно проследить, что он у всех секторов с такими данными одинаковый.

В некоторых местах отсутствует контрольная сумма, это потому, что сектор совсем не используется. Но если у пустого сектора есть контрольная сумма, значит, пусть даже он и пустой, но он используется и воспринимается, как часть реальных данных.
Это всё можно так же проследить в nand-dump-ах, где например IPL в конце заполнен пустыми блоками FFFF, но с контрольными суммами. И IPL дампится и пишется именно со всеми этими блоками. Однако, где данные идут без ECC, эта часть отрезается.
Ну я так понял задачки вы не решили )))

Yokel, отлично! Всё верно, у тебя первого получилось из непонятного кода извлечь читабельный код из песни Эминема :D
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.

Если даже просмотреть XOR в u8 или u32, то мы увидим тоже вроде читабельный код, но там сразу понятно по хаотичности данных, что это не верный код. Верный код мы видим именно в u16.

AndyI 02.11.2011 05:37

Можно пересобрать "MSID Dumper 3.XX" чтобы выводил на экран “Serial number” и MSProID а не только писал в файл ?

frostegater 02.11.2011 06:09

AndyI, можно переписать.. перепиши.. да и переписать легко.
Собсно вот! https://www.pspx.ru/forum/showpost.ph...&postcount=126

AndyI 02.11.2011 14:09

СПС за дампер.

думаю реверсить все алго ЕСС лишено смысла да это и понятно нужно выбрать 1 кролика и под него сделать пересчет ECC кому надо найдет кролика по описанию

P.S.
как раз начал смотреть где взять и какой тулчейн надо юзать под сборку дампера.

Yoti 02.11.2011 15:28

AndyI, просьба воздержаться от "пустых" сообщений впредь.

Yokel 11.11.2011 13:47

есть прога http://www.ice-graphics.com/ICEECC/IndexR.html ICE ECC, ее автор (по мылу) утверждает что она может с этой задачей справиться, у меня пока не получилось, может еще кто потыкает!?

Arsenikum 13.11.2011 11:58

Есть брикнутая PSP-3008 c TA-93, возможно ли восстановление описанным выше методом? Стоит ли попробовать?

KirJan-DeSign 13.11.2011 12:12

Arsenikum,
НУ СПЕЦИАЛЬНО НАПИСАНО В ТЕМЕ ДЛЯ :girl_crazy: И :to_become_senile::
Цитата:

Pandora (unbricker/downgrader) для PSP-200X TA-088v3

Yoti 18.11.2011 18:37

Цитата:

Сообщение от ErikPshat (Сообщение 986964)
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.

Так и не понял почему. Если вдруг какой-то мусор поксорился в другой мусор, но для человека (подчеркну, не консоли/контроллера/etc) чуть более понятный - это не показатель. Данные хранятся "как есть" и ничуть не защищены ксором. Так что ничего расшифровывать и не стоило. Нужно подобрать только некий хэш (т.к. есс меньше данных). По ссылке с якобы алгоритмом есс просто пример использования оператора ксор, не более.

ErikPshat 18.11.2011 18:44

Yoti, согласен, что конечно там никакой защиты нет.

Но это служебный сектор и по моему единственный, поэтому там содержится всё - и VendorID и PendorID и MSID и серийный номер, а соответственно, как обычно бывает во всех независимых областях, Алфавит с циферками.

В данном случае, думаю это не случайный мусор, а вполне закономерные данные.
Вот эта область в реале:

[IMG]http://img526.**************/img526/6395/18112011185430.png[/IMG]

И она после ксора (первые 2 байта ECC - D1BF):

[IMG]http://img7.**************/img7/6981/18112011185404.png[/IMG]

Это не сказать бы, что случайность. Вдруг всплыл алфавит, а за ним символы скобок, наклонной черты, знака ксора, знака подчёркивания... И причём такое появляется именно с этими двумя байтами D1BF. Но если в этих байтах поменять хоть одну циферку, то мы уже увидим действительно неупорядоченный мусор. Поэтому считаю, что это преобразование над первыми 64 байтами происходит не случайно.

Думаю это матрица, которая может используется для восстановления данных.
Это аналогично тому, что такие матрицы есть, например в BMP. Там все цвета лежат отдельно в матрице, и на её основе строится изображение. Такая же матрица существет во многих других форматах, например в GIF, JPEG, RAR, ZIP.
На основе некой таблицы производится сжатие и восстановление информации.

Yoti 18.11.2011 23:36

Цитата:

Сообщение от ErikPshat (Сообщение 990294)
Это не сказать бы, что случайность. Вдруг всплыл алфавит, а за ним символы скобок, наклонной черты, знака ксора, знака подчёркивания... И причём такое появляется именно с этими двумя байтами D1BF. Но если в этих байтах поменять хоть одну циферку, то мы уже увидим действительно неупорядоченный мусор. Поэтому считаю, что это преобразование над первыми 64 байтами происходит не случайно.

Это для тебя алфавит (что-то привычное и понятное), а для программы простая последовательность байт. К примеру, человеческое сознание легко обмануть вот так: синий, красный. Тем более, что кроме этого куска ничего не "защищено". Прекрасно же знаешь, что мы оперируем страницами и блоками, а не произвольными кусками.

Цитата:

Сообщение от ErikPshat (Сообщение 990294)
Это аналогично тому, что такие матрицы есть, например в BMP. Там все цвета лежат отдельно в матрице, и на её основе строится изображение. Такая же матрица существет во многих других форматах, например в GIF, JPEG, RAR, ZIP.
На основе некой таблицы производится сжатие и восстановление информации.

Ну во-первых, таблица цветов должна быть если файл преднамеренно сохранён с ограниченным числом цветов. Не помню, чтобы BMP имел что-то подобное. И если эта таблица имеет 4 цвета (кол-во умещается в байт), а изображение 16*16=256 точек - то само "тело" и будет описано 256 (совпадающее число) байтами, просто вместо цвета будет указана позиция в таблице.

Я вполне мог опустить или упустить моменты, но самая база мне более-менее известна.

Yokel 19.11.2011 15:29

Цитата:

Сообщение от ErikPshat (Сообщение 986796)
Ну вот, думаю посмотрев на картинку ты всё-таки сумеешь в хексе отсчитать 512 байт и увидеть 16 байт ECC в конце каждого сектора :D
0x200 + 0x10

Нужно вычислить/найти алгоритм подсчёта этой контрольной суммы на сектор.

Собственно там первые 4 байта указывают на порядковый номер блока, к которому относятся сектора.
Все сектора одного блока имеют этот номер одинаковый.
Блок не может быть разделимым, т.е. не может полблока находиться в одном месте, а другая часть в другом. Он всегда пишется непрерывно.

После 4-ёх байт, ещё идут 2 байта FFFF
Остальные 10 байт и есть контролка.

Скриншот
[IMG]http://img812.**************/img812/4350/dumpmsidraw.png[/IMG]

Можно поступить по другому:
  1. Отпаять память.
  2. Снять дамп.
  3. Сохранить сектор 512 байт с изменённым MSID, без контролки, в бинарный файл.
  4. Припаять микросхему обратно.
  5. Сделать соединение по USB.
  6. Записать бинарный файл на карту памяти в корень.
  7. Отпаять микросхему.
  8. Снять дамп.
  9. Найти этот файл.
  10. Файл то 512 байт, он ровно ляжет в один сектор. Контроллёр сам подсчитает и запишет контрольную сумму на этот сектор. Там только первые 4 байта контролки будут иметь не тот порядковый номер блока.
  11. Записать этот сектор в исходный дамп, с правильной контролкой и нужным MSID, оставив родные первые 4 байта оригинала.
  12. Прошить микросхему и впаять на место.
  13. Сектор с изменённым MSID должен стать легитимным.
Все файлы, программы, музыку, видео, картинки, которые мы копируем по USB на карту памяти логическим способом (обывательски), мгновенно контроллёр пишет в свободные места по порядку и на каждый сектор 512 байт тут же подсчитывает контрольную сумму сам с порядковым номером блока.
Если файл не помещается целиком в свободное место, то контроллёр пропускает это место и пишет в следующее свободное место.
Занятые места посреди карты образуются, если мы заполняем карту памяти до середины или до конца, к примеру, а затем удаляем файлы, записанные ранее. Таким образом, в начале освобождается место, а файлы, записанные позднее, остаются в конце или середине карты памяти.

Проверил я данный способ на практике - он не катит, т.к адрес блока учавствует в расчете ECC (как и говорил Erema36)

ErikPshat 19.11.2011 17:49

А если контрольную сумму забить FFFFFFFF, может тогда контроллёр не будет сверять этот сектор/блок?

А ключ MSID может будет считываться.

Gregorio 20.11.2011 20:33

ErikPshat, очень в этом не уверен. хотя чисто ради прикола попробую, во вторник вечерком отпишусь

Yoti 20.11.2011 20:45

У кого есть карта памяти Lexar и шитая PSP - напишите в личку.

Yokel 21.11.2011 06:40

Цитата:

Сообщение от ErikPshat (Сообщение 990411)
А если контрольную сумму забить FFFFFFFF, может тогда контроллёр не будет сверять этот сектор/блок?

А ключ MSID может будет считываться.

Может быть не FF а нулями, или сделать ECC ошибочным (изменив в нем несколько байт) и контроллер сам его пересчитает на верный !!??

Yokel добавил 21.11.2011 в 06:40
Цитата:

Сообщение от Yoti (Сообщение 990748)
У кого есть карта памяти Lexar и шитая PSP - напишите в личку.

Чем именно Lexar хороши?

ErikPshat 21.11.2011 15:22

Цитата:

Сообщение от Yokel (Сообщение 990888)
или сделать ECC ошибочным (изменив в нем несколько байт) и контроллер сам его пересчитает на верный !!??

После смены MSID он и так ошибочный.

Yoti 21.11.2011 19:05

Цитата:

Сообщение от Yokel (Сообщение 990888)
Чем именно Lexar хороши?

Для этой темы - ничем.

Yokel 22.11.2011 06:19

Цитата:

Сообщение от ErikPshat (Сообщение 990938)
После смены MSID он и так ошибочный.

НЕТ! После смены MSID ошибочными будут данные, а ECC валидный остается, по которому контроллер может восстановить старые данные!

ErikPshat 22.11.2011 06:27

Цитата:

Сообщение от Yokel (Сообщение 991225)
НЕТ! После смены MSID ошибочными будут данные, а ECC валидный остается, по которому контроллер может восстановить старые данные!

Это с какой стороны посмотреть )))

Если сменить в секторе MSID, то ECC уже не будет соответствовать этому сектору, то есть, ECC уже будет не тот.
А если сменть ECC на не тот, то сектор не будет соответствовать ECC.

Таким образом, оригинальный ECC восстановит сектор к его прежнему значению.
Изменённый ECC восстановит сектор к тому значению, по мнению которого должна быть такая ECC.

Gregorio 22.11.2011 06:37

в любом случае, до проггера доберусь и проверю, всё-равно время есть. да и еще пара идей на эту-же тему

Yokel 22.11.2011 07:32

Цитата:

Сообщение от ErikPshat (Сообщение 991226)
Это с какой стороны посмотреть )))

Если сменить в секторе MSID, то ECC уже не будет соответствовать этому сектору, то есть, ECC уже будет не тот.
А если сменть ECC на не тот, то сектор не будет соответствовать ECC.

Таким образом, оригинальный ECC восстановит сектор к его прежнему значению.
Изменённый ECC восстановит сектор к тому значению, по мнению которого должна быть такая ECC.

Он не восстановит данные по кривому ЕСС - он выдаст что ошибка ЕСС, может быть пересчитает ЕСС согласно этим данным!

Gregorio 22.11.2011 07:41

Yokel, есть идея круче) подходящие карты используют тупые контроллеры. есть другие карты, которые используют точно такой-же алгоритм расчёта контрольной суммы, но намного умнее. вот как-раз на них и можно попробовать всё провернуть.
в любом случае в мск я вернулся только что, доберусь до проггера и буду пробовать

Yokel 22.11.2011 08:42

Цитата:

Сообщение от gregorio (Сообщение 991230)
Yokel, есть идея круче) подходящие карты используют тупые контроллеры. есть другие карты, которые используют точно такой-же алгоритм расчёта контрольной суммы, но намного умнее. вот как-раз на них и можно попробовать всё провернуть.
в любом случае в мск я вернулся только что, доберусь до проггера и буду пробовать

Контроллер Phison PS2134 ?

Gregorio 22.11.2011 11:15

Цитата:

Сообщение от Yokel (Сообщение 991237)
Контроллер Phison PS2134 ?

он как-бы вроде на usb флэхах стоит.. или я ошибаюсь?


Текущее время: 06:48. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.