PSPx форум

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

ErikPshat 06.07.2011 04:21

Pandora (unbricker/downgrader) для PSP-200X TA-088v3
 
Вложений: 11
Сервисный комплект для PSP-200X
(включая TA-088v3)


{ НИЧЕГО НЕ ПРОДАЁМ / NO SALES HERE }

После удачного взлома и последующей длительной заморозки в скрытом разделе темы:
"Размышления о возможностях взлома ТА88v3"
было решено, что настало время её разморозить и отдать "в народ".
Дабы не нарушать хронологию "размышлений по взлому", инструкция выложена в шапке отдельной темой.

Первое видео от Yoti
Новое видео подтверждение работы сервисной карты JigKick на PSP-2006 TA-088v3!




Комплект сервисной карты и MSID Dumper:
Структура папок в архиве:
  • Extracted Files Original - все оригинальные извлечённые файлы с образа - по сути комплект сервисной карты (файловая копия карты).
  • MSID 512mb Original - это дамп MSPro ID оригинальной сервисной карты, снятый с помощью MSID Dumper (сервисная область).
  • Original Dump MS - полный образ сервисной карты в формате IMG. Можно посмотреть через WinHex (raw копия карты).
  • Write IPL to MS - утилита записи сервисного IPL-загрузчика в 16-ый сектор карты памяти. Сам IPL уже там тоже лежит: multiloader_ipl.bin.

