Вход

Просмотр полной версии : Pandora (unbricker/downgrader) для PSP-200X TA-088v3


Страницы : 1 2 3 [4] 5 6 7 8

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
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.
Так и не понял почему. Если вдруг какой-то мусор поксорился в другой мусор, но для человека (подчеркну, не консоли/контроллера/etc) чуть более понятный - это не показатель. Данные хранятся "как есть" и ничуть не защищены ксором. Так что ничего расшифровывать и не стоило. Нужно подобрать только некий хэш (т.к. есс меньше данных). По ссылке с якобы алгоритмом есс просто пример использования оператора ксор, не более.

ErikPshat
18.11.2011, 18:44
Yoti, согласен, что конечно там никакой защиты нет.

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

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

http://img526.**************/img526/6395/18112011185430.png

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

http://img7.**************/img7/6981/18112011185404.png

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

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

Yoti
18.11.2011, 23:36
Это не сказать бы, что случайность. Вдруг всплыл алфавит, а за ним символы скобок, наклонной черты, знака ксора, знака подчёркивания... И причём такое появляется именно с этими двумя байтами D1BF. Но если в этих байтах поменять хоть одну циферку, то мы уже увидим действительно неупорядоченный мусор. Поэтому считаю, что это преобразование над первыми 64 байтами происходит не случайно.
Это для тебя алфавит (что-то привычное и понятное), а для программы простая последовательность байт. К примеру, человеческое сознание легко обмануть вот так: синий, красный. Тем более, что кроме этого куска ничего не "защищено". Прекрасно же знаешь, что мы оперируем страницами и блоками, а не произвольными кусками.

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

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

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

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

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

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

http://img812.**************/img812/4350/dumpmsidraw.png
Можно поступить по другому:

Отпаять память.
Снять дамп.
Сохранить сектор 512 байт с изменённым MSID, без контролки, в бинарный файл.
Припаять микросхему обратно.
Сделать соединение по USB.
Записать бинарный файл на карту памяти в корень.
Отпаять микросхему.
Снять дамп.
Найти этот файл.
Файл то 512 байт, он ровно ляжет в один сектор. Контроллёр сам подсчитает и запишет контрольную сумму на этот сектор. Там только первые 4 байта контролки будут иметь не тот порядковый номер блока.
Записать этот сектор в исходный дамп, с правильной контролкой и нужным MSID, оставив родные первые 4 байта оригинала.
Прошить микросхему и впаять на место.
Сектор с изменённым 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
А если контрольную сумму забить FFFFFFFF, может тогда контроллёр не будет сверять этот сектор/блок?

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

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

Yokel добавил 21.11.2011 в 06:40
У кого есть карта памяти Lexar и шитая PSP - напишите в личку.

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

ErikPshat
21.11.2011, 15:22
или сделать ECC ошибочным (изменив в нем несколько байт) и контроллер сам его пересчитает на верный !!??После смены MSID он и так ошибочный.

Yoti
21.11.2011, 19:05
Чем именно Lexar хороши?
Для этой темы - ничем.

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

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

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

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

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

Yokel
22.11.2011, 07:32
Это с какой стороны посмотреть )))

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

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

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

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

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

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

Gregorio
22.11.2011, 11:15
Контроллер Phison PS2134 ?

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

Yokel
23.11.2011, 15:36
он как-бы вроде на usb флэхах стоит.. или я ошибаюсь?
Да, но алгоритм вычисления ECC полностью аналогичен нашему (проверено)!

Сергей из soft-center.ru говорит, что если "изменить ECC на один байт (в предалах кооректирующей способности кода), то контроллер возможно пересчитает его на верный", кто первый проверит? gregorio куда то пропал.

Yoti
23.11.2011, 15:54
Сергей из soft-center.ru говорит
в качестве поддержки продукта или по доброте душевной?

Yokel
23.11.2011, 16:08
в качестве поддержки продукта или по доброте душевной?

по доброте душевной, потому как за утилиту по расчету он просит 10000руб, либо за расчет одного блока 4000руб!

