Просмотр полной версии : Pandora (unbricker/downgrader) для PSP-200X TA-088v3
Страницы :
1
2
[
3]
4
5
6
7
8
Скидывай конечно
Спасибо.
Gregorio
24.08.2011, 15:57
sashapv19, не стоит пытаться делать деньги на продаже карт.. у меня из-за одного использования ее было неприятное общение с органами. а уж продавать.. хотя тебе решать.
Ну всё, процесс пошёл, что-то будет.
frostegater
25.08.2011, 02:50
vash1, ты прав.. будет пи*дец. БСТП(К) точняк кого нить захапает за продажу, это 100%..
vash1, ты прав.. будет пи*дец. БСТП(К) точняк кого нить захапает за продажу, это 100%..
можно не продавать их а например бартер....меняю 2000 на флешку !!!и все
Gregorio
25.08.2011, 13:39
ventola, всё-же сервисная карта это инструмент для работы, а не товар, который можно продавать.
darklordmen
26.08.2011, 01:50
Все доброго времени суток!
Прочитал, не поленился, все 6 страниц.
Мне очень понравилась тема. Существуют же такие люди! Голова на плечах! И руки от туда же!
Лично мне не понравилось, то, что эти карточки продавали. Это не есть хорошо!
Я думаю, что лучше ее сделать самому, что собственно и хочу сделать.
Руки вроде есть. С PSP Знаком не понаслышке. Думаю, что сделаю.
Но один вопрос меня тревожит.Можно ли это сделать и на 300x версии?
Я знаю, что ВШапке темы написано. Я просто интересуюсь. Вообще это возможно?
Я не требую детально инструкции. Просто нужен ответ: Да или нет.
Спасибо вам, за данную тему! Крепко всем участникам жму руку.
Вот они, умы страны!
darklordmen, раз ты читал все страницы(ЦЕЛЫХ 6!!!!1111адын адын))))), то как-то странно, что ты не заметил подобного вопроса(и ответ на него) на странице 3.
Или таки не читал?
Мне кажется это название видео от Yoti порядком всех с толку сбивает.
sashapv19
26.08.2011, 07:58
gregorio,
у меня купили их в сц нескольких где псп делают... я сам подходил туды и спрашивал надо ими или нет. У меня с радостью купли их по 1,5к.
Больше пока делать их не собираюсь, т.к. щас занимаюсь анбриками и прошивками пс3.
labaz,
в названии видео максимально точно описана сущность карты. Не нравится? Не читай.
labaz,
в названии видео максимально точно описана сущность карты. Не нравится? Не читай.
Да мне то всё нравится)
Я про то, что люди видят это - 090v2-092 и в сотый раз спрашивают про 3000.
darklordmen
26.08.2011, 14:06
Да, я понимаю, что этот вопрос уже всех людей в этой теме достал)
Вы уж извините, знаю.
Мне тут скоро должна прийти PSP 300х попробую с ней пошаманить.
Может что и придумаю. А вам огромное спасибо, за такое чудо!
Я уверен, что вы способны еще на большее(хотя куда уж больше)
Мне кажется, не каждому бы человеку пришла такая мысль. Перепрограммировать флешку, а точнее NAND флешки!
Я очень лично от себя вам благодарен!
Извиняюсь за оффтоп.
DARK-MAN-X
26.08.2011, 14:08
labaz, карта рабочая и на 090v2-092 но там нужен особенный аккумулятор
Nemetc14
26.08.2011, 16:00
Народ а кому известен корявый способ перевод консоли при подачи напряжения на определеные точки?
Gregorio
27.08.2011, 08:41
Nemetc14, способ относительно рабочий. у меня работал не на всех приставках. а куда напряжение подавать.. читай мануал по матери, там спокойно точки на маме находятся
darklordmen
30.08.2011, 10:57
Nemetc14, способ относительно рабочий. у меня работал не на всех приставках. а куда напряжение подавать.. читай мануал по матери, там спокойно точки на маме находятся
А можно ли ссылку на данную тему? Уж очень интересно стало.
Gregorio
30.08.2011, 15:03
darklordmen, ссылок нет, способ мало кому известный. единственное что могу предложить, это мануал по 85ой матери (http://narod.ru/disk/23416905001/Service%20Manual%20TA-085%20Level%203.pdf.html)
если мозги есть, то поймёшь что и куда подавать.
newborndark
04.09.2011, 21:57
http://www.youtube.com/watch?v=rnceXZi2pIo&feature=player_embedded
Cmon Let us know the simplest way to do this w/o programmer i know theres a way
If you think how SONY unbricks those paperweight psp, at least you know that they dont use FAKE MS am i ryt?
just one question: are you stupid?
plz stop posting such useless things or someone get you RO
newborndark
07.09.2011, 19:28
Ok im sorry, im just asking , if you think im stupid thats alryt..
scary though
labaz, не все контроллеры на китайских стиках поддерживают изменение msid.
...часто контроллер обнаруживает подмену msid и карта умирает
Обнаруживает он ее следующим образом:
(1)теория.
Контроллер работает с памятью большими блоками (512, 1024, 2048 и т.д. страниц).
Каждая страница состоит из полезных данных и служебных (512+16, 512+24, 4096+128(K9GAG08U0M) это 512х8+16х8, 4304 = (512+26)*8 или посложнее (512+26)*2/(512+28)*6/4).
В служебных данных каждой страницы содержится всякая служебная информация, включая код ЕСС (код коррекции ошибок). В даташите на конкретный контроллер есть все сведения. качайте, смотрите.
В нем то у вас вся и загвоздка.
ЕСС это что-то вроде контрольной суммы страницы памяти, только с возможностью коррекции битовых ошибок. Емкость такой коррекции (число битовых ошибок которые контроллер может поправить зависит от длинны кода ЕСС и метода коррекции.
http://ru.wikipedia.org/wiki/ECC
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D 0%BC%D0%BE%D0%BD%D0%B0
(2) Практика (или где кроется "подводный камень):
- контроллеру подается команда считать блок данных, в котором находится ИЗМЕНЕННАЯ страница;
- контроллер читает весь блок одним махом в буфер;
- далее он уже в буфере проходит по всем страницам считанного блока и смотрит каждую на предмет сходится ли ЕСС страницы. Если все в норме, эта страницы памяти пропускается;
ДАЛЕЕ ВНИМАНИЕ!!
Если ОБНАРУЖИВАЮТСЯ битовые ошибки, то контроллер ПЫТАЕТСЯ исправить эти ошибки. Так как ВНОСИМЫЕ ВАМИ изменения малы, а алгоритмы коррекции в современных накопителях все мощнее и мощнее, контроллер скорее всего СКОРРЕКТИРУЕТ Ваши изменения в соответствии с прилагаемым к странице ЕСС.
Что делать и как быть???
(1) искать способ править дамп через контроллер (стандартный интерфейс накопителя) без обходного маневра с программатором. Уверен ГЕРОЙ уже появился на свет. Хватит ли ему духу остаться ГЕРОЕМ, изменяющим весь мир, а не БАРЫГОЙ, скрывающим тайну даже от своей второй половинки???;
(2) научиться писать в изменяемую страницу NAND помимо нужных данных еще и корректный код ЕСС. Этот путь очень тернист, т.к. алгоритмы в контроллерах постоянно совершенствуются, размер страницы тоже разнится.
(3) искать старые флешки, в которых контроллер наткнувшись на некорректный сектор, не сможет его на основании ЕСС скорректировать (алгоритм слабоват - слишком много изменений на странице памяти), и после нескольких попыток отдаст некорректный блок в свой интерфейс далее.
... ещё большая проблема со считыванием и записью nand.
NAND устроена так, что она ВСЕГДА пишется с ошибками. Это связано с самой технологией частоты производства микросхем (фантомные дефекты плавающего затвора). Их еще называют "битовые ошибки" (что-то вроде временных бэд-блоков, только на уровне одного бита данных). Для компенсации этих процессов изобретены алгоритмы коррекции ЕСС (алгоритмы коррекции битовых ошибок).
Скачайте даташит на любую микросхему (скажем на K9GAG08U0M), рассмотрите его. Вы увидите что в служебке страницы NAND заложено место под код ЕСС (у K9GAG08U0M - Page Size : (4K + 128)Byte, 128байт на страницу в 4096).
Сам алгоритм заложен в контроллере. Для примера, скачайте даташит на контроллер AU6980. Контроллер Мемористик блочно мало отличается от этого.
... и снова надо делать на новой карте всё заново
Причина умирания карт кроется в двух моментах:
(1) карты неработоспособны по причине не правильной пайки NAND микросхемы. Если не считать установку не по ключу первой ноги, то "не пропай". Пайка волной + микроскоп все решают.
(2) карты неработоспособны по причине не осторожной разборки корпуса и выковыривании платы.
(3) вероятно, что у контроллера из-за изменений в памяти сорвет крышу (он не отдаст порченный блок в свой интерфейс) и он перейдет в технологический режим. Его можно вывести из этого режима путем замыкания в момент подачи питания соседних выводов шины данных между собой (D0,D1 или D6,D7). Затем форматнуть как обычно.
Erema36,
в принципе, ничего нового, но ёмко и в одном месте =)
Только вот с пропайкой у нас нет проблем, да и контактов "ГЕРОЯ" не знаем. Подскажешь?))
В моём дампе последовательность 204D5350534E5930 встречается 3 раза
2 раза в первом банке и 1 раз в конце второго
Флешка Toshiba TH58NVG5D4CTG20 4Gb - 2 банка по 2Gb
Возникает вопрос - какой msid менять? Или все три?
Вот скрины
первый банк раз
http://s59.radikal.ru/i165/1109/1e/e8fc76f1cf24t.jpg (http://radikal.ru/F/s59.radikal.ru/i165/1109/1e/e8fc76f1cf24.jpg.html)
первый банк два
http://s43.radikal.ru/i101/1109/a5/50342a6dea14t.jpg (http://radikal.ru/F/s43.radikal.ru/i101/1109/a5/50342a6dea14.jpg.html)
второй банк
http://i049.radikal.ru/1109/ea/d4ce0f9f2922t.jpg (http://radikal.ru/F/i049.radikal.ru/1109/ea/d4ce0f9f2922.jpg.html)
И по поводу SN, родной оставлять или тоже менять?
в принципе, ничего нового, но ёмко и в одном месте =)
Спасибо.
Тему прочитал. Задача разжевана и понятна.
На днях раздобуду MS Pro и приступлю к экспериментам.
Вопрос: какие-либо утилиты под MS от производителя у кого-нибудь есть ?
Интернет отдает кучу бестолковых страничек.
В моём дампе последовательность 204D5350534E5930 встречается 3 раза
2 раза в первом банке и 1 раз в конце второго
Глупо хранить служебные данные накопителя в одном месте. Что будет если блок выйдет из строя и будет подменен транслятором? Пропадут немаловажные данные. Это не логично.
По аналогии с файловыми системами, таких мест должно быть два.
Третье - это, наверняка, как раз брошенный контроллером блок. Ему лень тратить время на затирание.
от самой сони есть проги для востановления "убитых" стиков..тока китайцев они нах посылают..
Возникает вопрос - какой msid менять? Или все три?
И по поводу SN, родной оставлять или тоже менять?
Тему читать кто будет?
от самой сони есть проги для востановления "убитых" стиков..тока китайцев они нах посылают..
Тогда логичный вопрос:
как утилита различает китаец перед ней или нет?
Уже ли не кода MSID играет свою роль. Интересно будет посмотреть что те что другие.
Время покажет.
Извиняюсь. Это тема уже другой темы форума.
Gregorio
08.09.2011, 21:38
Boryan, а у меня сия утилита работала с китайцами. только не все восстанавливались, ибо совсем мертвые были.
labaz, первый скрин это файл msid.bin или его остатки. короче этот файл создал дампер и там ничего менять не нужно.
второй скрин странный, не могу точно сказать.. на половину похож на то что должно быть.
третий скрин наиболее похож на то что надо менять, на всех картах примерно так оно и выглядело(когда я пробовал делать)
Erema36, такая штука как magic gate видимо. программа может проверять карты на поддержку его. хотя у меня она кушала все карты
ErikPshat
09.09.2011, 03:14
(1)теория.
Контроллер работает с памятью большими блоками (512, 1024, 2048 и т.д. страниц).
Каждая страница состоит из полезных данных и служебных (512+16, 512+24, 4096+128(K9GAG08U0M) это 512х8+16х8, 4304 = (512+26)*8 или посложнее (512+26)*2/(512+28)*6/4).Не стал цитировать весь пост. Но фактически всё правильно! Наверное первый человек, начавший писать в данной теме по существу =)))
В факе мы не стали расписывать все эти тонкости, т.к. не собираемся писать диссертацию для нубов, а написали инструкцию для более-менее разбирающихся в пайке, микросхемах и радиосхемах, а значит готовым взяться за это дело. Им должно быть и так известно про такие технические подробности.
Конечно же, разобрав карту и обнаружив можель микросхемы, первым делом необходимо ознакомится со спецификацией данного чипа.
Ну а кто никогда не держал в руках паяльник, не собирал хотя бы простейших схем, никогда не программировал микрухи и не в курсе, что такое даташит и считает, что здесь всё так просто - тот всё-таки сильно ошибается )))
Хотя, начинать никогда не поздно, как раз хороший повод бежать в магазин за паяльной станцией с феном или термопинцетом, потому что без неё "ансолдеринг" и "солдеринг" будет ох как затруднительным ))), ну и заодно стоит подкупить немного флюса (http://www.chipdip.ru/catalog/show/flux.aspx), оплётку (desoldering-wicks) и мозговой жидкости (http://ru.wikipedia.org/wiki/%C3%EE%EB%EE%E2%ED%EE%E9_%EC%EE%E7%E3).
Немного стоит уточнить понятия страниц, секторов и блоков.
На примере Hynix HY27UH08AG5M, упоминающейся в факе.
1 сектор = занимает 512 байт + данные позиционирования сектора и контрольная сумма ECC (16 байт) в конце каждого сектора.
1 страница = это 4 сектора со своими служебными данными, т.е. 2048 байт + 64 служебных байта = 2112 байт. Это как раз минимальное значение, которое умеет считывать и писать данный чип по даташиту.
1 блок = 8 страниц или 32 сектора, конечно же вместе с техническими данными. 16384 +512 = 16896 байт или 16,5 килобайт. Это минимальное значение, с которым должен уметь работать контроллёр (чтение/запись), используемый в данной области применения.
А так же, достоверно известно, что в один и тот же блок не может быть записано 2 разных файла/кода данных. Если в начало блока попадает конец файла/кода данных (даже 1 или несколько байт) из предыдущего блока, то следующий файл/код данных начинает писаться только со следующего блока, заполнив неполностью использованный блок значениями FFFFFFFF...
Конечно в разных микросхемах спецификации страниц и блоков может разниться, но чаще всего, в области PSP, её нанде и картах памяти, я постоянно встречаю именно такую структуру.
Если что не так, поправьте, могу и ошибаться.
Короче, самая малая проблема состоит в правильном демонтаже и пайке.
Но самая главная проблема - именно в этих коррекционных 16-ти байтах, которые записаны в конце каждого сектора и подтверждают его целостность. А так как мы заменяем ID номер (фактически 4 уникальных байта) в определённом секторе, не пересчитывая заново контрольную сумму изменившихся данных, отсюда и происходит большой процент брака, т.к. контроллёр отбраковывает данный сектор или даже весь блок (?). Вот с этим и надо разобраться.
Если писать через контроллёр (т.е. логическим способом), то конечно он сам подсчитает и скорректирует нужную контрольную сумму. Но для этого нужно знать команду записи MSID и написать программу. Другой вариант - считать логический блок, сменить ID и обратно записать этот блок с помощью программы, но опять же, нужно знать номер блока и команду записи. Это самый верный вариант, но пока затруднительный. Команды вроде даже есть у нас и мы об этом варианте задумывались, вон Yoti чешет репу, читает каждый день мануалы и коды по MSID Dumper-у, чтобы поменять название программы на Writer :pleasantry:
Ну а пока, мы чешем репу, чтобы скорректировать ECC. А получается это пока не совсем корректно, только с помощью поддельных карт памяти, в которых, по нашему мнению, именно эта ECC умышленно не учитывается или просто контроллёр на эти 4 изменившихся байта закрывает глаза.
Немного стоит уточнить понятия страниц, секторов и блоков.
...
1 блок = 8 страниц или 32 сектора, конечно же вместе с техническими данными. 16384 +512 = 16896 байт или 16,5 килобайт. Это минимальное значение, с которым должен уметь работать контроллёр (чтение/запись), используемый в данной области применения.
Немного поправлю, чтобы не сложились ложные представления:
микросхема - HY27UH08AG5M
ссылка на datasheet - http://www.alldatasheet.com/datasheet-pdf/pdf/333915/HYNIX/HY27UH08AG5M.html
BLOCK SIZE
- x8 device: (128K + 4K spare) Bytes
Высчитаем размер блока, как минимальной единицы манипулирования данными:
Block size= 128*1024+4*1024= 135 168 байт
т.е. пишем и читаем полезными кусками данных по 128 Кбайт.
Т.о. именно для этой микросхемы размер блока 64 страницы памяти.
Но самая главная проблема - именно в этих коррекционных 16-ти байтах, которые записаны в конце каждого сектора и подтверждают его целостность. А так как мы заменяем ID номер (фактически 4 уникальных байта) в определённом секторе, не пересчитывая заново контрольную сумму изменившихся данных, отсюда и происходит большой процент брака, т.к. контроллёр отбраковывает данный сектор или даже весь блок (?)
Согласен с Вами. Алгоритм коррекции ЕСС есть самое громадное препятствие.
Возьмите один из них - Код Рида — Соломона (самый распространенный).
Почитать вот тут - http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D 0%BC%D0%BE%D0%BD%D0%B0
Провел эксперимент комплекс PC-3000 Flash SSD Edition + дамп 4Гб от MS Pro (вроде бы оригинал)
Микросхема K9HBG08U1M, страница 528 байт (512 +16)
Избыточность кода позволяет корректировать 5 байт любых изменений на странице.
Т.е. я беру и хаотично меняю байты на странице. Затем делаю проверку и коррекцию ЕСС. И моих изменений как не бывало.
Поэкспериментировал далее. Только утвердился в своих выводах: будет ли сделана коррекция ЕСС зависит от того что и на что я меняю. Вот он может поправить и 8 изменений, а то и 3 байта уже не исправляет. Интересно что будет если я микросхему так и впаяю обратно в карту (контроллер то тоже не сможет скорректировать эту страницу).
Другой вариант - считать логический блок, сменить ID и обратно записать этот блок с помощью программы, но опять же, нужно знать номер блока и команду записи. Это самый верный вариант, но пока затруднительный. Команды вроде даже есть у нас и мы об этом варианте задумывались, вон Yoti чешет репу, читает каждый день мануалы и коды по MSID Dumper-у, чтобы поменять название программы на Writer
Можно мне, на условиях нераспространения, получить исходник/наработки по MSID Dumper?
На чем он написан?
frostegater
09.09.2011, 10:08
Можно мне, на условиях нераспространения, получить исходник/наработки по MSID Dumper?
На чем он написан?
На условиях чохочешделания.. лежат в шапке http://www.pspx.ru/forum/attachment.php?attachmentid=3826&d=1310272923.
Написано на Си. Только код корявый брр.. вместо табуляции пробелы. Редактировать, как по мне, просто нереал пока не оптимизируешь.
Редактировать, как по мне, просто нереал пока не оптимизируешь.
Ага, я вручную его от нефиг делать "причесал". А так, можно было попробовать автоматом на регэкспах почистить.
ErikPshat
18.09.2011, 23:30
Немного поправлю, чтобы не сложились ложные представления:
микросхема - HY27UH08AG5M
ссылка на datasheet - http://www.alldatasheet.com/datashee...7UH08AG5M.html
Высчитаем размер блока, как минимальной единицы манипулирования данными:
Block size= 128*1024+4*1024= 135 168 байт
т.е. пишем и читаем полезными кусками данных по 128 Кбайт.
Т.о. именно для этой микросхемы размер блока 64 страницы памяти.Да, да, да, спасибо за поправку.
Так и есть, 1 блок содержит 64 страницы (256 секторов). Страница спецификации (http://html.alldatasheet.com/html-pdf/333915/HYNIX/HY27UH08AG5M/638/4/HY27UH08AG5M.html).
Писал по памяти и чё-та попутал, видать с "блочностью"-кластерностью логической записи файлов на карты памяти FAT16 до 2 Гб. Да, именно так, файлы пишутся на карту строго кластерами по 32 сектора (8 страниц (16k)). Если файл заканчивается в начале какого-либо кластера секторов, то следующий файл уже не пишется в данный раздел, а начинается только со следующего кластера. То есть, вот такое нерациональное расходование пространства.
Далее по делу...
Здесь описана (http://html.alldatasheet.com/html-pdf/333915/HYNIX/HY27UH08AG5M/2087/13/HY27UH08AG5M.html) процедура чтения и записи, где видно, что это действительно делается страницами - чтение любой страницы или серийно несколько страниц; запись только циклами по одной странице.
Здесь описывается (http://html.alldatasheet.com/html-pdf/333915/HYNIX/HY27UH08AG5M/2248/14/HY27UH08AG5M.html) процесс стирания и, как я понял, стирать данные в этой микросхеме можно только блоками, но никак не страницами. Причём новый подготовленный блок, необходимо предварительно загрузить в кэш микросхемы, иначе команда стирания будет игнорироваться, защищая её от случайного стирания в случаях посторонних электрических наводок со стороны.
К чему это я...
Дело в том, что мой программатор "Тритон (http://www.triton-prog.ru/)" умеет считывать микруху страницами. Но когда я произвожу обратную запись исправленной страницы, то он выдаёт запрос на стирание. Если отказаться от стирания, а пытаться писать поверх, то после проверки оказывается, что он ничего не пишет.
Если разрешить стирание предыдущих данных, то он производит цикл стирания-записи и все данные прекрасно переписываются.
Отсюда возникает вопрос: а не стирает ли он полностью блок (64 страницы), прежде чем записать новую одну страницу? :xD:
Вот этот момен я как бы не проверял. Я считывал только данную одну страницу под номером 07FFC4 во 2-ом банке памяти и видел, что все данные на этой странице записаны правильно, MSID поменялся точно на своём месте.
А вот что на следующих или предыдущих страницах не проверял. Короче, карты выходят не рабочими.
С другой стороны, если взять программатор "Flash Reader (http://www.soft-center.ru/reader/)", то на нём карты получаются рабочими, хотя процент брака достаточно велик. Но вот он, как раз, не умеет читать и писать страницами. Он только снимает полный дамп и так же обратно весь дамп и пишет.
этот Flash Reader вообще писать умеет?
frostegater
22.09.2011, 12:44
Этот Yokel вообще читать умеет?
С другой стороны, если взять программатор "Flash Reader (http://www.soft-center.ru/reader/)", то на нём карты получаются рабочими, хотя процент брака достаточно велик. Но вот он, как раз, не умеет читать и писать страницами. Он только снимает полный дамп и так же обратно весь дамп и пишет.
Да, вариантов там не густо, можно только банки по отдельности читать\писать.
Их софт вообще под другие нужды заточен)
А вот с браком не понял. У меня пока было только пара китайских стиков и контроллеры в них не подходящие. После смены MSID работать отказывались вообще, но после смены MSID на родной работают как прежде.
frostegater
22.09.2011, 14:45
labaz, ты вписывал оригинальный дамп при восстановлении? Попробуй сменить 1 байт во второй части MSID и проверить, потом записать, но не оригинальный дамп а предыдущий байт. Может с записью чото косячит... но странно.
Сливаю дамп, меняю id (родной дам конечно храню отдельно)
После смены id карты прекращали работать.
Для восстановления вливал, конечно, родной бэкап.
Попробуй сменить 1 байт во второй части MSID и проверить, потом записать, но не оригинальный дамп а предыдущий байт.
Вот тут что то не понял.
Прежде чем в уже нерабочую флешку лить родной дам, сливал уже второй раз
там всё верно как и записывал (id заменён)
ErikPshat
22.09.2011, 15:30
Вот тут что то не понял.
Прежде чем в уже нерабочую флешку лить родной дам, сливал уже второй раз
там всё верно как и записывал (id заменён)Он наверное имеет в виду, пробовать заменять по 1 байту и заливать, потом каждый раз проверять.
Я думаю, что это контроллёр обнаруживает критическое количество ошибок - несоответствие хеш-суммы в 16-ти байтах после этого сектора, которые контролируют целостность данных этого же сектора (это как MD5 сектора). На самом деле там не все 16 байт контрольных, а кроме первых 4-ёх, которые во всех секторах одинаковые.
Поэтому, я так думаю, некоторые контроллёры замечают изменение 4-ёх байт MSID и заносят этот сектор, как бэд-блок в свою таблицу. Но вот некоторые контроллёры, почему-то этого не замечают и пропускают подвох, и прекрасно дают работать сервисной карте.
Frostegater, предлагает попробовать заменить только 1 байт и проверить на работоспособность карты. Если всё нормально, то заменить следующий байт и т.д.
некоторые контроллёры замечают изменение 4-ёх байт MSID и заносят этот сектор, как бэд-блок в свою таблицу.
Может изменения остаются незамеченными контроллером, если оригинальный MSID частично совпадает с тем на который мы меняем? То есть меняем не 4 байта, а скажем 2 ))
И кстати, эти 4 байта, каторые SN, менять необходимо или нет. В теме ответа на это чёткого нет.
ErikPshat
22.09.2011, 15:47
Вероятность стремится к нулю, чтобы прямо попалась такая карта, где разница в MSID будет составлять 2 байта.
Не обращал внимания, но возможно так бывает, например 3 байта разница.
Это нужно спросить, кто много таких карт паял, например у Boryan'a или gregorio.
Посмотрим, что они скажут.
Кстати, вот данные рабочей карты - все 4 байта разные:
204D5350534E593000784400B9FF0000 - было в оригинале
204D5350534E593000788884C6AA0000 - сменили и долго работала
сменили и долго работала
А в итоге, что с ней случилось?
ErikPshat
22.09.2011, 16:02
А в итоге, что с ней случилось?Через где-то полгода она умерла по непонятным причинам.
Впрочем, китайские фейки часто умирают, даже не ковырявшись в них.
Это та самая карта, которая на скринах в шапке во 2-ом спойлере. Я её фотал уже после того, как она умерла.
Контроллёр UD1F
Если интересно, вот её дампы программатором, до смены и после: http://www.mediafire.com/?7xwqdp17jy2jpcv
И кстати, эти 4 байта, каторые SN, менять необходимо или нет. В теме ответа на это чёткого нет.
Есть ответ. Причём, ровно такой, какой бы написали повторно. Ещё одно упоминание - и РО.
Здравствуйте, я по этой теме чуть ли не с самого начала. Я попробовал, и я был почти уверен, что я смогу сделать это. К сожалению, после долгих попыток я решил, что все эти семь страниц обсуждения только 0,01% по отношению к справедливому решению. Не могли бы вы уточнить? Какие карты памяти использовать для этой цели? Модель, производителя, где был приобретен, если это возможно, чтобы дать ссылку, по которой мы можем купить для этой общей цели? Программатор вы купили?
sashapv19
23.09.2011, 11:13
Naldas, А гугл для кого придумали? или Яндекс? Прогаммтор самая дорогая часть получается.
Naldas, А гугл для кого придумали? или Яндекс? Прогаммтор самая дорогая часть получается.
Скажи, что Google может помочь в этом вопросе?
sashapv19
23.09.2011, 11:35
Naldas, Да вводишь купить карту ~ ms 2gb и ищешь.
frostegater
23.09.2011, 11:51
sashapv19, mr. КО, а вы читали, что необходимы спешиал карты?
sashapv19
23.09.2011, 12:18
Frostegater, Я сделал себе такую карту правда из 3-х только одна заработала ((
frostegater
23.09.2011, 12:29
sashapv19, тебе ещё повезло... у меня 16тая.. ну я без тутора делал. С помощью друга правда.. он программатор слепил... первоначальную схему я выкладывал. Он её упростил до одного "слота".. писалось ужасно, перед этим ещё на обычных флешках тестили. С ними всё нормально было.. ну просто писали, паяли, пашет? да, нет.. ни одной обычной флешки не померло. А MSки сцуко.. мрут падлы. Щас карты нет, а та прожила 2 суток..
это контроллёр обнаруживает критическое количество ошибок - несоответствие хеш-суммы в 16-ти байтах после этого сектора, которые контролируют целостность данных этого же сектора (это как MD5 сектора). На самом деле там не все 16 байт контрольных, а кроме первых 4-ёх, которые во всех секторах одинаковые.
Поэтому, я так думаю, некоторые контроллёры замечают изменение 4-ёх байт MSID и заносят этот сектор, как бэд-блок в свою таблицу. Но вот некоторые контроллёры, почему-то этого не замечают и пропускают подвох, и прекрасно дают работать сервисной карте.
Frostegater, предлагает попробовать заменить только 1 байт и проверить на работоспособность карты. Если всё нормально, то заменить следующий байт и т.д.
ErikPshat, я о чем и писал выше: контроллер, сверив ЕСС измененного сектора, пытается его корректировать. Если это удается, то Вы не увидите своих изменений. Если не удается, карта более неработоспособна (пока все обратно не поменяется).
Но, не исключаю, что китайские поддельные карты с непонятно каким контроллером, при неудачной попытке коррекции ЕСС сектора, отдадут в интерфейс измененный сектор.
Это я уже проверил экспериментами. Кроме слепого поиска таких карточек, вижу следующий выход:
- изменение данных в нужном секторе;
- пересчет ЕСС этого сектора;
- запись кода ЕСС в служебную область этого сектора.
===========================================================
Контроллёр UD1F
Если интересно, вот её дампы программатором, до смены и после: http://www.mediafire.com/?7xwqdp17jy2jpcv
ErikPshat, ее id (идентификатор) можете еще написать?
Я попробую с ЕСС поэкспериментировать.
frostegater
26.09.2011, 08:56
Erema36, то есть вы предлагаете вместе с msid корректировать EEC, я вас правильно понял?
Frostegater, иного выхода нет.
http://imglink.ru/thumbnails/26-09-11/553ee420c2ed4ec2d45d828395245a94.jpg (http://imglink.ru/show-image.php?id=3fff45b7a9b4ecf61ee197ab75f45776)
Точнее он есть - найти и разобраться с тех. командами.
Я никак не могу найти полную "memorystick pro specification". В интернете болтается только урезанная.
frostegater
26.09.2011, 10:49
Erema36, да в инете есть только урезаная. Команды контроллера все на XXh.. Всё что необходимо для этого сделать - это найти применение командам в коде, остальное дело подбора. Команда[1] => Запись с помощью команды[1] => Check => 1 ? => если 1, то правильно если 0, значит не записалось... и так далее увеличивать переменную команды.. (КЭПую потихоньку =) ).
ErikPshat
27.09.2011, 02:03
ErikPshat, ее id (идентификатор) можете еще написать?
Я попробую с ЕСС поэкспериментировать.MSID в шапке написан.
Его вы найдёте по аббревиатуре _MSPSNY0
Остальное - это 16 байт кода.
Gregorio
27.09.2011, 15:16
ErikPshat, не на всех картах он идёт как MSPSNY0. на некоторых китайках она другой.
сначала дампером лучше посмотреть, а потом уже найденное им значение искать.
gregorio добавил 27.09.2011 в 13:17
к примеру был MSPSDK0
gregorio добавил 27.09.2011 в 15:16
оффтоп
предположение. очень похоже что буквенная часть msid это сокращения.
MemoryStickProSoNY
MemoryStickProSanDisK
gregorio,
мы же китайские СОНИ копаем - потому именно этот айдент и берём. У СанДисков свой, так и есть.
Gregorio
27.09.2011, 22:37
Yoti, у китайцев тоже они разные.
gregorio,
можно предположить упаковку в не ту партию корпусов, если вообще для китайского подпола существуют какие-либо стандарты =)
ErikPshat
28.09.2011, 04:49
Чё-та у меня сайт не открывается. Здесь есть что-нибудь интересное?
http://www.pc-3000flash.com/solbase/task.php?orderby=device_type&dest=&group_id=45&lang=rus&from=30&PHPSESSID=28441843f1e955aeed1fede31dedcdaf
frostegater
28.09.2011, 07:56
Чё-та у меня сайт не открывается. Здесь есть что-нибудь интересное?
http://www.pc-3000flash.com/solbase/task.php?orderby=device_type&dest=&group_id=45&lang=rus&from=30&PHPSESSID=28441843f1e955aeed1fede31dedcdaf
Не очень, но есть. Держи скрин.
http://i32.fastpic.ru/big/2011/0928/dd/0d0188ae16bb0b8173551d9faf9017dd.png
MSID в шапке написан.
Его вы найдёте по аббревиатуре _MSPSNY0
Остальное - это 16 байт кода.
ErikPshat, я не MSID имел ввиду, а id - идентификатор микросхемы памяти в рамках Вашей задачи. Впрочем проблема с этим уже разрешилась. Осталось отработать на нескольких картах.:drinks:
этот Flash Reader вообще писать умеет?
Умеет, еще как.
Для этого используется программка NAND_Reader.exe
Yokel, если у Вас не выходит, то приведите ошибку или сообщение, которое он пишет. Наверняка, в конфиге Вы не указали размер и количество блоков микросхемы памяти. Поэтому и не пишет.
ErikPshat
27.10.2011, 09:47
Кстати, программатор PROGSKEET (http://www.progskeet.com/forum/viewtopic.php?f=2&t=2&sid=1ac2886d4bce059f4e5fc9ff06970059) вроде тоже может считывать и писать NAND.
Список поддерживаемых микросхем памяти у него пока мал: K9F1G08, S29GL128, K8Q2815, HY27US08.
Но думаю этим не ограничивается.
И к нему можно докупить такие панельки (http://www.progskeet.com/forum/viewtopic.php?f=2&t=452&sid=1ac2886d4bce059f4e5fc9ff06970059), которые одеваются прямо сверху на чип, не выпаивая его и программируется.
Gregorio
27.10.2011, 22:33
ErikPshat, я думал о панельке для чтения нанда без выпайки, но стоит он как-то очень прилично((
минус софтины от Софт Центра в том, что она не умеет читать отдельные сектора, она сразу дампит/заливает обратно целиком весь банк памяти.
ErikPshat, я думал о панельке для чтения нанда без выпайки, но стоит он как-то очень прилично((
минус софтины от Софт Центра в том, что она не умеет читать отдельные сектора, она сразу дампит/заливает обратно целиком весь банк памяти.
вот кстати насчет заливать целиком дамп(извините что не по теме!!!)...а кто разобрался как выставлять правильно блоки?
а кто разобрался как выставлять правильно блоки?
Все, у кого в голове не овсянка, а мозг =)
вот кстати насчет заливать целиком дамп(извините что не по теме!!!)...а кто разобрался как выставлять правильно блоки?
Звучит словно фраза ".. а кто разбирался как выставлять правильно страницы в книжке?"
vestax, Вам зачем, сказать можете?
Берете книгу с полки. Читаете ее с начало до конца. На 51 странице меняете одну строку. Возвращаете книжку туда откуда взяли. Причем тут порядок глав в книге?
vestax, способа всего два. Иногда к одной и той же флешки применимы оба одновременно:
(1) выстроить по порядку в соответствии с таблицей трансляции блоков;
(2) выстроить по порядку ориентируясь по возрастанию номеров блоков.
ErikPshat
28.10.2011, 21:14
а кто разобрался как выставлять правильно блоки?В данном случае мы сливаем дамп в сыром виде RAW. Поэтому выстраивать ничего не надо. Мы сливаем дамп в таком виде, в каком они лежат в нанде по порядку. И точно так же заливаем обратно.
Случай с выстраиванием порядка блоков, относится к восстановлению информации, т.к. они чередуются по банкам памяти и пишуться на самом деле не строго по порядку, а в освободившиеся ячейки, т.е. в начало, потом обходя имеющуюся легитимную запись после.
Но нам восстанавливать содержимое файловой структуры, например фотографий, видео, аудио, не требуется. Мы просто снимаем сырой дамп в таком перемешанном виде, как есть и точно так же в таком же виде пишем обратно на своё место.
Но один вид данных, один файл, всегда пишется непрерывно.
Кстати, программатор PROGSKEET (http://www.progskeet.com/forum/viewtopic.php?f=2&t=2&sid=1ac2886d4bce059f4e5fc9ff06970059) вроде тоже может считывать и писать NAND.
Список поддерживаемых микросхем памяти у него пока мал: K9F1G08, S29GL128, K8Q2815, HY27US08.
Но думаю этим не ограничивается.
И к нему можно докупить такие панельки (http://www.progskeet.com/forum/viewtopic.php?f=2&t=452&sid=1ac2886d4bce059f4e5fc9ff06970059), которые одеваются прямо сверху на чип, не выпаивая его и программируется.
Дороговат ОН!
Yokel добавил 29.10.2011 в 07:51
sashapv19, тебе ещё повезло... у меня 16тая.. ну я без тутора делал. С помощью друга правда.. он программатор слепил... первоначальную схему я выкладывал. Он её упростил до одного "слота".. писалось ужасно, перед этим ещё на обычных флешках тестили. С ними всё нормально было.. ну просто писали, паяли, пашет? да, нет.. ни одной обычной флешки не померло. А MSки сцуко.. мрут падлы. Щас карты нет, а та прожила 2 суток..
Поделись схемой плиз!
ErikPshat
29.10.2011, 13:05
Дороговат ОН!45 Евро = 2000 рублей - дорого?
А где ты видел программаторы дешевле? О_о http://www.progskeet.com/products.php
Ну разве что Teensy++ самому спаять. Ваще-то это не так трудно, при том что схемы где-то есть.
А "NAND Flash Reader (http://www.flash-extractor.com/shop/)" из софт-ценра недорого за 6500руб? Или "Тритон (http://www.triton-prog.ru/index.php?productID=118)" за 9000?
Да согласен в сравнении с другими то не дорого, тем более, если это профильное занятие и на этом зарабатывать то это вообще не дорого!!!
Gregorio
29.10.2011, 22:32
для создания такого инструмента для работы 5-7к не особо дорого, ибо карта ведь не только брики непрошиваек лечит. я очень много прошиваек этой картой к жизни вернул.
хотя в моём случае я больше за карты китайские заплатил, чем за проггер от софт центра
А в чем проблема с картами была?
frostegater
30.10.2011, 07:22
А в чем проблема с картами была?
Читай тему... контроллер пытается исправить ошибки в NAND и в конце концов убивает сам себя, а очень часто некоторые карты, даже "подходящие" горят после "прошивки".
ErikPshat
30.10.2011, 08:15
После каждого сектора (512 байт) идёт 16 байт контрольной суммы этого сектора, потом идёт опять сектор 512 байт и за ним 16 байт контролки.
И так каждый сектор имеет контрольную сумму, по типу MD5/CHA1/CRC.
Если в определённом секторе сменить MSID, то уже контрольная сумма этого сектора не совпадает.
Чтобы опять совпадало, требуется после смены ID подсчитать новую контрольную сумму. Но мы пока не знаем алгоритм подсчёта, это знает сам контроллёр. Хотя в программе у софт-центра прилагаются файлики подсчёта контролок к определённым видам контроллёров, но у нас их нет. Вероятно можно найти в инете эти самые алгоритмы. Они у каждого контроллёра свои.
Если интересно, каким образом идёт подсчёт контрольных сумм, можно ознакомиться с работой программы Flow Rebuilder 3.50 with ECC Gen (http://www.ps3news.com/PS3Dev/playstation-3-flow-rebuilder-3-50-with-ecc-gen-released/)
Она умеет упорядочивать блоки по порядку из правленного дампа нанда PS3, затем просчитывать контролки для каждого сектора.
frostegater
30.10.2011, 08:47
ErikPshat, так, допустим мы подсчитали контрольную сумму, но куда её мы будем писать? В эти 16 байт? Думаю, стоит найти где она хранится, а потом измерять и сравнивать. Ну даже если мы знаем где она хранится, ведь это как мне кажется не так сложно. Попробовать выдрать сектор без избыточного 16байтного кода хеша, и попробовать измерить её по различным хеш алго.
ErikPshat
30.10.2011, 08:52
Frostegater, ye ты странный какой )))
Как куда писать?
После того сектора, в котором мы меняем MSID.
Мы ведь меняем ID, а контрольная сумма то уже изменяется.
Именно поэтому многие карты памяти после этого перестают пахать, потому что мы сменили 4 байта MSID в секторе, а вот контролку не пересчитали.
Контроллёр, при обращении к этому сектору, видит, что не сходится сумма и считает, что это испорченный блок, поэтому заносит его в таблицу бэд-блоков.
Всё, карта больше не читает системную область и перестаёт работать.
frostegater
30.10.2011, 09:03
ErikPshat, дык, давай просчитать попробуем. Дай ка мне секторок с родным msid и его хешик. Всё отдельно, секторок без избыточного кода и только его! и хешик тоже отдельно в первоначальном виде.
ErikPshat
30.10.2011, 10:29
Всё отдельно, секторок без избыточного кода и только его! и хешик тоже отдельно в первоначальном виде.Ты не можешь отличить обычный Сектор от ECC (избыточного кода)?
Каждый сектор в RAW идёт по формуле 512+16.
Когда мы подключаем карту по USB, то контроллёр эти 16 байт ECC не выдаёт, а даёт файл по порядку 512+512+512+... .
А в сыром дампе мы видим не только 512 байт сектора, но и котрольную сумму у каждого сектора.
То есть, мы считываем сырой RAW-дамп программатором напрямую с микросхемы памяти, минуя контроллёр.
Если в дампе присутствуют FFFFFFFF и через каждые 512 байт отсутствует контрольная сумма, значит это место просто пустое, а на пустое место ECC не рассчитывается.
Короче, скачай вот этот мой дамп: http://www.pspx.ru/forum/showpost.php?p=981179&postcount=244
Вложи его во вложение, потому что я сам не могу его скачать оттуда, постоянно крутится индикатор загрузки и всё тут.
А я тебе выложу скрин, чтобы наглядно показать строение дампа.
frostegater
30.10.2011, 10:49
...
ErikPshat
30.10.2011, 11:48
Ну вот, думаю посмотрев на картинку ты всё-таки сумеешь в хексе отсчитать 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 байт тут же подсчитывает контрольную сумму сам с порядковым номером блока.
Если файл не помещается целиком в свободное место, то контроллёр пропускает это место и пишет в следующее свободное место.
Занятые места посреди карты образуются, если мы заполняем карту памяти до середины или до конца, к примеру, а затем удаляем файлы, записанные ранее. Таким образом, в начале освобождается место, а файлы, записанные позднее, остаются в конце или середине карты памяти.
frostegater
30.10.2011, 12:41
ErikPshat, постой, не развивай тему... кажись получилось... я там с одним челом сижу, щас он занят, потом ещё попробуем. Мало того, нашёлся способ программно это делать на SD'шках, надеюсь на MS'ках также выйдет. Перелазь в девелоперскую.
http://www.flash-extractor.com/forum/viewtopic.php?t=1837
Gregorio
31.10.2011, 07:14
Yokel, и все побежали покупать Flash Extractor =)
Можно поступить по другому:
...
(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), а вот код ЕСС защищает разное количество байт на странице.
================================================================================ ===============
(10) Файл то 512 байт, он ровно ляжет в один сектор. Контроллёр сам подсчитает и запишет контрольную сумму на этот сектор. Там только первые 4 байта контролки будут иметь не тот порядковый номер блока.
это очень зависит от контроллера, точнее от алгоритма по которому он хранит данные в доступном ему пространстве памяти.
ErikPshat
31.10.2011, 10:29
Что по сути такое [ЕСС]?
Код ЕСС - код коррекции ошибок. Иными словами это СRC с ограниченной возможностью коррекции содержания по которому он высчитан.
Сектор представляет из себя [данные] + [служебка].
Точнее сказать, [данные] + [служебка контроллера] + [код ЕСС].
Код [ЕСС] защищает не только [пользовательские данные], но и [служебку контроллера]. В частности, [служебка контроллера] - хранит номер блока в банке, ротацию блока и еще бог знает какие служебные биты-флаги.
Поэтому выше предложенный способ не сработает.
Сектор, имеющий одно и то же содержание пользовательских данных, будучи записанным в разные места через стандартный интерфейс, имеет разную [служебку контроллера] и следовательно разный [код ЕСС] (высчитанный из [пользовательских данных] + [служебки контроллера]).По моему ты слишком много читаешь детективов )))
Это же ECC - просто проверка целостности данных, но это не относится к шифрованию.
Представляешь, записав только один единственный файл, во сколько секторов он ляжет?
А если это куча файлов или один большой файл?
Если рассуждать по твоему, то получается, чтобы произвести чтение карты памяти или запись, то на вычисление ECC к каждому сектору уйдёт масса времени, от которого зависят характеристики карт памяти на скорость чтения/записи, которыми хвалится каждый производитель и соревнуются между собой.
На этом основании покупатели и делают вывод, какого производителя купить карту памяти.
Здесь всё обстоит намного проще.
Каждый сектор просто-напросто проверяется операцией XOR и всё!
На основании заранее заданоого сида, с помощью XOR вычисляется код этого сектора 512 байт.
Если на основании СИДА, с помощью операции XOR, получается другое значение, отличное от имеющегося, значит сектор считается фейковым.
Не зря же пишут:
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: здесь (http://www.user.su/Шифрование_с_помощью_операции_XOR) я нашёл код вычисления ECC
У нас есть дампы памяти, где как раз есть области, полностью забитые одинаковым кодом FFFF FFFF FFFFF FFFF
И у такого сектора есть 10-значный код ECC.
То что код имеет структуру u16 Bit Unsigned Short - я уже 100% вычислил и полностью уверен в этом.
Так что можно найти SEED - код преобразования XOR.
P.S. За основу берём этот дамп: http://www.pspx.ru/forum/showpost.php?p=986777&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.
По моему ты слишком много читаешь детективов )))
Это же ECC - просто проверка целостности данных, но это не относится к шифрованию.
Я просто знаю..
ErikPshat, где слова про шифрование?
XOR я вообще как тему трогаю, т.к. в MS Pro он пока что не встречается.
Тут линейный циклический код. Либо "Код Хемминга", либо "Рида — Соломона"
http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B8 %D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%88%D0%B8% D0%B1%D0%BE%D0%BA
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A5%D0%B5%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0
ErikPshat
31.10.2011, 11:48
Ну чтобы было более понятно, о чём я говорю и что есть на самом деле, то предлагаю, в качестве подсказки, небольшую элементарную задачку:
Вот вам задачка... Кто решит, тому +1 )))
Прилагаю отксоренный файл во вложении (http://www.pspx.ru/forum/attachment.php?attachmentid=4583&stc=1&d=1320050819).
Предлагаю его попробовать посмотреть в блокноте, в Hex Workshop и убедиться, что там ничего читабельного нет.
Ваша задача: на основе SEED'a, записанного по формуле 512/10 восстановить данные в 512 байтах сектора.
Подсказка: воспользуйтесь функцией Hex Workshop (http://www.pspx.ru/forum/showthread.php?t=91951) - "Tools => Operations => ^XOR..." (u16 Bit).
Результат можете выложить здесь в спойлер в теге CODE.
Воспользуйтесь функцией вывода - "File => Export => Text (*.txt)"
Текстовой редактор советую использовать EmEditor (http://www.pspx.ru/forum/showthread.php?t=91839), т.к. Блокнот показывает результат не форматированным.
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.
Кстати, это уже вопрос к нашим программистам Yoti и Frostegater: здесь (http://www.user.su/Шифрование_с_помощью_операции_XOR) я нашёл код вычисления ECC
-Artix 20:45, 15 января 2011 (UTC)
Шифр XOR - очень плохой шифр, потому что если в исходной последовательности встречается длинная цепочка одинаковых символов - ключ шифрования вылетает в выходной поток в чистом или почти чистом виде. Поэтому ломается такой шифр за 1 минуту. Соответственно, программа, демонстрирующая суть метода, а также наглядно показывающая как в шифрованном потоке возникают повторения ключа, применима только в ознакомительных и учебных целях - и никогда в практических. В общем, не используйте XOR и деление по модулю в качестве шифров.
Написано на этой страничке прямым текстом.
Понял. Понял. Извиняюсь.
Схожу за попкорном и Колой. Устраиваюсь поудобнее за своими двумя мониторами :)
ErikPshat
31.10.2011, 12:52
Скажу больше, в XOR-е принимают участие только первые 2 байта ECC. Остальные 8 байт несут ещё какие-то функции.
Скажу больше, в XOR-е принимают участие только первые 2 байта ECC. Остальные 8 байт несут ещё какие-то функции.
ErikPshat, XOR - это маска, накладываемая на блок целиком.
Изначально, маска не может осуществлять функцию коррекции битовых ошибок. Она лишь может выполнять функцию контроля целостности данных.
XOR применяется во флешках для уменьшения взаимовлияния винтелей памяти при большей их плотности. Особенно этим заморачивается Тошиба и СанДиск.
То что Вы увидели пустые сектора без маркера, но имеющие какой-то [код ЕСС], объясняется тем, что контроллер во время операций записи не желает тратить время на стирание сектора. Он подготавливает очередь заранее, очищая сектора.
Так же он знает, что [код ЕСС] ему писать в сектор по любому. Зачем тогда его очищать? Правильно не нужно. Нужно подготовить сектора так, чтобы туда по-быстрому все записать, а именно забить его [FFFFFFFF] или [яяяяяяяя] и затем записать только измененые байты.
Для ускорения этого процесса в SSD придумали команду /trim .
Задача 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
То что Вы увидели пустые сектора без маркера, но имеющие какой-то [код ЕСС]Не какой-то код, а это именно сгенерированный код контрольной суммы для сектора полностью забитого этими FFFF FFFF FFFF FFFF.
Можно проследить, что он у всех секторов с такими данными одинаковый.
В некоторых местах отсутствует контрольная сумма, это потому, что сектор совсем не используется. Но если у пустого сектора есть контрольная сумма, значит, пусть даже он и пустой, но он используется и воспринимается, как часть реальных данных.
Это всё можно так же проследить в nand-dump-ах, где например IPL в конце заполнен пустыми блоками FFFF, но с контрольными суммами. И IPL дампится и пишется именно со всеми этими блоками. Однако, где данные идут без ECC, эта часть отрезается.
Ну я так понял задачки вы не решили )))
Yokel, отлично! Всё верно, у тебя первого получилось из непонятного кода извлечь читабельный код из песни Эминема :D
2 ответ тоже верный - там вначале сектора MSID закодирован алфавит.
И это подтверждает, что данные верны, т.к. мы получили строго закономерную и читабельную последовательность, значит первые 2 байта из 10-значного ECC отвечают за операцию XOR.
Если даже просмотреть XOR в u8 или u32, то мы увидим тоже вроде читабельный код, но там сразу понятно по хаотичности данных, что это не верный код. Верный код мы видим именно в u16.
Можно пересобрать "MSID Dumper 3.XX" чтобы выводил на экран “Serial number” и MSProID а не только писал в файл ?
frostegater
02.11.2011, 06:09
AndyI, можно переписать.. перепиши.. да и переписать легко.
Собсно вот! http://www.pspx.ru/forum/showpost.php?p=973261&postcount=126
СПС за дампер.
думаю реверсить все алго ЕСС лишено смысла да это и понятно нужно выбрать 1 кролика и под него сделать пересчет ECC кому надо найдет кролика по описанию
P.S.
как раз начал смотреть где взять и какой тулчейн надо юзать под сборку дампера.
AndyI, просьба воздержаться от "пустых" сообщений впредь.
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc. Перевод: zCarot