Изготовление волшебной сервисной карты:
  1. Необходима карта MS PRO DUO неоригинал на 512 Мб, 2 Гб или 4 Гб.
  2. Оригинал SONY не подходит, т.к. имеет свои чипы нанда и к ним нет спецификаций (даташита) и программаторов.
    Такие оригиналы НЕ подходят
    Это MS PRO DUO Mark2.
    Контроллёр, микросхема и плата залиты в один монолитный корпус, даташитов к ним нет и программатор к ним не найдёшь.

    Вложение 3833

    Вложение 3834
  3. Скачиваем "MSID Dumper", вставляем карту памяти в PSP и запускаем программу. Видим на экране номер "Серийный номер" и MSProID вашей карточки и записываем, хотя дамп области MSID всё равно сохранится в корне карты памяти и вы можете его потом посмотреть хекс-редактором. Это вам может пригодиться, когда вы будете искать данные MSID в дампе микросхемы.
  4. Тонким скальпелем располовиниваем корпус карты памяти пополам. Не поностью, а только заднюю часть и чуть больше половины по краям.
  5. Затем пинцетом достаём из корпуса плату, она не приклеена, а просто лежит в пазах.
  6. Из платы выпаиваем микросхему памяти (nand), которая самая большая и имеет 48 ножек. Рядом находится небольшой квадратный контроллёр памяти, его не трогаем.

    Подходящие карты памяти и nand
  7. Вставляем микросхему в программатор с панелькой TSOP-48 под эту микросхему: http://www.soft-center.ru/reader/
  8. Нужно учитывать, что с виду карты одинаковые, но внутри могут быть разные нанды, например Hynix или Samsung. Поэтому под вашу микросхему уже потом ищется программатор. Смотрим список поддерживаемых микросхем: http://www.soft-center.ru/reader/NAND_List.php.
    Hynix, насколько я знаю, практически все имеют одинаковый стандарт выводов по даташиту среди TSOP-48, поэтому если буквы или цифры немного отличаются от списка поддерживаемых моделей, то это вряд ли имеет значение.
  9. Микросхема вставляется в панельку программатора очень просто. Панелька имеет конструкцию прищепки, нажимаем сверху, контакты отходят, ставится микросхема и отпускаем, контакты прижимаются к ножкам микросхемы.
  10. Далее, программатор подключается к компьютеру, с заранее установленной программой и драйверами, поставляемыми с программатором. В программе указывается диапазон страниц, которые нужно сдампить и дампится часть памяти.
  11. Сразу дампить 2 Гб всей памяти очень долго, да и не нужно. Сразу скажу, что нужная нам служебная область, где прописан MSID карты находится либо в самом начале, либо в самом конце микросхемы, обычно в 1-ом банке и не далее 3-4 блоков. Рекомендую сдампить сразу 4 блока - это 256 страниц или 0x100 в шестнадцатеричном виде, что и нужно указывать в диапазоне.
  12. Открываем файл дампа в хекс-редакторе. Вводим в поиск, что нужно искать, а именно кусок хекс-кода MSID: 4D535053, что в буквенном выражении означает первые четыре аббревиатуры MSPS(NY0/DK0/XX0), то есть, это часть 16-значного ключа MSID, которая у всех карт памяти MS PRO DUO одинаковая.

    Скриншот MSID
    Это логическая область с MSID, снятая программой MSID Dumper, сохраняющаяся в корне карты памяти в файл. По структуре она не имеет ничего общего с настоящей областью MSID, которая находится в физическом чипе памяти.
    Требуется только для определения номера MSID для поиска в сыром RAW-дампе ципа карты памяти.
    Не путать с оригинальным RAW-дампом(снятым программатором)!

    Вложение 3839

    Это предварительная настройка снятия области дампа в программаторе "Тритон"

    Вложение 5082

    Так выглядет оригинальная сервисная область MSID, сдампленная программатором.
    Обратите внимание, что она выглядет совсем иначе, нежели на первом рисунке, снятом программой для PSP - "MSID Dumper".

    • В стартовом секторе содержится серийный номер и MSID.
    • Далее идут 3 пустых сектора, полностью заполненных FFFFFFFF.
    • Затем идёт сектор, где указывается фрмат и размер карты памяти.


    Вложение 5084
  13. Найдя искомое, меняем 16-значный ID данной карты на ID сервисной. Необходимый код ID вы найдёте в папке "MSID 512mb Original" в файле ID.txt.
  14. После замены ID, не забудьте сохранить файл. Затем обратно вшиваем этот дамп страницы по тому же адресу, откуда сдампили.
  15. Впаиваем микросхему на место.
  16. Форматируем изготовленную карту памяти на PSP.
  17. Из папки "Write IPL to MS" запускаем "install_psp_ms_multi_loader_ipl.cmd"
  18. Только после этого, делаем подключение PSP к компьютеру.
  19. В окне консоли видим, как определяется флешка и нажимаем английскую "Y"
  20. Видим сообщение "Write MS BOOT CODE" - значит всё отлично.
    • Если выдаётся сообщение "Canceled" - значит не ту букву нажали или не в той раскладке.
    • Если выдаётся сообщение "Check free reserved sector : to small reserved sectors" - значит идём изучать эту тему (Способ №2).
  21. Монтируем в Хекс-редактор флешку, как физический диск и удостоверяемся, что в 16-ом секторе присутствует знакомый нам IPL.
  22. Из папки "Extracted Files Original" копируем содержимое на флешку и идём прошивать брикнутые ТА-088v3 =)



  1. 1 сектор = занимает 512 байт + 16 байт избыточного кода данных, позиционирования сектора и контрольная сумма ECC в конце каждого сектора.
  2. 1 страница = это 4 сектора, т.е. 2048 байт + 64(16х4) служебных байта = 2112 байт.
  3. 1 блок = 64 страницы (256 секторов), конечно же вместе с техническими данными. 131072 + 4096 = 135168 байт или 132 килобайта.
Страница спецификации

Boryan 06.07.2011 22:28

JigKick v5 - сервис-комплект с поддержкой PSP-2000 TA-088v3
 
Ищите стики китайские покупайте программатор http://www.soft-center.ru/reader/ и разобрав стик и выпаяв нанд засовываем его в программатор ..читаем ..находим место где серийник и мсид и в хекс редакторе вбиваем данные из архива....прошиваем нанд...собираем стик ..форматим прописываем IPL и копируем содержимое архива и радуемся наличию сервисной карты :)

frostegater 07.07.2011 01:20

Мда. Согласен.. раз уж на то пошло, то, Эрик, можешь выносить тему и с "программным созданием". Может подключится кто, да заделаем джигу программно, а то карточки портить.. да и барыг поразведётся, а так кто хочет сможет её сделать.. да и вроде.. надо бы буржуев обрадовать. Те во всю криптуют, да раскриптуют. Вы только пожалуйста не открывайте секрет про ключ декриптовки, мы его скажем, но не говорите откуда, а то Русски Народный JigKick пропадёт пропадом...