Gregorio
23.11.2011, 23:15
пробовал менять целиком, карта работать перестаёт.
на один байт менять не пробовал, сегодня займусь

frostegater
23.11.2011, 23:24
Yokel, будут гарантии, скинемся, говновопрос.

Gregorio
24.11.2011, 16:51
Yokel, ну это ведь только для одной карты по сути.. ибо на всех он в разных местах лежит

gregorio добавил 24.11.2011 в 16:31
поменял один байт в ecc, интересно себя ведёт. возможно из-за непропая, щас проверю еще

gregorio добавил 24.11.2011 в 16:42
мило. после изменения одного байта ecc заработала(правда потребовалал себя форматнуть)

gregorio добавил 24.11.2011 в 16:51
но увы, на особой карте, файлы которой очень привередливы к карте памяти она в очередной раз выдала NG((((

Yokel
24.11.2011, 17:15
что выдала, какой NG? Выпаяй микруху посмотри что с блоком!

Gregorio
24.11.2011, 17:51
Yokel, байт как был изменён, так и остался)

Yokel
24.11.2011, 18:24
gregorio, карта перестала работать или, что с ней случилось?

Gregorio
24.11.2011, 19:47
Yokel, карта как карта работает, мсид правильный выдаёт, но как сервисная не работает(ошибку выдаёт)

gregorio добавил 24.11.2011 в 19:47
почти полностью уверен что с известным всем значением msid она всё-равно будет работать, и прошивать консоль. но для моих целей вариант не подходит.

ErikPshat
25.11.2011, 00:00
Я думаю, что смена ECC ни к чему не приведёт. Это равнозначно, что смена MSID, как и смена ECC.
И в том и в другом случае ECC будет неадекватна.
Поэтому контроллёр занесёт такой блок в bad-block.

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

Это можно сделать, только если ему разрешить запись в защищённую сервисную область.
Но, как мы знаем, эта область защищена от перезаписи.
Чтобы разрешить запись, нужно замкнуть ножку протектора на землю.

Gregorio
25.11.2011, 02:47
ErikPshat, правильно мыслите товарищ)
а по теме, щас займусь поиском. после ремонта своей приставки, убил тестами этих карт ей картридер.(

Yokel
25.11.2011, 14:38
Кто в Си шарит? Вот исходники Рида-Соломона http://www.schifra.com/downloads/schifra.zip надо их курить! По екзамплу получается для 249 байт данных рассчитать 6 байт ECC, по котором можно потом опять данные восстановить!

frostegater
25.11.2011, 16:07
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)

Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.

Korugo
25.11.2011, 16:33
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели.
http://www.elnec.com/sw/an_elnec_nand_flash.pdf
http://www.elnec.com/sw/samsung_ecc_algorithm_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.

Yokel
25.11.2011, 18:16
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели.
http://www.elnec.com/sw/an_elnec_nand_flash.pdf
http://www.elnec.com/sw/samsung_ecc_algorithm_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
это не наш формат!

Yokel добавил 25.11.2011 в 18:16
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)

Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!

ErikPshat
25.11.2011, 18:55
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!Ага, на выходе получается белиберда, даже не учитывая сместившихся 6-ти байт.

Вот чем Samsung пользуется: Hamming code ECC is recommended to recover the error.

Источник (http://www.samsung.com/global/business/semiconductor/products/flash/downloads/applicationnote/app_nand.pdf)

ErikPshat
25.11.2011, 19:20
Карта 2 Гига имеет 2 банка по 1 Гигу.

1 Гб = 1073741824 байт.
Значит 2097152 секторов.
Получается 524288 страницы.
А это всего лишь 8192 блоков.
Значит в двух банках 16384 блоков или 0х4000.

frostegater
26.11.2011, 00:27
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!

Нудя.. понял, поработаю.

ErikPshat
26.11.2011, 03:30
Frostegater, вот здесь какой-то пак:

http://rscode.sourceforge.net/
http://sourceforge.net/projects/rscode/

Yokel
26.11.2011, 06:33
Нудя.. понял, поработаю.

Вот пару валидных блоков 518/10 для проверки.

frostegater
26.11.2011, 07:42
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!

Рид-Соломон больше 255 байт не может обрабатывать.

Remember, the sum of the message length (in bytes) plus parity bytes
must be less than or equal to 255.

ErikPshat
26.11.2011, 12:48
Frostegater, всё правильно - 255, но туда ещё входят Parity байты, которые вставляются по формуле степеней 2 в степени m = 2, 4, 8, 16, 32...
Да и при том, что у каждого производителя контроллёров, алгоритм подсчёта свой CustomRS.
Насколько я понял, для рассчёта ECC в основном используется код Hamming'a, конечно же базирующийся на коде RS.
Так что здесь не всё так радужно.

frostegater
26.11.2011, 12:52
Frostegater, всё правильно 255, включая 0, итого ровно 256.

Да и при том, что у каждого производителя контроллёров, алгоритм подсчёта свой CustomRS.
Насколько я понял, для рассчёта ECC в основном используется код Hamming'a, конечно же базирующийся на коде RS.
Так что здесь не всё так радужно.

А чё он у меня тогда 518 требует?..)))
Плин. Ты подавил мой тонус... Короче, железячники, дампите контроллер, мы, программисты, реверсанём.

