PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Обсуждение взлома батарейки Пандоры PSP-3000... (https://www.pspx.ru/forum/showthread.php?t=87238)

Boryan 20.04.2010 11:38

Обсуждение взлома батарейки Пандоры PSP-3000...
 
Вложений: 5
Решил я развеять слухи о том что зыза 3000 преходит в сервисный режим с порта USB. Во первых, что бы активировался порт USB должен стартануть ЦП..., а он ну ни как не может это сделать на брикнутой консоли :) Далее я просто зацепил крутой осциллограф к среднему выводу батарейки пандора и воткнул её в 3000 брик и записал их разговор. Известно, что со старой батарейкой 3000 не стартует....но ....смотрите сами http://www.youtube.com/watch?v=T4mQofU37sg, что записал осциллограф. Короче зыза общается с батарейкой упорно на предмет получения ключика для перехода в сервисмод. Делаем выводы....нужен ключик для перевода 3000 в сервис мод, но, он не FFFFFFFF.....а какой? какие будут предложения по подбору ключика? Кто силён в написании прог под винду. Нуно сварганить прогу что бы она по USB через микруху МАХ232 эмулировала флешку батарейки ....со всеми вытекающими последствиями. А точнее сгенерила ключик и дала команду электронному ключу на вкл батарейки....посмотрели... нет сервисмод у 3000....отключаем батарейку...генерим новый ключик ...и так далее до победного конца. Кто готов написать такую прогу? Электронную начинку я беру на себя .

Boryan добавил 20-04-2010 в 11:33
народ давай подтягивайтесь в тему. неужели не интересно мозгами поработать? Мои мысли по поводу батарейки для 3000....что могли в ней изменить Сони? Применить другой ключик...слишком просто...перебрать 4 байта учитывая что код только может быть типа 0хAA AA AA AA или 0хАВ АВ АВ АВ, это не сложно. Это не в правилах Сони...уж если рубить концы, то конкретно. Я думаю что они тупо увеличили код до 8 байт, и он так и остался 0хFF FF FF FF FF FF FF FF. Что это даёт? Во первых, процессор стандартной батарейки не может дать зызе код длиннее 4 байт, а вот их специальная батарейка может выдать код длинной 8 байт. В итоге... и волки сыты и овцы целы... Мужики, подумал я тут и понял эмулировать флешку батарейки пока рано. Нужно написать прогу снифер под винду, ну типа писать протокол обмена с батарейкой. Записать один протокол с 2000 а второй с 3000, и сравнить команды запроса на серийник, если они одинаковые то возможно ключик так и остался 4 байта, и тогда перебор нам поможет. А вот если разные...то нужно думать как заставить батарейку выдать 8 байт.....или тупо заставить прогу снифер поработать за батарейку и отвечать за неё ...ведь если будет записан протокол, то что нам составит труда выплюнуть его обратно с нужным нам ключиком?

Кто силён в написании таких прог?

Терминал PSP-2000
// Вот разложил поточнее, что выложил stasik007:

/* Старт с нормальной батарейкой серийник 4f 20 df 89

Подключаю батарейку:

00
5A02 01 A2
A505 06 10C206 77
5A02 0C 97 - запрос серийника
A506 06 204F89DF 77 - серийник
5A0B 80 08364CAFF8EFE8E9A5 84
A512 06 EFDDEDA268B1F15CF705F1F16FFADDE2 7B
5A02 01 A2
A505 06 10C206 77
5A02 0C 97 - запрос серийника
A506 06 204F89DF 77 - серийник
5A0B 80 02129A117169ADE46F 81
A512 06 CEE3A231846B7A3CACC16A81AE99A14F 8A
5A0A 81 08EC25077C96EB55 A8
A50A 06 3D71D0DDA5AC498D C8
5A02 01 A2
A505 06 00C206 87
5A0B 80 0208FA21BD9B0CF433 6A
A512 06 649C9CC965D9AA823804FA537F84ADC7 73
5A0A 81 0A99549CC666111A 30
A50A 06 1DF65042207C3621 B2
00

Включаю приставку:

5A02 01 A2
A505 06 10C206 77
5A02 03 A0
A504 06 3610 0A
5A02 0C 97 - запрос серийника
A506 06 204F89DF 77 - серийник
5A0B 80 082ED10418C5A517A7 CF
A512 06 956EC42197FA58395A3D01B7EBB74C36 C5
5A02 01 A2
A505 06 10C206 77
5A02 03 A0
A504 06 3610 0A
5A02 0C 97 - запрос серийника
A506 06 204F89DF 77 - серийник
5A0B 80 0265727014369503DA 15
A512 06 D3D208AC828AC4285A1F1BE8389276A2 93
5A0A 81 62861C9CE0618781 31
A50A 06 3E02027DA5B052A3 41
5A02 01 A2
A505 06 00C206 87
5A02 07 9C
A504 06 0807 41
5A02 0B 98
A504 06 0F00 41
5A02 09 9A
A504 06 0104 4B
5A02 02 A1
A503 06 1B 36
5A02 04 9F
A504 06 9AFF B7
5A02 03 A0
A504 06 3110 0F
5A02 01 A2
A505 06 00C206 87
5A02 09 9A
A504 06 3603 17
5A02 02 A1
A503 06 1B 36
5A02 04 9F
A504 06 81FF D0
5A02 03 A0
A504 06 2C10 14
5A02 01 A2
A505 06 00C106 88
5A02 03 A0
A504 06 2C10 14
5A0B 80 028C1358AFF19A5594 FE
A512 06 903ECAB191ACE9B53336455CD35DC860 BC
5A0A 81 9F3777774C64553C 15
A50A 06 64D75EC38A197E7B 52
5A02 01 A2
A505 06 00C106 88
5A02 09 9A
A504 06 3603 17
5A02 02 A1
A503 06 1B 36
00
*/
Расшифровка кодов
Код:

Код  Описание                  Данные  Ответ от батареи    Примечание

0x01  запрос оставшегося заряда  нет    energyleft_mAh:u16                                       
0x02  запрос температуры          нет    temperature:u8      cercius degree, min/max value unknown
0x03  запрос напряжения          нет    voltage_mV:u16       
0x04  запрос тока                нет    current_mA:short    positive if charging battery
0x07  запрос ёмкости              нет    capacity_mAh:u16
0x09  запрос оставшегося времени  нет    timeleft_min:u16    XMB showing not this value
0x0c  запрос серийного номера    нет    serialno:u32        suspected
0x80  запрос аутентификации?      9byte  16byte              encrypted data/reply
0x81  запрос аутентификации?      8byte  8byte                encrypted data/reply

0x05  ответ от батареи            нет    NAK, BCC error and so on??
0x06  ответ от батареи            да    ACK, with reply data

Данные терминала с батарейки FAT-1800mAh во всех режимах на PSP-2000 и PSP-3000


Во вложении:
  1. "psp_bat" программа от dn3d по преобразованию ответов терминала в читабельный вид:
    • Копируете весь код терминала в верхнее мемо поле и нажимаете "Convert".
    • "Save to txt" - сохранить результат в txt файл. Все лишние символы и пробелы удаляются автоматом.
  2. "Open Source Pandora Battery Tool 0.60" - программа для FULL-дампа/записи флеш EEPROM батареи и смены серийников (режимов).
EEPROM DATA Battery

dimon-dlx 20.04.2010 13:03

А если использовать встроенный в Винду ком монитор? И кабель от телефона на PL2303 проблема правда в том что интерфейс СОМ порта испоьзует минимум 2 сигнала Rx Tx. А у батарейки 1 вывод кажется работает по шине I2c... Нужен переходник...

Boryan 20.04.2010 13:26

это конечно можно....но думаю проще знающему чело написать прогу снифер....жаль что ни кто не желает этого сделать....Я тут тупо сижу серийники на батарейке меняю ...ну типа ищу иголку в стогу сена....но сдаётся мне ключик не 4 байта...