http://www.mediafire.com/?4vh3rcocdw52aa6
http://www.mediafire.com/?219oatbgc5hmczy

Boryan 07.07.2011 01:24

Yoti :))) нормуль всё ..пусть народ пользуется :) Уже можно и это засветить...

Remonter1 07.07.2011 01:33

чото ничо не понял но начну барыжить...только непонятно чем

frostegater 07.07.2011 01:41

Boryan, надеюсь 6ая карта не протекла. А так вообще сейчас пообломаем кайф... нужно только найти способ декрипта/крипта.

Для тех кто собрался помочь Русскому Народному JigKick`у:
1) Берём сырой код PRXdecrypter`а.
2) Меняем идетификацию хедера файла в главном объекте с ~PSP на тот, что в джиге.
3) Врубаем строки в 16 битные ключи:
Код:

/* JigKick enc */
u8 key_2D454353[16] ={
        0x20, 0x4D, 0x53, 0x50, 0x53, 0x4E, 0x59, 0x30,
        0x00, 0x78, 0x88, 0x84, 0xC6, 0xAA, 0x00, 0x00,
};

4) Теперь впилим инфу в массив TAG_INFO2:
Код:

/* JigKick enc */
        { 0x2D454353, key_2D454353, 0x4F},

5) То, что выделено жирным - скрамлер код. Он определяет размер оутфайла. Диапазон: 0x40 - 0x6F.

И так.. может так не получится, тогда берём IPL Sample, что шёл с kirk_engine (на СВНке проекта есть) и пробуем аналогично через него...

Удачи :)

Boryan 07.07.2011 01:41

Я как автор этого взлома мог карты клепать и барыжить ими ещё в апреле прошлого года. Но я ломал не ради денег, а ради самого взлома. И за всё время не продал ни одной карты...это могут подтвердить многие. Кому нужны были для исследований я бесплатно давал их. Кому был интересен процесс взлома с целью взлома, а не обогащения - те получали нужную инфу.

ErikPshat 07.07.2011 07:23

Цитата:

Сообщение от Frostegater (Сообщение 970641)
Для тех кто собрался помочь Русскому Народному JigKick`у:

Так как ессно, метод с паяльником и программатором не айс.

Я думаю, что метод декриптовки файлов с последующей криптовкой новым MSID тоже вариант.

Но, меня больше привлекает программный метод смены MSID.
То есть, раз есть MSID_Damper и он считывает из служебной области нанда карты памяти этот ID карты и серийник, то значит должна быть обратная команда записи.

Поэтому предлагаю подумать над программкой MSID_Writer.
Вот здесь лежат исходники дампера: http://forums.ps2dev.org/viewtopic.p...3cbc4e82#69085
Там лежит заголовочный файл ms_drv.h, в котором прописаны вся спецификация MS PRO DUO

ms_drv.h
Код:

#define WSBW(d) ((((d)&0x000000ff) << 24) | (((d)&0x0000ff00) << 8) | (((d)&0x00ff0000) >> 8) | (((d)&0xff000000) >> 24))
 #define WSBH(d) ((((d)&0x00ff) << 8) | (((d)&0xff00) >> 8))

 #define MSPRO_DEVINFOID_SYSINFO                        (0x10)
 #define MSPRO_DEVINFOID_MODELNAME                      (0x15)
 #define MSPRO_DEVINFOID_MBR                            (0x20)
 #define MSPRO_DEVINFOID_PBR16                          (0x21)
 #define MSPRO_DEVINFOID_PBR32                          (0x22)
 #define MSPRO_DEVINFOID_SPECFILEVALUES1                (0x25)
 #define MSPRO_DEVINFOID_SPECFILEVALUES2                (0x26)
 #define MSPRO_DEVINFOID_IDENTIFYDEVINFO                (0x30)

 typedef struct tag_wbmspro_attribute {
        u16 signature;
        u16 version;
        u8 device_information_entry_count;
        u8 reserved[11];
 } __attribute__ ((packed)) wbmspro_attribute_t;

 typedef struct tag_wbmspro_device_info_entry_item {
        u32 address;
        u32 size;
        u8 info_id;
        u8 reserved[3];
 } __attribute__ ((packed)) wbmspro_device_info_entry_item_t;

 typedef struct tag_wbmspro_sys_info {
        u8 class;              // must be ?
        u8 reserved;            // see below
        u16 block_size;        // n KB
        u16 block_count;        // number of physical block
        u16 user_block_count;  // number of logical block
        u16 page_size;          // must be 0x200
        u8 reserved1[2];        // MS original Extra data size and format reserved
        u8 assembly_date[8];
        u32 serial_number;
        u8 assembly_maker_code;
        u8 assembly_model_code[3];
        u16 memory_maker_code;
        u16 memory_model_code;
        u8 reserved2[4];        //reserved[6]
        u8 vcc;
        u8 vpp;
        u16 controller_number;
        u16 controller_function;
        u16 start_sector;
        u16 unit_size;
        u8 ms_sub_class;
        u8 reserved3[4];
        u8 interface_type;
        u16 controller_code;
        u8 format_type;
        u8 reserved4;;
        u8 device_type;
        u8 reserved5[7];
        u8 mspro_id[16];
        u8 reserved6[16];
 } __attribute__ ((packed)) wbmspro_sys_info_t;

 #define SHOW_READ_DATA    0
 #define SHOW_ERR_MSG      0
 #define SHOW_SECTOR_ACCESS 0
 #define SHOW_STATUS_REG    0

 #define IO_MEM_STICK_CMD *((volatile int*)(0xBD200030))
 #define IO_MEM_STICK_DATA *((volatile int*)(0xBD200034))
 #define IO_MEM_STICK_STATUS *((volatile int*)(0xBD200038))
 #define IO_MEM_STICK_SYS *((volatile int*)(0xBD20003C))

 #define MSRST 0x8000

 #define MS_FIFO_RW 0x4000
 #define MS_RDY 0x1000
 #define MS_TIME_OUT 0x100
 #define MS_CRC_ERROR 0x200


 #define READ_PAGE_DATA 0x2000
 #define READ_REG 0x4000
 #define GET_INT 0x7000
 #define SET_RW_REG_ADRS 0x8000
 #define EX_SET_CMD 0x9000

 #define WRITE_REG              (0xB000)
 #define SET_CMD                (0xE000)

 #define INT_REG_CED  0x80
 #define INT_REG_ERR  0x40
 #define INT_REG_BREQ  0x20
 #define INT_REG_CMDNK 0x01
 /*
 ;NORM_COMP      = (ced && !err)
 ;CMD_ERR_TER    = (ced && err)
 ;NORM_DATA_TRANS = (!err && breq)
 ;DATA_REQ_ERR    = (err && breq)
 ;CMD_EXE        = (!ced && !breq)
 ;CMD_NOT_EXE    = cmdnk
 */
 //PROTOTYPES:
 void pspMsBootStart();
 int pspMsInit(void);
 int pspMsReadSector(int sector, void *addr);
 int pspMsReadAttrB(int attr, void *addr);
 int pspMsWriteSector(int sector, void *addr);

И вот что меня привлекло в этом файле, так это последняя красная строчка:
Код:

//PROTOTYPES:
 void pspMsBootStart();
 int pspMsInit(void);
 int pspMsReadSector(int sector, void *addr);
 int pspMsReadAttrB(int attr, void *addr);
 int pspMsWriteSector(int sector, void *addr);

А ещё, в исхах test.c идёт команда:
Код:

        int fd = sceIoOpen("ms0:/attr0.bin", PSP_O_WRONLY | PSP_O_CREAT, 0777);
        sceIoWrite(fd, buffer, 3*512);

То есть, в файл ms0:/attr0.bin пишется из буфера 3*512 (3 сектора по 512 байт)

Как сделать, чтобы наоборот из файла ms0:/attr0.bin писались эти 3 сектора обратно на стик?

frostegater 07.07.2011 08:28

Цитата:

Сообщение от ErikPshat (Сообщение 970665)
А ещё, в исхах test.c идёт команда:
Код:

        int fd = sceIoOpen("ms0:/attr0.bin", PSP_O_WRONLY | PSP_O_CREAT, 0777);
        sceIoWrite(fd, buffer, 3*512);

То есть, в файл ms0:/attr0.bin пишется из буфера 3*512 (3 сектора по 512 байт)

Как сделать, чтобы наоборот из файла ms0:/attr0.bin писались эти 3 сектора обратно на стик?

Может так:
Код:

int fd = sceIoOpen("ms0:/attr0.bin", PSP_O_RDONLY, 0777);
sceIoWrite(/*хы, а тут нужно написать куда писать.. вопрос куда?*/, fd, 3*512);


frostegater 07.07.2011 08:39

Между строк...
 
Вот на вулоло themk`...