Yokel
26.11.2011, 13:12
Зечем контроллер дампить? ФлешЭкстрактор софт-центра в обратную сторону все считает! (по ЕСС восстанавливает данные)

Korugo
26.11.2011, 14:32
алгоритмы ЕСС в нандах устройств от Texas Instruments:
http://processors.wiki.ti.com/index.php/NAND_ECC_Generation_for_DaVinci_Family_of_Devices
Есть готовое приложение GenECC.
The genECC application is a tool for creating the required ECC data for NAND pages offline on a PC, without having to use the EMIF hardware of the chip.

Есть исходники на C#.
http://sourceforge.net/projects/dvflashutils/files/latest/download?source=files
На каждые 512 байт получается, как и здесь, 80 бит ECC-кода по риду-соломону.
For 4-bit ECC, there are four registers that hold the Reed Solomon parity information. Therefore the output file would contain four 32-bit values for each 512 bytes of input data. .... Note that in the case of the Reed Solomon ECC, each register actually contains only 20 bits of ECC parity information, for a total of 80 bits.

Но все равно результат не тот. Этих реализаций до черта, и в каждой видимо по своему делается.

Yokel
26.11.2011, 14:39
дак дело не в нандах как я понимаю а в контроллере флешки(вернее даже не в самом контроллере а в его прошивке, потому как на одном и том же контроллере можно разные алгоритмы реализовать)

Korugo
26.11.2011, 14:58
Конечно в контроллере, это же он все расчеты производит. ЕCC различается даже на разных мемористиках.
Вон на форуме флеш-экстрактора народ какие-то значения для ECC к разным флешкам подбирает.
http://flash-extractor.com/forum/viewtopic.php?t=2458&postdays=0&postorder=asc&start=0
что бы они значили...

Yokel
26.11.2011, 15:37
Кто то юзал карты на контроллере кроме UD1X? Потому что в этих точно адрес участвует в расчете ЕСС, может на других контроллерах не участвует?

ErikPshat
26.11.2011, 16:56
Здесь ещё интересная статья: http://processors.wiki.ti.com/index.php/Raw_NAND_ECC

Gregorio
26.11.2011, 16:56
Yokel, я пользую карты на другом контроллере

Yokel
26.11.2011, 16:58
Yokel, я пользую карты на другом контроллере

и че? участвует адрес?

Gregorio
26.11.2011, 18:22
Yokel, кстати не уверен. дамп залить куда-нибудь?

Yokel
26.11.2011, 19:10
два блока с одинаковыми данными но разными адресами надо!

ErikPshat
26.11.2011, 19:40
ЕCC различается даже на разных мемористиках.Да, даже одинаковые данные на разных стиках, вернее с разным контроллёром, имеют разный ECC. То есть, там явно видно, что идёт совершенно другая структура ECC.

Взять даже обычный Nand-Dump PSP, а он снимается так же в RAW-формате вместе с этим избыточным кодом.