Klerikus 20.04.2010 14:58

Boryan, ну не верю я, что для перевода в сервисный режим нужно только правильный серийник подобрать. Не верю! Сони уже раз попалилась с этим и я думаю более кардинально навернула защиту. Только сменить серийник - смешно, та же дател уже давно бы забрутила.
А вообще тема интересная, хоть и немножко бессмысленая.
Для того чтобы написать прогу необходимо знать по какому интерфейсу общается псп и батарея (есть ли фото разобраной батареи, может там есть какие-то маркировки? свою ковырять желания нет) и частоту с какой они общаются (это ты можешь замерить).
Если там UART, а скорей всего так и есть, то все просто: подключаемся посередине, читаем от псп - передаем батарее и наоборот, не забывая все запоминать :). Если там нормальная защита и учитываются таймауты, можем обламаться.
dimon-dlx, наличие двух проводников для rx и tx вовсе не обязательно. Можно и по одному гонять через стартовые биты. Во многих устройствах, где известен порядок передачи данных так и делают.

Boryan 20.04.2010 15:40

Klerikus, а я уверен что дело только в серийнике :) сейчас я аппаратно ковыряю две матери TA88V3 и TA90.....разница только в одной микросхеме контроллере питания. Маркировка MB44C015 в TA88V3 и MB44C018 в TA90 функционально и схемотически обе микрухи одинаковые....изменён размер корпуса и распиновка...ну это понятно что бы не заменили одну на другую. Эти микрухи отвечают за всё питание зызы...они же подключены к среднему выводу батарейки и секут код и в соответствии с кодом включают разные комбинации питания. Эти микрухи управляют Ключами питания коих дофига в зызе....на TA88 в сервисном режиме часть ключей питания молчит....это проц воспринимает как переход в сервисный режим. Так что всё дело в микрухе контроллера питания....что могла сони изменить в новом контроллере? только длину ключа или сам ключик....других вариантов я не вижу :)

KakojtoChuvak 20.04.2010 17:06

А что если на более низком уровне ввести ROM в сервисный режим либо попросту обнулить его и установить прошивку скажем 5.03? Ведь насколько я понимаю у любого контроллера или микросхемы памяти есть возможность обнуления. Опираюсь на знаниях AVR и PIC

Klerikus 20.04.2010 17:12

Boryan, сейчас вот подумал: берем free serial monitor вешаем Rx com-порта компа на средний провод и землю, запускаем FSM и hyperterminal подсоединяем батарею и слушаем. Кто что кому говорил прийдется самому разбираться, но можно сразу увидеть одинаково ли общаются разные версии мат.плат с батареями.
Разное питание на ножках BOOT0 и BOOT1 обычно переключает откуда стартовать код. По крайней мере для микроконтроллеров именно так(не знаю есть ли такие ножки у проца псп). А вот в этом "стартовом коде" просто обязаны быть дополнительные проверки и защиты.
Если бы их не было бы, то можно было подать вручную нужные напряжения и было бы нам счастье. И перепаять контроллер питания можно было бы несмотря на разные распиновки и размеры корпуса. Подпаяться правильно всегда можно и все бы работало.

Wes64 20.04.2010 19:05

780102H-контролёр в старой пандоре, http://www.semiconductorstore.com/pd...78F0101_UM.PDF - читаем, думаем.

lport3 21.04.2010 01:40

Цитата:

Сообщение от Klerikus (Сообщение 882203)
Boryan, сейчас вот подумал: берем free serial monitor вешаем Rx com-порта компа на средний провод и землю, запускаем FSM и hyperterminal подсоединяем батарею и слушаем. Кто что кому говорил прийдется самому разбираться, но можно сразу увидеть одинаково ли общаются разные версии мат.плат с батареями.
Разное питание на ножках BOOT0 и BOOT1 обычно переключает откуда стартовать код. По крайней мере для микроконтроллеров именно так(не знаю есть ли такие ножки у проца псп). А вот в этом "стартовом коде" просто обязаны быть дополнительные проверки и защиты.
Если бы их не было бы, то можно было подать вручную нужные напряжения и было бы нам счастье. И перепаять контроллер питания можно было бы несмотря на разные распиновки и размеры корпуса. Подпаяться правильно всегда можно и все бы работало.

