Решил я развеять слухи о том что зыза 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 байт.....или тупо заставить прогу снифер поработать за батарейку и отвечать за неё ...ведь если будет записан протокол, то что нам составит труда выплюнуть его обратно с нужным нам ключиком?
Код Описание Данные Ответ от батареи Примечание
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
1)консоль и батарея содержат одинаковый набор заранее определенных ключей шифрации K1, K2, ... KN
2)то что следует за 80-й командой в запросе - номер ключа (01, 02, 04, 08, D9) который будет использоваться во время сеанса N
Таким образом, если судить по описанию, и в приставке и в батарейке хранятся одинаковые ключи и константы.
К этому выводу я уже давно пришел... но суть еще в том что в консоли хранится больше чем в батарейке, поскольку фатки содержат ключи на первый диапазон 80XX (до 8008 кажись), а вот тонкие наоборот не содержат нижнего диапазона но знают про верхний (от 8008)
Просто эти патенты не дали пока ответа на возможный алгоритм, а то что они используют таблицу ключей - это теперь стало еще очевидней... пока нашел косвенное упоминание про FlexiHash, но там 4 байта работают вроде, а у нас 8... Нужно тащить прошивку...
ANDPSP добавил 24-09-2010 в 20:17
Сообщение от Boryan
ANDPSP, эт точно...придётся Эрика напрячь он на горбушке бывает. На луже сёня гавно китайское тупо пандора и ни чего более ...450 руб....послал их далеко
А что значит тупо пандора ? с обрезанным контактом еепрома ? Может стоило одну все же взять - вдруг там чип читаемый...
Просто те которые с переключателем типа ползунка - скорее всего и размыкают нужную ногу - т.е. реализуют аппаратную пандору - это конечно хуже софтовой но прошивка то там есть и может не так уж серьезно запрятана - все же ширпотреб...
Последний раз редактировалось ANDPSP; 24.09.2010 в 20:17.
Причина: добавил, подумав
Возможно это тоже что и ползунок только в другой интерпритации. Например реализованно полевиком.
Вообще если они выпускают эти батареи , то они либо написали прошивку либо стырили. И если не защитили, то лопухи полные. Yoti, напиши пожалуйста какой там контроллер.
ANDPSP, у Стаса есть такая там тупо вшита прошива и серийник FF ...чип неизвестный...будем пытаться и её ковырнуть...да у меня и кроме неё китайских батареек куча...попробуем из них достать...ну и с горбушки нужно хотябы одну иметь....какая нибудь надеюсь выложит своё содержимое..
Боря, какую или какие посоветуешь купить?(так что бы китайская, китайскее некуда) Закажу себе, а то живу далеко, по месту нигде нет. Попробую тоже вычитать.
Boryan, есть у меня пара идей, но
хорошо бы знать каковы таймауты на ответ для psp и батареи,
что делает консоль/батарея при таймауте - генерирует новый код запроса/ответа, пытается повторить старый, отрабатывает алгоритм с нуля и т.д.
Ins|der добавил 24-09-2010 в 21:33
Сообщение от ANDPSP
Нужно тащить прошивку...
это да
Ins|der добавил 24-09-2010 в 21:38
Сообщение от ANDPSP
поскольку фатки содержат ключи на первый диапазон 80XX (до 8008 кажись), а вот тонкие наоборот не содержат нижнего диапазона
батареи или приставки?
Ins|der добавил 24-09-2010 в 23:51
Сообщение от Boryan
Мля ...поигрался тут с 8008 и 81 запросами от зызы....жесть.. анализируйте ..
возможно, что вторые 8 байт в ответе на 80хх запрос генерятся батарейкой псевдослучайно (потому как частенько повторяются) и зызе при проверке ответа на 80хх, на них пофигу! Ей главное, что бы ответ в первых 8 байтах был правильный...а вот из этих вторых псевдослучайных 8 байт ( они же ещё готовят батарейку к ответу на 81 запрос) зыза стоит запрос 81 и ждёт на него правильный ответ...
похоже в этом вся соль, ответ батареи - он же одновременно запрос:
первые 8 байт удостоверяют подлинность батареи, вторые 8 байт - проверяют подлинность консоли
5A 0B 80 || 08 (ключ?) || 6F C6 18 01 91 82 BC 3B (запрос 1) || BA
A5 12 06 || 8E A9 D7 E3 F6 41 3B E8 (ответ на запрос 1) || 94 49 90 20 9A 35 3E 6B (запрос 2?) || F2
если ответ верен, то отвечаем на запрос батареи, иначе: счетчик неудач + 1, повтор
5A 0A 81 || EF 6A 29 EE 53 D4 2C 03 (ответ на запрос 2) || 54
A5 0A 06 DB 33 42 BE 30 61 50 66 F5 (результат проверки)
приставка делает вывод, опознана ли она батареей (self judge)
если положителен, то продолжаем работу
то есть, возможна двойная авторизация: сначала консоль авторизует батарейку, затем батарея проверяет консоль и уведомляет о результате.
выходит, прям паранойя, ни батарейка ни psp изначально не верят друг другу, а консоль увидев, что батарейка ей не доверяет, также отказывается с ней работать о__о
И нахрена столько ради какой то батарейки? Сони трёхнулась...ведь создавая 1000 зызу они не думали что её ломанут...да и в самой зызе защит было минимум...но в то время защитить копеечную батарейку аж ТРЕМЯ алгоритмами ..это жесть...
видимо изначально у Соней батарейки были в приоритете, а теперь приставки =)
p.s. вы только помечайте в логах, где реальные команды, где измененные, а то не всегда понятно
Последний раз редактировалось Ins|der; 25.09.2010 в 00:17.
Причина: добавил, подумав
Как видно батарейка знает только алгоритм старых команд. Это говорит о том что китайцы знают алгоритм батарейки раз могли написать на контроллер собственную программу....а не тупо повторяют дамп снятый с оригинала. Но писать алгоритм от новых батареек им нет смысла...все 2000 работают и в нижнем диапазоне 80...и этого достаточно.
Последний раз редактировалось Boryan; 26.09.2010 в 22:20.
Причина: добавил, подумав
Как я и думал, было бы глупо не защитить то, что выпускаешь (особенно такой коммерческий продукт).
А вот эта фотография http://zalil.ru/29723267 , намного интереснее, где бы прикупить такую.
Boryan, есть у меня пара идей, но
хорошо бы знать каковы таймауты на ответ для psp и батареи,
что делает консоль/батарея при таймауте - генерирует новый код запроса/ответа, пытается повторить старый, отрабатывает алгоритм с нуля и т.д.
именно обрабатывает алгоритм с нуля, если ответа нет вовремя или ответ батарейки не нравится консоли, то консоль начинает опрос снова с первой команды и так далее - 32 попытки если ты забыл :-)))
Сообщение от Ins|der
Ins|der добавил 24-09-2010 в 21:38
батареи или приставки?
батарейки от фаток держат нижний диапазон, батарейки от слим - верхний диапазон - таким образом Сони видать закладывала возможность отсекать старые батарейки от новых консолей... а консоли тоже разделены по запросам к батарейкам, и вроде начиная со слимок запросы отличаются после получения обычного серийника и сервисного
фатка - идентификация 8000 (основной режим и сервисный),
88v3 работает с 8008(сервисный) и 8002(резервный сервисный),
3000я - 800A(основной), 8004(резервный, если батарейка не знает ответа на 800A) и 80D9 (сервисный)
все это было в моих логах этой ветки, но можно еще поуточнять и другие логи поанализировать, просто больше всего мучили именно 3000ю - так что с ней все четко...
Boryan, не закралась ли в лог ошибка?
вторые 8 байт в ответе на команду 8006 начинаются с BF, далее в ответах на неизвестные команды уже с 00.
Похоже батарейка запоминает ответ на последнюю известную команду и упорно его повторяет
Ins|der добавил 27-09-2010 в 11:40
Сообщение от ANDPSP
консоль начинает опрос снова с первой команды и так далее - 32 попытки если ты забыл
ANDPSP, спасибо за уточнение)
но что насчет ответа батареи?
Сообщение от ANDPSP
батарейки от фаток держат нижний диапазон, батарейки от слим - верхний диапазон - таким образом Сони видать закладывала возможность отсекать старые батарейки от новых консолей
насколько я помню, фат-батарейка работает со слим-консолью (в том числе в сервис режиме), выходит нужные команды она знает?
Сообщение от ANDPSP
фатка - идентификация 8000 (основной режим и сервисный),
88v3 работает с 8008(сервисный) и 8002(резервный сервисный),
3000я - 800A(основной), 8004(резервный, если батарейка не знает ответа на 800A) и 80D9 (сервисный)
вроде ещё 8001 была, если мне память не изменяет)
Последний раз редактировалось Ins|der; 27.09.2010 в 11:40.
Причина: добавил, подумав
88v3 работает с 8008(сервисный) и 8002(резервный сервисный)
Как понятно, старые батарейки знают ответы на команды до 8006.
Но ведь ТА-088v3 переводится в сервисный режим обычными старыми батарейками.
Есть глупая идея...
Если сискон PSP-3000 знает запросы и ответы на все новые команды, то может просто выпаять этот умный NEC из PSP-3000 и впаять в WiteBlueTool, тогда батарейка тоже будет знать, как ответить )))
Или на его основе сделать K-Line.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 27.09.2010 в 15:49.
если я правильно понял, то следуя их схеме, по битам и логике все совпадает:
1)консоль и батарея содержат одинаковый набор заранее определенных ключей шифрации K1, K2, ... KN
2)то что следует за 80-й командой в запросе, вероятно, номер ключа (01, 02, 04, 08, D9) который будет использоваться во время сеанса N
3)далее в запросе идет 64-битный кусок (первая часть) 128-битного кода обмена 1 (задается консолью) R1
4)на основании этого кода (64бит), номера ключа и константы (64бит), определенной по номеру ключа, батарея формирует ответ, который затем шифруется самим ключом (в итоге 128бит) ENC(Kn, (R1+C1n))
5)от закодированного ответа берется вторая часть (64бита) - код ответа, к ней прилагается 64-битный кусок кода обмена 2 (задается батареей) и отсылается приставке
[part of ENC(Kn, (R1+C1n))] + R2
6)приставка сверяет преобразованный ею (по той же схеме) код обмена и полученный в ответе от батареи и делает вывод о подлинности батареи (так как она знает нужный ключ).
далее если батарея определена как "своя", наступает очередь приставки представить себя:
7) на основании полученного куска R2 и заданного ранее ключа Kn приставка формирует ответ батарее ENC(Kn, (R2+C2n))
8) отрезает от него 64 бита и передает батарее, скорее всего в 81-й команде
9) батарея делает своё заключение о легитимности консоли))))
Таким образом, если судить по описанию, и в приставке и в батарейке хранятся одинаковые ключи и константы.
Вот по моему умная мысля. Я так понял, ты прочитал дизасемблированный алгоритм драйвера сискона ТА-088v3.
Допустим мы сможем декриптовать и дизасмить драйвер сискона ТА-090v2, который у нас есть в зашифрованном виде, то возможно-ли вычислить формулу просчёта и вбить её в твой BatteryGrab, чтобы она при ответе на заданный запрос выдавала просчитанный алгоритм?
Стоп, чё-та я тупанул. Драйвер сискона одинаков на ТА-088v3 и ТА-090v2, так как PSP-3000 так-же откатывается с помощью того-же набора драйверов. Это ТА-093 работает на новом.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 27.09.2010 в 15:56.