два блока с одинаковыми данными но разными адресами надо!Я думаю лучше нужно полностью забить флешку до байтика.
Если флешка 2 Гб, то нужно:

Создать файл, размером ровно 2 Гб (2147483648 байт)
Полностью сделать на него Fill одним и тем же байтом, например буквой Z.
Потом в первый сектор каждого блока записать один и тот же сектор служебной области с MSID.
Потом залить на карту по USB и снова снять RAW-дамп.

Таким образом, на карте не окажется случайных данных.

Ведь даже при быстром форматировании, данные не удаляются и этот мусор будет мешать изучению.
При полном форматировании, данные удаляются, но перезаписываются другим мусором.

Таким образом будет видно, как изменится ECC в разных блоках, как будет происходить нумерация блоков.
И соответственно будет чётко видно нашу "Z" и его ECC в разных блоках.
Так же, мы сможем сравнить сектор MSID оригинальный системный и этот же сектор в разных других несистемных областях.
Потом сделать вывод о данных ECC.

Yoti
26.11.2011, 20:55
Создать файл, размером ровно 2 Гб (2147483648 байт)
На вкус и цвет все фломастеры... Ой, не об этом же =) У всех производителей пользовательские 2ГБ разные. И чаще всего это 1.90 ГБ (x1024) либо ~200000000 байт (x1000).

ErikPshat
26.11.2011, 21:19
Yoti, а ну да. Я замерял размер дампа флешки 2 Гб, она ровно байт в байт = 2 Гб (2147483648 байт).

Но это надо учитывать, что там служебная область забирает место и + избыточные 16 байт у каждого сектора.
Тут надо математикой заняться поглубже ))) ну 16 байт у каждого сектора, значит избыточных данных ровно 67108864 байт, которые нужно вычесть. И по моему там только один служебный блок.

Gregorio
26.11.2011, 23:34
ErikPshat, есть двушка и четвёрка подходящие под сервисные. могу сказать точный размер или скинуть дамп в хексе. поправишь его или сделаешь свой. зальём и проверим. если что я буду в асе(и дома) после половины первого, пиши если спать не будешь. как раз у меня будет время на всё

gregorio добавил 26.11.2011 в 23:29
и заодно есть чем проверить работоспособность) ведь по всеобщему мнению просто именно сами карты дохнут, а у меня некий софт на них работать отказывается.

gregorio добавил 26.11.2011 в 23:33
и именно из-за несовпадения контрольной суммы

gregorio добавил 26.11.2011 в 23:34
и еще, для общего развития, зануление ECC на кое-каких картах работает. и всё заново подсчитывается. но они редкие и довольно сложно пишутся

ErikPshat
26.11.2011, 23:42
gregorio, ок, ася включена.

Проще конечно манипулировать 2 Гб картой.
Размер логического диска можно посмотреть через свойства, чем высчитывать: 2'033'942'528 байт = 3'972'544 секторов = 62071 блока.

Я подготовил сырой образ, забитый "X", потому что "Z" означает 5A, а это символ метки MBR карты.
От тебя нужен только сектор MSID от той карты, на которой будет производиться эксперимент.

Gregorio
26.11.2011, 23:45
ErikPshat, ща в асю приду, но дома буду только пол первого, и займусь

ErikPshat
26.11.2011, 23:49
зануление ECC на кое-каких картах работает. и всё заново подсчитываетсяХмм, интересно.
Я тут понял, что 4-ий байт FF в ECC означает легитимный блок. Если 00 - то это контроллёр помечает, как Bad Block.

Yokel
27.11.2011, 07:09
Хмм, интересно.
Я тут понял, что 4-ий байт FF в ECC означает легитимный блок. Если 00 - то это контроллёр помечает, как Bad Block.

какой еще 4-ий, откуда считаешь?

ErikPshat
27.11.2011, 07:13
Yokel, c левого конца. От нулевого байта в ECC.

Там ведь идёт одна строка - 16 байт избыточного кода.

Первые 3 байта - позиция блока.
Вот 4-ый байт - указатель на Bad Block.
Потом 2 байта идут FFFF - просто зарезервированы, не используются.
Потом 10 байт - сама ECC.