Не знаю что может эта программа (лом качать пробовать),
но замечу, что мониторить ком недостаточно,
что бы в буфере ком что то было надо делать чтение ком,
и это не все , что бы правильно читать надо знать скорость,битность,четность... (хотя это осциком можно вычислить).

Boryan 21.04.2010 20:52

Продолжаю аппаратно изучать 3000.....залез глубоко:)..и обнаружил что я ошибался, контроллер питания тут вообще не причём. За всё отвечает маленькая микруха типа системного контроллера. Она занимается опросом кнопок и джойстиков, зажиганием светодиодов, выдаёт на ЦП нужные тайминги, в ней зашиты часы зызы, и самое интересное с батарейкой разговаривает именно она по двум ножка Rx и Tx. Ну есно далее в мелкой схемке Rx и Tx объединены в один провод идущий к батарейке.... А по Tx ещё помимо запросов к батарейке, говорит контроллеру питания что ему делать. Она и сечёт код пришедший с батарейки...если с батарейки идёт код не FF или 00 (пандоровский) то один запрос к батарейке и один ответ от неё и контроллер питания готов к старту. А вот если на запрос идёт ответ пандоры...то запросы повторяются несколько раз....типа ей на хватает 4 байт от пандоры и она ждёт дополнения и посему вновь посылает запросы....ну и не дождавшись ответа даёт команду на блокировку контроллера питания. ну вот как то так....ТА90 короче видит и различает коды пандоры....но они для неё короткие....мало 4 байта ей...

Yoti 21.04.2010 21:45

Boryan,
т.е. она побайтно запрашивает серийник? Проверь поведение на ffffff12 и ff001234?

Boryan 21.04.2010 21:58

как запрашивает она я не знаю по осцилу не отследишь....но все коды кроме 0хFFFFFFFF и 0х00000000 для неё обычный серийник и на запрос получив ответ отличный от них хоть на один байт, запросов больше не посылает и переводит контроллер питания в дежурный режим. А вот если получает 4 байта от кода пандоры то посылает новые запросы и не дождавшись нужного ответа блокирует контроллер питания наглухо. Это можно и тупо проверить на 3000 вставив пандору в неё вы ни каким образом не включите зызу...потому как котроллер питания заблокирован

Yoti 21.04.2010 22:10

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

Boryan 21.04.2010 22:16

Yoti, Ок но только завтра...сёня уже с ног валюсь...башка пухнет от инфы которую её переваривать нужно...устал чутка...Но согласись тема интересная :) Есть где поковырять...пусть предыдущая в тупик упёрлась...:) но было интересно :) А вдруг тут повезёт :)

Yoti 21.04.2010 22:26

Boryan,
бой проигран, но война не окончена! Батарейку надо допилить)))

Boryan 21.04.2010 22:42

вчера одну уже пилил :)...случайно в неё в голом виде (распотрошёная) ткнул пинцетом и проткнул ..дыму было прилично :)

Yoti 21.04.2010 23:04

Boryan,
убийца!
Ты себе можешь позволить загубленый аккум, надеюсь? (Ещё один.)

Boryan 21.04.2010 23:33

сегодня на работе уже подарили 5 шт нулёвых :)

Yoti 21.04.2010 23:37

Boryan,
мне бы такую работу... Подарил бы кто карту и аккум, собрал бы из ник комплект пандоры да на полку положил)))
Yoti has reached 500 messages!

Ins|der 22.04.2010 00:29

молодцы ребят, я верю, что с вашим упорством вы добьетесь результата :good:
в любом случае ваши изыскания очень интересно читать

p.s. сорри за оффтоп


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

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