Потом оформлю здесь (на pspx) с картинками и подробностями... если меня не опередят...

Nemetc14 07.07.2011 10:49

А как быть с картами М2 микро?

ErikPshat 07.07.2011 11:20

Вложений: 3
Цитата:

Сообщение от Nemetc14 (Сообщение 970676)
как быть с картами М2 микро?

Оригиналы не пойдут. Они в монолитном корпусе, даташитов к ним нет и программатор к ним не найдёшь.

То же самое что MS Mark2
Нужны китайские подделки, чтобы микросхема была поверхностным монтажем
Это моя убитая карта. Не обращай внимания на вид.
По ней просто проехал самосвал

Вложение 3788
Вложение 3789

frostegater 07.07.2011 12:05

Да и ещё добавлю, лучше карты брать с маркировкой:
Код:

MSX-M2GN
AL406L1L


Yoti 07.07.2011 14:23

В общем, как же оно готовое работает:

P.S. /me по-прежнему не одобряэ!

Nemetc14 07.07.2011 20:13

Boryan, прошу твоей помощи и инструкции по создании сервис карты из образа!

Boryan 07.07.2011 21:43

Пока нет времени на написание инструкции ...но приблизительно так: карты использовать 2 гига ...в них нанды два банка по 1 гиг ...разбираем карту ....снимаем нанд и в проггер...второй банк не трогаем...мсид и серийник в первом банке...читам только первый банк...в конце дампа в хекс редакторе находим серийник и мсид ...заменяем их на данные из архива..сохраняем в бинарник. Прошиваем нанд только первый банк отредактированным бинарником...впаиваем нанд на место...форматим карту (желательно в ПСП) ...если в ПСП не форматнулась то форматим в компе. Если ни где не форматнулась..значит она сдохла! Вам не повезло. Делаем тоже самое с другой картой...мож повезёт с ней. Не всегда проканывает внедрение в файловую структуру карты на низком уровне без ведома самого контроллера карты. Ввиду того что в китайских котроллерах контроль ошибок слабый ..потому и проскакивает смена мсид..Но некоторые контроллеры "упрямые" и не принимают то где поковырялись без их велома...Ну если карта форматнулась..то дальше всё по инструкции из архива.

ErikPshat 07.07.2011 23:52

Цитата:

Сообщение от m0skit0
EDIT: Thread unlocked. Instructions are OK, but software is illegal, so links were removed. Also moved the topic to "Security".

А темку открыли опять...

frostegater 08.07.2011 05:53

Вложений: 1
Вот схема вроде бы подходящего программатора. Для тех, кто идеальнорукий и кому не хочется тратить 4500р, а чутка дешевле...
Источник: www.tvservice.ru.
Чтобы юзать схему (.sch) я пользовался P-CAD. Старая прога, зато удобная. Софтина для программатора, документация, всё в аттаче..

Цитата:

А темку открыли опять...
Ага. Но толку? Линки потёрли, меня все долбят в личку.. я даю линк на их любимый медифаир.. задолбался уже.

Цитата:

Ага. На 100Х она не работает же. Там другой IPL требуется.
Во-первых, ну и пофиг... а во-вторых.. может у вас есть IPL для 1000? *намёк* ^_^ ))

Nemetc14 08.07.2011 07:49

gregorio,как надо залить мсид!Интрукцию по действиям я прочитал!Просто у меня есть друзья которые кассы ремонтируют , а у них прогроматор точно есть!!!

frostegater 08.07.2011 08:00

Вложений: 1
Nemetc14, ну берёшь подрубаешь к программатору нанд, читаешь конец карты, ищещь там что-то типо этого (аттач, юзать хекс) редактишь как написано в туторе.. сам msid.. и всё) А вообще заходи в скайп, если что, я буду под рукой, помогу...


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

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