Yokel
27.11.2011, 07:20
Yokel, c левого конца. От нулевого байта в ECC.

Там ведь идёт одна строка - 16 байт избыточного кода.

Первые 3 байта - позиция блока.
Вот 4-ый байт - указатель на Bad Block.
Потом 2 байта идут FFFF - просто зарезервированы, не используются.
Потом 10 байт - сама ECC.


Ну он у меня например и FD бывает и F1

ErikPshat
27.11.2011, 07:30
Yokel, ты рассматриваешь код в 16-ричном редакторе в 16 столбиков или в 17?

Может у тебя просто контроллёр другой или память.
Я рассматриваю тот, что в шапке с контроллёром UD1F.
Хотя во многих дампах видел тоже самое, но может быть и по другому, смотря какая геометрия.


Кстати, мы с gregorio ночью всё-таки провели эксперимент по заливке данных через USB.
Сейчас только вот получили данные и рассматриваем. Результат потом огласим.

Но сдаётся мне, уже при беглом просмотре, что в ECC не участвуют первые 6 байт.

Yokel
27.11.2011, 07:51
Yokel, ты рассматриваешь код в 16-ричном редакторе в 16 столбиков или в 17?

Может у тебя просто контроллёр другой или память.
Я рассматриваю тот, что в шапке с контроллёром UD1F.
Хотя во многих дампах видел тоже самое, но может быть и по другому, смотря какая геометрия.


Кстати, мы с gregorio ночью всё-таки провели эксперимент по заливке данных через USB.
Сейчас только вот получили данные и рассматриваем. Результат потом огласим.

Но сдаётся мне, уже при беглом просмотре, что в ECC не участвуют первые 6 байт.

Контроллер у меня такой же как у тебя! Вот тебе служебка:
00 07 00 FD FF FF 62 38 0F 4B 50 04 3B F4 83 5E

ErikPshat
27.11.2011, 08:10
Контроллер у меня такой же как у тебя! Вот тебе служебка:
00 07 00 FD FF FF 62 38 0F 4B 50 04 3B F4 83 5EО_о у меня в дампе такого нет. У меня встречаются или 00 или FF.
Хотя может я напутал, может 5-ый байт отвечает.
Просто вчера рылся по документациям и в нескольких местах встречал раскладку по байтам, как оно должно быть.

У меня в основном в таком виде все сектора помечены:

A0 A0 01 FF FF FF 93 C6 4B 46 99 76 ED 53 41 F1

Yokel
27.11.2011, 08:39
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели.
http://www.elnec.com/sw/an_elnec_nand_flash.pdf
http://www.elnec.com/sw/samsung_ecc_algorithm_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
Тут написано, что 6

ErikPshat
27.11.2011, 08:48
Тут написано, что 6Да, я читал это и поэтому полез рыскать. Был на Тошиба, Самсунг и Hynix.

По моему на Самсунге читал про 4-ый байт. Но могу ошибаться, потому что от переваренной информации и этих кодов Рида-Соломона гоова пошла кругом :D

Так что вполне похоже, что действительно 6-ой, тем более, что вроде всё сходится.
Только почему у тебя 4-ый не зарезервированный?

Gregorio
27.11.2011, 22:41
но в итоге ECC пересчитался по новому) карта работает, есть косяки из-за ее происхождения(это всё-же китайское Г), надо попробовать на оригинале. буду переделывать проггер под BGA нанды, на днях опробую технологию на оригиналах. и надеюсь во второй раз всё получится

Yokel
28.11.2011, 05:58
но в итоге ECC пересчитался по новому) карта работает, есть косяки из-за ее происхождения(это всё-же китайское Г), надо попробовать на оригинале. буду переделывать проггер под BGA нанды, на днях опробую технологию на оригиналах. и надеюсь во второй раз всё получится

В итоге чего? Где предыстория?

ErikPshat
28.11.2011, 19:34
Но сдаётся мне, уже при беглом просмотре, что в ECC не участвуют первые 6 байт.Нет, всё не так. Видать всю ночь сидели с gregorio и уже галюники пошли.
Сегодня выспался и заново рассмотрел, что мы там нахимичили.

