Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 58
Сообщений: 47,468
Вы сказали Спасибо: 27,796
Поблагодарили 43,375 раз(а) в 12,362 сообщениях
Сила репутации: 10Репутация: 42566 
(репутация неоспорима)
|
Карочи, если ничего не понятно по подписи, то объясняю...
Вот здесь есть "Таблица тегов и ключей", известных на сегодняшний день. Эта таблица ведь не просто так тщательно составлялась, как могли бы подумать некоторые посетители.
Её составляли именно для того, чтобы было удобно и активно использовать при декриптовке необходимых файлов, при подписи приложений и т.п.
Синтаксис таблицы специально подобран таким образом, чтобы просто копипастом вставлять сразу всю в PSARDumper или prxDecrypter и тому подобных тулз, в которых многих из этих ключей никогда не было.
В последнем спойлере таблицы есть известные на сегодняшний день Кирки. Вот как раз, имея нужный нам Кирк, мы получаем возможность подписывать те или иные виды приложений.
KIRK
u8 kirk7_key02[] = {0xB8,0x13,0xC3,0x5E,0xC6,0x44,0x41,0xE3,0xDC,0x3C,0x16,0xF5,0xB4,0x5E,0x64,0x84}; //New from PS3
u8 kirk7_key03[] = {0x98,0x02,0xC4,0xE6,0xEC,0x9E,0x9E,0x2F,0xFC,0x63,0x4C,0xE4,0x2F,0xBB,0x46,0x68};
u8 kirk7_key04[] = {0x99,0x24,0x4C,0xD2,0x58,0xF5,0x1B,0xCB,0xB0,0x61,0x9C,0xA7,0x38,0x30,0x07,0x5F};
u8 kirk7_key05[] = {0x02,0x25,0xD7,0xBA,0x63,0xEC,0xB9,0x4A,0x9D,0x23,0x76,0x01,0xB3,0xF6,0xAC,0x17};
u8 kirk7_key07[] = {0x76,0x36,0x8B,0x43,0x8F,0x77,0xD8,0x7E,0xFE,0x5F,0xB6,0x11,0x59,0x39,0x88,0x5C}; //New from PS3
u8 kirk7_key0C[] = {0x84,0x85,0xC8,0x48,0x75,0x08,0x43,0xBC,0x9B,0x9A,0xEC,0xA7,0x9C,0x7F,0x60,0x18};
u8 kirk7_key0D[] = {0xB5,0xB1,0x6E,0xDE,0x23,0xA9,0x7B,0x0E,0xA1,0x7C,0xDB,0xA2,0xDC,0xDE,0xC4,0x6E};
u8 kirk7_key0E[] = {0xC8,0x71,0xFD,0xB3,0xBC,0xC5,0xD2,0xF2,0xE2,0xD7,0x72,0x9D,0xDF,0x82,0x68,0x82};
u8 kirk7_key0F[] = {0x0A,0xBB,0x33,0x6C,0x96,0xD4,0xCD,0xD8,0xCB,0x5F,0x4B,0xE0,0xBA,0xDB,0x9E,0x03};
u8 kirk7_key10[] = {0x32,0x29,0x5B,0xD5,0xEA,0xF7,0xA3,0x42,0x16,0xC8,0x8E,0x48,0xFF,0x50,0xD3,0x71};
u8 kirk7_key11[] = {0x46,0xF2,0x5E,0x8E,0x4D,0x2A,0xA5,0x40,0x73,0x0B,0xC4,0x6E,0x47,0xEE,0x6F,0x0A};
u8 kirk7_key12[] = {0x5D,0xC7,0x11,0x39,0xD0,0x19,0x38,0xBC,0x02,0x7F,0xDD,0xDC,0xB0,0x83,0x7D,0x9D};
u8 kirk7_key38[] = {0x12,0x46,0x8D,0x7E,0x1C,0x42,0x20,0x9B,0xBA,0x54,0x26,0x83,0x5E,0xB0,0x33,0x03};
u8 kirk7_key39[] = {0xC4,0x3B,0xB6,0xD6,0x53,0xEE,0x67,0x49,0x3E,0xA9,0x5F,0xBC,0x0C,0xED,0x6F,0x8A};
u8 kirk7_key3A[] = {0x2C,0xC3,0xCF,0x8C,0x28,0x78,0xA5,0xA6,0x63,0xE2,0xAF,0x2D,0x71,0x5E,0x86,0xBA};
u8 kirk7_key44[] = {0x7D,0xF4,0x92,0x65,0xE3,0xFA,0xD6,0x78,0xD6,0xFE,0x78,0xAD,0xBB,0x3D,0xFB,0x63}; //New from PS3
u8 kirk7_key4B[] = {0x0C,0xFD,0x67,0x9A,0xF9,0xB4,0x72,0x4F,0xD7,0x8D,0xD6,0xE9,0x96,0x42,0x28,0x8B}; //1.xx game eboot.bin
u8 kirk7_key53[] = {0xAF,0xFE,0x8E,0xB1,0x3D,0xD1,0x7E,0xD8,0x0A,0x61,0x24,0x1C,0x95,0x92,0x56,0xB6};
u8 kirk7_key57[] = {0x1C,0x9B,0xC4,0x90,0xE3,0x06,0x64,0x81,0xFA,0x59,0xFD,0xB6,0x00,0xBB,0x28,0x70};
u8 kirk7_key5D[] = {0x11,0x5A,0x5D,0x20,0xD5,0x3A,0x8D,0xD3,0x9C,0xC5,0xAF,0x41,0x0F,0x0F,0x18,0x6F}; //2.xx + game eboot.bin
u8 kirk7_key63[] = {0x9C,0x9B,0x13,0x72,0xF8,0xC6,0x40,0xCF,0x1C,0x62,0xF5,0xD5,0x92,0xDD,0xB5,0x82};
u8 kirk7_key64[] = {0x03,0xB3,0x02,0xE8,0x5F,0xF3,0x81,0xB1,0x3B,0x8D,0xAA,0x2A,0x90,0xFF,0x5E,0x61};
Так вот, у каждого кирка есть название, например: u8 kirk7_key5D[]
Выделенное красным - это и есть название скрамблер-кода, для которого этот ключ шифрования/дешифрования используется.
Теперь посмотрим на ключи, которые используют этот скрамблер-код в той же таблице:
Ключи к скрамблеру 5D 16-байтные
/* 0x5D Game EBOOT.BIN keys */
u8 key_8004FD03[16] = {0xF4,0xAE,0xF4,0xE1,0x86,0xDD,0xD2,0x9C,0x7C,0xC5,0x42,0xA6,0x95,0xA0,0x83,0x88};
u8 key_D91605F0[16] = {0xB8,0x8C,0x45,0x8B,0xB6,0xE7,0x6E,0xB8,0x51,0x59,0xA6,0x53,0x7C,0x5E,0x86,0x31};
u8 key_D91606F0[16] = {0xED,0x10,0xE0,0x36,0xC4,0xFE,0x83,0xF3,0x75,0x70,0x5E,0xF6,0xA4,0x40,0x05,0xF7};
u8 key_D91608F0[16] = {0x5C,0x77,0x0C,0xBB,0xB4,0xC2,0x4F,0xA2,0x7E,0x3B,0x4E,0xB4,0xB4,0xC8,0x70,0xAF};
u8 key_D91609F0[16] = {0xD0,0x36,0x12,0x75,0x80,0x56,0x20,0x43,0xC4,0x30,0x94,0x3E,0x1C,0x75,0xD1,0xBF};
u8 key_D9160AF0[16] = {0x10,0xA9,0xAC,0x16,0xAE,0x19,0xC0,0x7E,0x3B,0x60,0x77,0x86,0x01,0x6F,0xF2,0x63};
u8 key_D9160BF0[16] = {0x83,0x83,0xF1,0x37,0x53,0xD0,0xBE,0xFC,0x8D,0xA7,0x32,0x52,0x46,0x0A,0xC2,0xC2};
u8 key_D91610F0[16] = {0x89,0x07,0x73,0xB4,0x09,0x08,0x3F,0x54,0x31,0x87,0x00,0xF3,0x35,0x14,0x55,0xCC};
u8 key_D91611F0[16] = {0x61,0xB0,0xC0,0x58,0x71,0x57,0xD9,0xFA,0x74,0x67,0x0E,0x5C,0x7E,0x6E,0x95,0xB9};
u8 key_D91612F0[16] = {0x9E,0x20,0xE1,0xCD,0xD7,0x88,0xDE,0xC0,0x31,0x9B,0x10,0xAF,0xC5,0xB8,0x73,0x23};
u8 key_D91613F0[16] = {0xEB,0xFF,0x40,0xD8,0xB4,0x1A,0xE1,0x66,0x91,0x3B,0x8F,0x64,0xB6,0xFC,0xB7,0x12};
u8 key_D91614F0[16] = {0xFD,0xF7,0xB7,0x3C,0x9F,0xD1,0x33,0x95,0x11,0xB8,0xB5,0xBB,0x54,0x23,0x73,0x85};
u8 key_D91615F0[16] = {0xC8,0x03,0xE3,0x44,0x50,0xF1,0xE7,0x2A,0x6A,0x0D,0xC3,0x61,0xB6,0x8E,0x5F,0x51};
u8 key_D91616F0[16] = {0x53,0x03,0xB8,0x6A,0x10,0x19,0x98,0x49,0x1C,0xAF,0x30,0xE4,0x25,0x1B,0x6B,0x28};
u8 key_D91617F0[16] = {0x02,0xFA,0x48,0x73,0x75,0xAF,0xAE,0x0A,0x67,0x89,0x2B,0x95,0x4B,0x09,0x87,0xA3};
u8 key_D91618F0[16] = {0x96,0x96,0x7C,0xC3,0xF7,0x12,0xDA,0x62,0x1B,0xF6,0x9A,0x9A,0x44,0x44,0xBC,0x48};
u8 key_D91619F0[16] = {0xE0,0x32,0xA7,0x08,0x6B,0x2B,0x29,0x2C,0xD1,0x4D,0x5B,0xEE,0xA8,0xC8,0xB4,0xE9};
u8 key_D9161AF0[16] = {0x27,0xE5,0xA7,0x49,0x52,0xE1,0x94,0x67,0x35,0x66,0x91,0x0C,0xE8,0x9A,0x25,0x24};
u8 key_D9161EF0[16] = {0x5B,0x4A,0xD2,0xF6,0x49,0xD4,0xEB,0x0D,0xC0,0x0F,0xCB,0xA8,0x15,0x2F,0x55,0x08};
u8 key_D91620F0[16] = {0x52,0x1C,0xB4,0x5F,0x40,0x3B,0x9A,0xDD,0xAC,0xFC,0xEA,0x92,0xFD,0xDD,0xF5,0x90};
u8 key_D91621F0[16] = {0xD1,0x91,0x2E,0xA6,0x21,0x14,0x29,0x62,0xF6,0xED,0xAE,0xCB,0xDD,0xA3,0xBA,0xFE};
u8 key_D91622F0[16] = {0x59,0x5D,0x78,0x4D,0x21,0xB2,0x01,0x17,0x6C,0x9A,0xB5,0x1B,0xDA,0xB7,0xF9,0xE6};
u8 key_D91623F0[16] = {0xAA,0x45,0xEB,0x4F,0x62,0xFB,0xD1,0x0D,0x71,0xD5,0x62,0xD2,0xF5,0xBF,0xA5,0x2F};
u8 key_D91624F0[16] = {0x61,0xB7,0x26,0xAF,0x8B,0xF1,0x41,0x58,0x83,0x6A,0xC4,0x92,0x12,0xCB,0xB1,0xE9};
u8 key_D91628F0[16] = {0x49,0xA4,0xFC,0x66,0xDC,0xE7,0x62,0x21,0xDB,0x18,0xA7,0x50,0xD6,0xA8,0xC1,0xB6};
u8 key_D91680F0[16] = {0x2C,0x22,0x9B,0x12,0x36,0x74,0x11,0x67,0x49,0xD1,0xD1,0x88,0x92,0xF6,0xA1,0xD8};
u8 key_D91681F0[16] = {0x52,0xB6,0x36,0x6C,0x8C,0x46,0x7F,0x7A,0xCC,0x11,0x62,0x99,0xC1,0x99,0xBE,0x98};
u8 key_D91690F0[16] = {0x42,0x61,0xE2,0x57,0x94,0x49,0x42,0xB5,0xAA,0x6D,0x0D,0x08,0x3D,0x24,0xF7,0x4B};
144-байтные
// 0x5D 0xC0CB167C 2.xx+ game eboot.bin
u32 g_keyC0[] = {
0xDA8E36FA, 0x5DD97447, 0x76C19874, 0x97E57EAF, 0x1CAB09BD, 0x9835BAC6,
0x03D39281, 0x03B205CF, 0x2882E734, 0xE714F663, 0xB96E2775, 0xBD8AAFC7,
0x1DD3EC29, 0xECA4A16C, 0x5F69EC87, 0x85981E92, 0x7CFCAE21, 0xBAE9DD16,
0xE6A97804, 0x2EEE02FC, 0x61DF8A3D, 0xDD310564, 0x9697E149, 0xC2453F3B,
0xF91D8456, 0x39DA6BC8, 0xB3E5FEF5, 0x89C593A3, 0xFB5C8ABC, 0x6C0B7212,
0xE10DD3CB, 0x98D0B2A8, 0x5FD61847, 0xF0DC2357, 0x7701166A, 0x0F5C3B68,
};
И соответственно к этим ключам, там же в самом низу, указаны их теги со скрамблер-кодом(последнее значение:
Скрамблер-код 0x5D к ключам
/* 0x5D Game EBOOT.BIN keys */
{ 0xD91690F0, key_D91690F0, 0x5D }, //6.60
{ 0xD91681F0, key_D91681F0, 0x5D, 3 }, //6.50?
{ 0xD91680F0, key_D91680F0, 0x5D, 3 }, //6.30
{ 0xD91628F0, key_D91628F0, 0x5D }, //5.70 PSPgo
{ 0xD91624F0, key_D91624F0, 0x5D },
{ 0xD91623F0, key_D91623F0, 0x5D },
{ 0xD91622F0, key_D91622F0, 0x5D },
{ 0xD91621F0, key_D91621F0, 0x5D },
{ 0xD91620F0, key_D91620F0, 0x5D },
{ 0xD9161EF0, key_D9161EF0, 0x5D }, //5.00 PSP-3000
{ 0xD9161AF0, key_D9161AF0, 0x5D },
{ 0xD91619F0, key_D91619F0, 0x5D },
{ 0xD91618F0, key_D91618F0, 0x5D },
{ 0xD91617F0, key_D91617F0, 0x5D },
{ 0xD91616F0, key_D91616F0, 0x5D },
{ 0xD91615F0, key_D91615F0, 0x5D },
{ 0xD91614F0, key_D91614F0, 0x5D },
{ 0xD91613F0, key_D91613F0, 0x5D },
{ 0xD91612F0, key_D91612F0, 0x5D },
{ 0xD91611F0, key_D91611F0, 0x5D }, //6.00
{ 0xD91610F0, key_D91610F0, 0x5D }, //3.60
{ 0xD9160BF0, key_D9160BF0, 0x5D }, //5.55
{ 0xD9160AF0, key_D9160AF0, 0x5D }, //5.05
{ 0xD91609F0, key_D91609F0, 0x5D }, //5.00
{ 0xD91608F0, key_D91608F0, 0x5D }, //3.10
{ 0xD91606F0, key_D91606F0, 0x5D }, //3.00
{ 0xD91605F0, key_D91605F0, 0x5D }, //2.80
{ 0x8004FD03, key_8004FD03, 0x5D }, //2.60
{ 0xC0CB167C, (u8*)g_keyC0, 0x5D, 0x5D }, //2.00 Game EBOOT.BIN 144-байтный
Теперь немного просвящения или просвещения - подытог по всему этому поводу. - Существет множество Публичных ключей, которыми шифруются игры и они от прошивки к прошивке постоянно добавляются. Их даже можно самому придумывать и шифровать любое содержимое соответствующим Кирком, но с условием, что в прошивке PSP они должны быть прописаны или вам самим необходимо их туда прописать.
- Тег - это 4 байта цифр, прописанных в заголовках образов игр по адресу 0xD0. Выступает в роли идентификатора ключа. При запуске игры, по этому тегу просто подставляется соответствующий ему ключ из прошивки. А по скрамблер-коду ключа вступает во взаимодействие соответствующий ключ из KIRK'a процессора.
- Скрамбер-код указывает процессору, какой использовать KIRK, для дешифровки данного вида ключа.
- KIRK - величина постоянная и железно прописана в чипе процессора на стадии его производства.
Я взял для примера из первого спойлера ключ KIRK -> 0x5D:
u8 kirk7_key5D[] = {0x11,0x5A,0x5D,0x20,0xD5,0x3A,0x8D,0xD3,0x9C,0xC5,0xAF,0x41,0x0F,0x0F,0x18,0x6F}; //2.xx + game eboot.bin
Именно потому, что нам известен этот KIRK, мы имеем возможность подписывать игры ISO.
Собсно это я уже где-то рассказывал.
По теме: исходя из вышеизложенного, нужно определить, каким образом подписаны официальные образы PS1 игр от SONY: - Нужно узнать тег...
- По тегу определить ключ...
- По ключу определить скрамблер-код...
- И в заключении посмотреть - а нет ли для этого кода у нас известного KIRK'a.
- Если есть - значит мы сможем подписать PSX.
Последний раз редактировалось ErikPshat; 11.03.2014 в 21:22.
|