В общем структура данных сервисной области такая:

Сначала идёт сектор с самим MSID
Следом идут 3 сектора, полностью забитых FFFFFFFF
Затем идёт сектор с PID|VID+Размер(4Гб)+Формат_FAT(32)

То есть, структура идёт по формуле 1+3 - один сектор первичный, затем 3 вторичных сектора, потом опять первичный и 3 вторичных. И так вся карта.
Как мы знаем, 4 сектора - это одна страница. Вот и получается постраничная организация.

У Гриши попалась такая хитрая карта на 4 Гб, что в области MSID избыточные данные не имеют нумерации блоков. Там первые 4 байта просто FF FF FF FF, затем 2 байта FF FF и далее идёт 10 байтов ECC.

В общем, процесс происходил в следующем порядке:

Отпаяли микросхему памяти.
Сняли программатором дамп первого Банка(их там 4 Банка по 1 Гб).
Физический размер дампа вышел 1,03 ГБ (1 107 296 256 байт), что оказалось как бы больше размера, заявленного производителем. Но, если взяться за арифметику, то выясняется, что эта разница как раз составляет эти 16 байт избыточного кода, приклеиваемого к каждому сектору. А логический размер, без избыточного кода, вплоть до байтика равен ровно 1 Гб (1 073 741 824 байт).
Сохранили эти 5 служебных секторов с MSID/3хFFFFFFFF/PID|VID... отдельно
Удалили у каждого сектора служебку с ECC - по 16 байт. Правда 3 сектора по FFFFFFFF не имеют контрольной суммы, но избыточный код всё равно присутствует, просто все 16 байт тоже забиты FF-ками, поэтому конечно же тоже избавляемся от него. Собственно нас интересует только один сектор, где предположительно требуется смена MSID, но, для полноты эксперимента, забираем все 4 сектора + 5ый сектор, содержащий PID|VID|Format|Size
В итоге получилось 5 чистых логических секторов ровно по 512 байт.
Затем, имея в виду, что один блок содержит 256 секторов по 512 байт каждый - подсчитываем размер блока = 131072 байт.
Ложим эти 5 секторов в начало блока и забиваем оставшиеся 251 секторов блока символом "X" (58 в хексе) для наглядности. Таким образом у нас получился один цельный логический блок, размером 131072 байт (без ECC конечно)
Теперь копируем и размножаем этот шаблон блока до размера первоначально снятого дампа - 1,03 ГБ (1 107 296 256 байт). С размером умышленно переборьщили, рассчитывая на то, чтобы полностью переписался первый банк и чтобы не мешал оставшийся мусор, учытывая, что контроллёр сам подсчитает к каждому сектору свои 16 байт избыточного кода.
Таким образом, начало каждого блока у нас начинается с этих 5 секторов с MSID и далее забит просто "X-ами". Это делалось специально для того, чтобы проверить, действительно ли ECC меняется в каждом блоке.
Короче, получился вот такой файл Blank.bin (http://www.pspx.ru/forum/attachment.php?attachmentid=5085&d=1322493243)(осторожно! после разархивации 1 Гб).
Припаяли микросхему обратно на карту памяти, ничего не меняя в ней.
Подключаем по USB и заливаем этот файл Blank.bin, весом более 1 Гб в корень карты, с надеждой на то, что весь 1-ый Банк заполнится и останется без лишнего мусора.
Потом опять отпаиваем микросхему и снимаем дамп.
Проверяем и видим, что действительно в каждом блоке ECC меняется в виду того, что первые 4 байта имет нумерацию этого блока. С другой стороны, нумерация блока проставляется только в каждом первом секторе, каждой страницы. НО!!! В остальных 3-ёх секторах страницы нумерация в первых 4-ёх байтах отсутствует, но отлична от FF FF FF FF, там выставлено EF FF FF FF (а это печально, потому что мы могли бы подсчитывать ECC к MSID сектору). И таким образом, ECC у младших 3-ёх секторов по всему дампу одинакова, не зависимо от номера блока.
Вот этот заново снятый дамп (http://www.pspx.ru/forum/attachment.php?attachmentid=5086&d=1322494226), после заливки по USB поблочного файла. (Осторожно! после разархивации 1 Гб)
Можете сами посмотреть структуру и как сменяется ECC в зависимости от нумерации блока.

Итог: первые 4 байта избыточного кода - участвуют в формировании контрольной суммы ECC.

Потом я снял дамп со своей карты памяти с микрухой HY27UY08AG5M и контроллёром 0805-0
Но у меня первые 4 байта в системной области всё-таки пронумерованы.
Зато ECC не содержит нигде! :xDD:

http://www.pspx.ru/forum/attachment.php?attachmentid=5084&d=1322490201

Yokel
29.11.2011, 05:32
Выложи фото этой карты и этого контроллера!

Gregorio
29.11.2011, 06:15
Yokel, а тебе оно надо? эти карты уже не найдёшь, я об этом позаботился) я-же когда их пытался делать, скупал сотнями.. и не только по Москве, по всей России и Украине собирал) так что практически не вариант..

ну а если вдруг всё-же захочешь, всю инфу дам через асю/скайп

ErikPshat
29.11.2011, 17:41
Кстати, контроль ECC как-то можно отключать. Читал на той неделе на сайте Тошибы, там прилагается какой-то файл патча, который отключает генерацию и проверку ECC.
Думаю на картах других производителей имеется свой метод.

P.S. В шапке инструкцию подкорректировал.

Yoti
30.11.2011, 22:48
файл патча
Прошивки контроллера?

frostegater
30.11.2011, 23:22
ErikPshat, дай ссылку на ту инфу. Изучить нужно метод.

ErikPshat
01.12.2011, 13:52
Прошивки контроллера?Нет, именно патч нанда.
Сейчас трудновато сразу найти, но по ссылкам ранее можно туда попасть.

manyaksbs
03.12.2011, 18:45
Please translate to english or turkhısh. Please!

Lütfen birisi ingilizceye veya Türkçeye çevirsin şu yazıyı deli olcam lan. :(

frostegater
03.12.2011, 18:50
manyaksbs, http://www.pspx.ru/forum/showthread.php?goto=newpost&t=92463

manyaksbs
03.12.2011, 19:04
manyaksbs, http://www.pspx.ru/forum/showthread.php?goto=newpost&t=92463

Thank you but i don't understand it. Do you use team weaver? can you help me?

Yoti
03.12.2011, 19:27
Я там тоже нифига не понял) Какие-то доступные и недоступные карты. Прям не карты, а женщины продажные. Или "напишите в бумагу". Кошмар! Поправил пару фраз.


Do you use team weaver?
Remote soldering? lol

manyaksbs
03.12.2011, 19:46
Remote soldering? lol

sorry "team viewer 6"

dragonforce
04.12.2011, 00:53
подскажите пожалуйста, где взять программатор и что это такое?

dragonforce добавил 04.12.2011 в 00:50
самый непонятный элемент- установка чипа в прогрмамматор

dragonforce добавил 04.12.2011 в 00:53
пожалуйста!! кто нибудь может эту инструкцию обьяснить более менее понятней( срочно нужно анбрик на 88-3

vash
04.12.2011, 01:12
подскажите пожалуйста, где взять программатор и что это такое?

dragonforce добавил 04.12.2011 в 00:50
самый непонятный элемент- установка чипа в прогрмамматор

dragonforce добавил 04.12.2011 в 00:53
пожалуйста!! кто нибудь может эту инструкцию обьяснить более менее понятней( срочно нужно анбрик на 88-3
Просто афигеть, вот оказывается, как нужно делать анбрикер, просто "надавить" на авторов темы и "вуаля", "анбрикер" твой, прям с нета в руки свалится через модем :clapping:

dragonforce
04.12.2011, 01:22
я просто спрашиваю откуда взять программер и инструкцию (более понятней)

vash
04.12.2011, 01:37
dragonforce, а если серьёзно, прочти шапку темы, там всё подробно расписано, и даже видео прикручено, просто твои вопросы слишком "по-детски" выглядели, ведь тебе никто за тебя делать ничего не будет, а как сделать, здесь написано. Читай, если непонятно, задавай вопросы по-теме. В двух словах, если тебе только одну консоль ПСП восстановить, то "овчинка выделки не стоит", в плане, будет дороже, чем три новые ПСП, а вот если профессионально хочешь заняться, то тут потребуются ещё большие денежные вложения.

dragonforce
04.12.2011, 01:52
а можно те же манипуляции с флешкой сделать, не вынимая чип , а просто открыть ее ввиде диска.? обязательно нужен программер?

vash
04.12.2011, 01:57
dragonforce, нельзя. Вникай в тему.

dragonforce
04.12.2011, 12:21
http://www.chipdip.ru/product/master-32-usb.aspx
этот подойдет?

frostegater
04.12.2011, 12:39
http://www.chipdip.ru/product/master-32-usb.aspx
этот подойдет?

нет, где ты там видел чтобы он тсоп-48 поддерживал хотя бы... не суйся, прошу

Yoti
04.12.2011, 16:54
dragonforce,
учись читать вдумчиво. Отправляю тебя в РО.

Yokel
05.12.2011, 10:00
Если у меня карта на 512 и сектор с MSID содержится по адресу A0 A0 01, а в карте на 1 гиг, на таком же контроллере этот адрес не будет в user area? Можно было бы попробовать в карте на 1 гиг рассчитать ЕСС для этого адреса.

ErikPshat
05.12.2011, 16:34
этот подойдет?Ещё этот должен подходить:
http://www.romservice.ru/mod.html
http://www.triton-prog.ru/
http://www.elnec.com/products/universal-programmers/beeprogplus/
http://www.elnec.com/products/universal-programmers/beeprog2/

NAND FLASH: Samsung K9xxx, Hynix HY27xxx, Toshiba TC58xxx, Micron MT29Fxxx, Spansion S30Mxxx, Numonyx (ex STM) NANDxxx

yvan
05.12.2011, 22:47
Hello to everyone.
I already asked ErikPshat, I will share with you, I have a memory card with NAND Samsung SMD K9HAG08UIM, I saw this economic programer progskeet.com, and this solderless NAND adapter www.360-clip.com, can you tell me if it's compatible with my NAND? Think it will work?
Forgive my bad English.
thanks

Gregorio
06.12.2011, 01:16
yvan, Hi!
I use progskeet for read nand flash. not sure about the clip, may need soldered to nand.
Sorry for my bad english

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

LaKosta
06.12.2011, 01:20
По моему клипса должна подходить к Нандам TSOP-48.
Она просто надевается сверху, как крышечка.
Но тут нужно проверять разводку по даташиту у микросхемы Samsung K9HAG08U1M (http://www.seekic.com/pdf/?keyword=K9H) и разводку в клипсе 360-CLIP (http://www.wii-clip.com/360/48pin_ic.jpg).

При беглом взгляде, не похоже, что Samsung K9HAG08U1M PCB подходит по параметрам, как микросхема в картах памяти MSProDUO.
Он видать пытается запрограммировать микросхему в iPad Nano )))

Gregorio
06.12.2011, 01:24
LaKosta, да я не про это. на матерях боксов или пс3 место рядом с нандом есть и клипса одевается чудно. но карта сама по себе мелкая, рядом с нандом есть контроллер и кучка мелочёвки. и в теории клипса может просто не налезть

LaKosta
06.12.2011, 02:21
Ну не думаю, что совсем в этом дело. На PS3 тоже рядом находится множество элементов.

Главное, чтобы подошёл по разводке, а дальше уже дело техники. Можно в конце-концов подрезать шапку.

Короче, судя по даташитам, похоже, что они подходят под этот чип:

Вот схема разводки клипсы 360-CLIP:

http://img828.**************/img828/5886/48pinic.png

И вот схема разводки Samsung K9HAG08U1M:

http://img844.**************/img844/5244/samsungk9xxg08uxm.png

Gregorio
06.12.2011, 02:36
LaKosta, да она в любом случае подойдёт, технология одна и выводы те-же