PSP хакинг и девелопмент  Взгляд изнутри  
	 
	
	
	
	
	
	
	
	
	
	
	
 
		 
	
	
	
		
	
	
	
		
			
			 
			01.06.2013, 21:29
			
			
		 
		
			 
			
			Сообщение: #1  (1072877) 
			
		 
	
 
	
			
	
	
 
 
			
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
				Регистрация: 18.12.2006
				Адрес: Москва
				Возраст: 58
				
					Сообщений: 47,758
				
				 
	Вы сказали Спасибо: 27,999
	
		
			
				Поблагодарили 43,806 раз(а) в 12,399 сообщениях
			
		
	
				
				Сила репутации: 
10 Репутация: 42997   
					 (репутация неоспорима)
				
   
				    
 
			 
 
	  
	
	
	
		
		
			
			
				 
				KIRK Header 
			 
			 
			
		
		
	
	
		0x00-0x0F is decryption key (but stored encrypted with AES128, is not PLAINTEXT key)
0x10-0x1F is CMAC key (but again, derived ver not plain)
0x20-0x2F is header hash (CMAC)
0x30-0x3F is data hash (CMAC)
 
	 
		
		
		
			
			
			
			
			
			
			
		
		
		
		
		
			
		
		
		
	 
		
		
						
 
				
				Последний раз редактировалось ErikPshat; 01.06.2013 в 21:53 .
				
				 
			
		
		 
	 
 
	
		
		
	 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
 
 
		
	 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
			
			 
			01.06.2013, 21:38
			
			
		 
		
			 
			
			Сообщение: #2  (1072878) 
			
		 
	
 
	
			
	
	
 
 
			
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
				Регистрация: 18.12.2006
				Адрес: Москва
				Возраст: 58
				
					Сообщений: 47,758
				
				 
	Вы сказали Спасибо: 27,999
	
		
			
				Поблагодарили 43,806 раз(а) в 12,399 сообщениях
			
		
	
				
				Сила репутации: 
10 Репутация: 42997   
					 (репутация неоспорима)
				
   
				    
 
			 
 
	  
	
	
	
		
		
			
			
				 
				
			 
			 
			
		
		
	
	
		Ключи kirk7 участвуют в процессе криптовки\декриптовки всех испольняемых файлов PRX(ELF)
Как я понял, они здесь пронумерованы по скрамблеркОдам и в процессе подписи Game EBOOT.BIN тегами 0xD916xxF0 используется ключ 
kirk7_key5D 
kirk_engine.c  
	u8 kirk1_key[] =   {0x98, 0xC9, 0x40, 0x97, 0x5C, 0x1D, 0x10, 0xE8, 0x7F, 0xE6, 0x0E, 0xA3, 0xFD, 0x03, 0xA8, 0xBA};
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};
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}; 
 
Собсно вопрос: как можно надыбать ключ 
kirk7_key60 , для подписи приложений DATA.PSP?
 
	 
		
		
		
		
		
			
		
		
		
	 
		
		
						
 
				
				Последний раз редактировалось ErikPshat; 01.06.2013 в 22:57 .
				
				 
			
		
		 
	 
 
	
		
		
	 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
 
 
		
	 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
			
			 
			16.06.2013, 12:52
			
			
		 
		
			 
			
			Сообщение: #3  (1073694) 
			
		 
	
 
	
			
	
	
 
 
			
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
				Регистрация: 18.12.2006
				Адрес: Москва
				Возраст: 58
				
					Сообщений: 47,758
				
				 
	Вы сказали Спасибо: 27,999
	
		
			
				Поблагодарили 43,806 раз(а) в 12,399 сообщениях
			
		
	
				
				Сила репутации: 
10 Репутация: 42997   
					 (репутация неоспорима)
				
   
				    
 
			 
 
	  
	
	
	
		
		
			
			
			 
			
		
		
	
	
		Хех, в поиске программного кирка PSP в эмуляторе прошивки PS3 обнаружил ключи к EBOOT.BIN игр ISO.
Они лежат в файле 
dev_flash\pspemu\release\emulator_drm.sprx  в секции sceEmulatorDrm.
Там, в прошивке 3.55 найдены следующие теги вместе с ключами:
0xD9160BF0 - 5.55 Game EBOOT.BIN 
0xD9160AF0 - 5.05 Game EBOOT.BIN 
0xD91606F0 - 3.00 Game EBOOT.BIN 
0xD91605F0 - 2.80 Game EBOOT.BIN 
0x8004FD03 - 2.60 Game EBOOT.BIN 
0xC0CB167C - 2.00 Game EBOOT.BIN 
0x08000000 - 1.50 Game EBOOT.BIN 
 
	 
		
		
		
		
		
			
		
		
		
	 
		
		
						
 
				
				Последний раз редактировалось ErikPshat; 20.06.2013 в 00:11 .
				
				 
			
		
		 
	 
 
	
		
		
	 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
 
 
		
	 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
			
			 
			16.06.2013, 15:16
			
			
		 
		
			 
			
			Сообщение: #4  (1073699) 
			
		 
	
 
	
			
	
	
 
 
			
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
				Регистрация: 18.12.2006
				Адрес: Москва
				Возраст: 58
				
					Сообщений: 47,758
				
				 
	Вы сказали Спасибо: 27,999
	
		
			
				Поблагодарили 43,806 раз(а) в 12,399 сообщениях
			
		
	
				
				Сила репутации: 
10 Репутация: 42997   
					 (репутация неоспорима)
				
   
				    
 
			 
 
	  
	
	
	
		
		
			
			
				 
				
			 
			 
			
		
		
	
	
		
	
	
		
			
				
					Сообщение от 
ErikPshat 
					 
				 
				Собсно вопрос: как можно надыбать ключ kirk7_key60, для подписи приложений DATA.PSP?
			
		 
	 
	
 
Ну вот спасибо всем, кто пытался помочь, но так и не смог 
 
По-ходу я нашёл то, что искал...
Продолжив листать тот же файл - 
emulator_drm.sprx , я вдруг обнаружил, что внутри спрятан ещё один файл с заголовком 
SCE , как и положено быть зашифрованному файлу SPRX. Он находится сразу после ключей 0xD916xxF0 в секции 
iso_spu_handler  в позиции 0x8000 и практически почти до самого конца.
Изъяв и декриптовав этот файл, с самого начала сразу пришло ощущение, что это вовсе не программный код. А так оно и есть - это регистры процессора, самый настоящий ассемблерный код.
Самое интересное находится в самом конце файла. Там идут раздельные 4 секции кода - 
2x256 байт  (0x100) и 
2x336 байт  (0x150):
  1-ая секция (AES128 Forward S-box) 
  Ну тут понятно, взглянув на первые же цифры в коде, сразу узнаваем алгоритм шифрования AES128. Этот код всегда можно встретить в любых исходниках, где используется шифрование, обычно в файле 
AES.c  или 
AES128.c . Этот механизм признан во всём мире, как стандарт шифрования, разработанный Rijndael: "
The Advanced Encryption Standard (Rijndael, aka AES) "
Эта секция кода называется 
Forward S-box .
Посмотреть и сравнить этот фрагмент кода можете, например, здесь: 
http://en.wikipedia.org/wiki/Rijndae...#Forward_S-box 
	//  Source File: D:\3 Playstation 3\PS3-decrypt-tools-windows\dev_flash\pspemu\release\emulator_drm_iso_spu_handler.sprx.elf
//         Time: 16.06.2013 14:10
// Orig. Offset: 55648 / 0x0000D960
//       Length: 256 / 0x00000100 (bytes)
unsigned char rawData[256] =
{
    0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 
    0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 
    0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, 
    0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, 
    0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, 
    0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, 
    0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, 
    0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, 
    0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, 
    0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, 
    0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, 
    0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, 
    0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, 
    0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 
    0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 
    0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16, 
} ; 
 
    2-ая секция (AES128 Inverse S-box) 
  Это продолжение алгоритма шифрования AES128. Эта секция кода называется 
Inverse S-box .
Посмотреть и сравнить этот фрагмент кода можете, например, здесь: 
http://en.wikipedia.org/wiki/Rijndae...#Inverse_S-box 
	//  Source File: D:\3 Playstation 3\PS3-decrypt-tools-windows\dev_flash\pspemu\release\emulator_drm_iso_spu_handler.sprx.elf
//         Time: 16.06.2013 14:10
// Orig. Offset: 56080 / 0x0000DB10
//       Length: 256 / 0x00000100 (bytes)
unsigned char rawData[256] =
{
    0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 
    0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 
    0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 
    0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, 
    0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 
    0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, 
    0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, 
    0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 
    0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, 
    0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, 
    0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 
    0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 
    0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 
    0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 
    0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 
    0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D, 
} ; 
 
    3-я секция (Unknown) 
  Здесь явно какие-то ключи. На это намекает количество байт в блоке - 336 (0x150). По-видимому какой-то тип ключей, либо XOR для следующей 4-ой секции.
	//  Source File: D:\3 Playstation 3\PS3-decrypt-tools-windows\dev_flash\pspemu\release\emulator_drm_iso_spu_handler.sprx.elf
//         Time: 16.06.2013 14:14
// Orig. Offset: 56656 / 0x0000DD50
//       Length: 336 / 0x00000150 (bytes)
unsigned char rawData[336] =
{
    0xD7, 0x6A, 0xA4, 0x78, 0xE8, 0xC7, 0xB7, 0x56, 0x24, 0x20, 0x70, 0xDB, 0xC1, 0xBD, 0xCE, 0xEE, 
    0xF5, 0x7C, 0x0F, 0xAF, 0x47, 0x87, 0xC6, 0x2A, 0xA8, 0x30, 0x46, 0x13, 0xFD, 0x46, 0x95, 0x01, 
    0x69, 0x80, 0x98, 0xD8, 0x8B, 0x44, 0xF7, 0xAF, 0xFF, 0xFF, 0x5B, 0xB1, 0x89, 0x5C, 0xD7, 0xBE, 
    0x6B, 0x90, 0x11, 0x22, 0xFD, 0x98, 0x71, 0x93, 0xA6, 0x79, 0x43, 0x8E, 0x49, 0xB4, 0x08, 0x21, 
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 
    0x42, 0x8A, 0x2F, 0x98, 0x71, 0x37, 0x44, 0x91, 0xB5, 0xC0, 0xFB, 0xCF, 0xE9, 0xB5, 0xDB, 0xA5, 
    0x39, 0x56, 0xC2, 0x5B, 0x59, 0xF1, 0x11, 0xF1, 0x92, 0x3F, 0x82, 0xA4, 0xAB, 0x1C, 0x5E, 0xD5, 
    0xD8, 0x07, 0xAA, 0x98, 0x12, 0x83, 0x5B, 0x01, 0x24, 0x31, 0x85, 0xBE, 0x55, 0x0C, 0x7D, 0xC3, 
    0x72, 0xBE, 0x5D, 0x74, 0x80, 0xDE, 0xB1, 0xFE, 0x9B, 0xDC, 0x06, 0xA7, 0xC1, 0x9B, 0xF1, 0x74, 
    0xE4, 0x9B, 0x69, 0xC1, 0xEF, 0xBE, 0x47, 0x86, 0x0F, 0xC1, 0x9D, 0xC6, 0x24, 0x0C, 0xA1, 0xCC, 
    0x2D, 0xE9, 0x2C, 0x6F, 0x4A, 0x74, 0x84, 0xAA, 0x5C, 0xB0, 0xA9, 0xDC, 0x76, 0xF9, 0x88, 0xDA, 
    0x98, 0x3E, 0x51, 0x52, 0xA8, 0x31, 0xC6, 0x6D, 0xB0, 0x03, 0x27, 0xC8, 0xBF, 0x59, 0x7F, 0xC7, 
    0xC6, 0xE0, 0x0B, 0xF3, 0xD5, 0xA7, 0x91, 0x47, 0x06, 0xCA, 0x63, 0x51, 0x14, 0x29, 0x29, 0x67, 
    0x27, 0xB7, 0x0A, 0x85, 0x2E, 0x1B, 0x21, 0x38, 0x4D, 0x2C, 0x6D, 0xFC, 0x53, 0x38, 0x0D, 0x13, 
    0x65, 0x0A, 0x73, 0x54, 0x76, 0x6A, 0x0A, 0xBB, 0x81, 0xC2, 0xC9, 0x2E, 0x92, 0x72, 0x2C, 0x85, 
    0xA2, 0xBF, 0xE8, 0xA1, 0xA8, 0x1A, 0x66, 0x4B, 0xC2, 0x4B, 0x8B, 0x70, 0xC7, 0x6C, 0x51, 0xA3, 
    0xD1, 0x92, 0xE8, 0x19, 0xD6, 0x99, 0x06, 0x24, 0xF4, 0x0E, 0x35, 0x85, 0x10, 0x6A, 0xA0, 0x70, 
    0x19, 0xA4, 0xC1, 0x16, 0x1E, 0x37, 0x6C, 0x08, 0x27, 0x48, 0x77, 0x4C, 0x34, 0xB0, 0xBC, 0xB5, 
    0x39, 0x1C, 0x0C, 0xB3, 0x4E, 0xD8, 0xAA, 0x4A, 0x5B, 0x9C, 0xCA, 0x4F, 0x68, 0x2E, 0x6F, 0xF3, 
    0x74, 0x8F, 0x82, 0xEE, 0x78, 0xA5, 0x63, 0x6F, 0x84, 0xC8, 0x78, 0x14, 0x8C, 0xC7, 0x02, 0x08, 
    0x90, 0xBE, 0xFF, 0xFA, 0xA4, 0x50, 0x6C, 0xEB, 0xBE, 0xF9, 0xA3, 0xF7, 0xC6, 0x71, 0x78, 0xF2, 
} ; 
 
    4-ая секция (KIRK Keys) 
  Ну собственно справа я откомментировал каждый ключ...
Последние 2 цифры в ключе - это ничто иное, как 
скрамблер-код .
	//  Source File: D:\3 Playstation 3\PS3-decrypt-tools-windows\dev_flash\pspemu\release\emulator_drm_iso_spu_handler.sprx.elf
//         Time: 16.06.2013 14:15
// Orig. Offset: 59120 / 0x0000E6F0
//       Length: 336 / 0x00000150 (bytes)
unsigned char rawData[336] =
{
    0x98, 0x02, 0xC4, 0xE6, 0xEC, 0x9E, 0x9E, 0x2F, 0xFC, 0x63, 0x4C, 0xE4, 0x2F, 0xBB, 0x46, 0x68, //kirk7_key03
    0x99, 0x24, 0x4C, 0xD2, 0x58, 0xF5, 0x1B, 0xCB, 0xB0, 0x61, 0x9C, 0xA7, 0x38, 0x30, 0x07, 0x5F, //kirk7_key04
    0x02, 0x25, 0xD7, 0xBA, 0x63, 0xEC, 0xB9, 0x4A, 0x9D, 0x23, 0x76, 0x01, 0xB3, 0xF6, 0xAC, 0x17, //kirk7_key05
    0x84, 0x85, 0xC8, 0x48, 0x75, 0x08, 0x43, 0xBC, 0x9B, 0x9A, 0xEC, 0xA7, 0x9C, 0x7F, 0x60, 0x18, //kirk7_key0C
    0xB5, 0xB1, 0x6E, 0xDE, 0x23, 0xA9, 0x7B, 0x0E, 0xA1, 0x7C, 0xDB, 0xA2, 0xDC, 0xDE, 0xC4, 0x6E, //kirk7_key0D
    0xC8, 0x71, 0xFD, 0xB3, 0xBC, 0xC5, 0xD2, 0xF2, 0xE2, 0xD7, 0x72, 0x9D, 0xDF, 0x82, 0x68, 0x82, //kirk7_key0E
    0x0A, 0xBB, 0x33, 0x6C, 0x96, 0xD4, 0xCD, 0xD8, 0xCB, 0x5F, 0x4B, 0xE0, 0xBA, 0xDB, 0x9E, 0x03, //kirk7_key0F
    0x32, 0x29, 0x5B, 0xD5, 0xEA, 0xF7, 0xA3, 0x42, 0x16, 0xC8, 0x8E, 0x48, 0xFF, 0x50, 0xD3, 0x71, //kirk7_key10
    0x46, 0xF2, 0x5E, 0x8E, 0x4D, 0x2A, 0xA5, 0x40, 0x73, 0x0B, 0xC4, 0x6E, 0x47, 0xEE, 0x6F, 0x0A, //kirk7_key11
    0x5D, 0xC7, 0x11, 0x39, 0xD0, 0x19, 0x38, 0xBC, 0x02, 0x7F, 0xDD, 0xDC, 0xB0, 0x83, 0x7D, 0x9D, //kirk7_key12
    0x0C, 0xFD, 0x67, 0x9A, 0xF9, 0xB4, 0x72, 0x4F, 0xD7, 0x8D, 0xD6, 0xE9, 0x96, 0x42, 0x28, 0x8B, //kirk7_key4B
    0xAF, 0xFE, 0x8E, 0xB1, 0x3D, 0xD1, 0x7E, 0xD8, 0x0A, 0x61, 0x24, 0x1C, 0x95, 0x92, 0x56, 0xB6, //kirk7_key53
    0x1C, 0x9B, 0xC4, 0x90, 0xE3, 0x06, 0x64, 0x81, 0xFA, 0x59, 0xFD, 0xB6, 0x00, 0xBB, 0x28, 0x70, //kirk7_key57
    0x03, 0xB3, 0x02, 0xE8, 0x5F, 0xF3, 0x81, 0xB1, 0x3B, 0x8D, 0xAA, 0x2A, 0x90, 0xFF, 0x5E, 0x61, //kirk7_key64
    0x12, 0x46, 0x8D, 0x7E, 0x1C, 0x42, 0x20, 0x9B, 0xBA, 0x54, 0x26, 0x83, 0x5E, 0xB0, 0x33, 0x03, //kirk7_key38
    0xC4, 0x3B, 0xB6, 0xD6, 0x53, 0xEE, 0x67, 0x49, 0x3E, 0xA9, 0x5F, 0xBC, 0x0C, 0xED, 0x6F, 0x8A, //kirk7_key39
    0x2C, 0xC3, 0xCF, 0x8C, 0x28, 0x78, 0xA5, 0xA6, 0x63, 0xE2, 0xAF, 0x2D, 0x71, 0x5E, 0x86, 0xBA, //kirk7_key3A
    0x11, 0x5A, 0x5D, 0x20, 0xD5, 0x3A, 0x8D, 0xD3, 0x9C, 0xC5, 0xAF, 0x41, 0x0F, 0x0F, 0x18, 0x6F, //kirk7_key5D
    0x9C, 0x9B, 0x13, 0x72, 0xF8, 0xC6, 0x40, 0xCF, 0x1C, 0x62, 0xF5, 0xD5, 0x92, 0xDD, 0xB5, 0x82, //kirk7_key63
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
    0x98, 0xC9, 0x40, 0x97, 0x5C, 0x1D, 0x10, 0xE8, 0x7F, 0xE6, 0x0E, 0xA3, 0xFD, 0x03, 0xA8, 0xBA, //kirk1_key
} ; 
 
  
А теперь просто сравните последнюю 4-ую секцию в спойлере над головой с кодом 
kirk7  в исходниках 
kirk_engine.c  Для лучшей наглядности продублирую его здесь (то же самое, что во 2-ом посту): 
  Известные ключи KIRK 7 
  
	// AES key for kirk1
u8 kirk1_key[16] =  {0x98, 0xC9, 0x40, 0x97, 0x5C, 0x1D, 0x10, 0xE8, 0x7F, 0xE6, 0x0E, 0xA3, 0xFD, 0x03, 0xA8, 0xBA};
// AES key for kirk4/7
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}; 
 
    
Что это даёт? 
Дело в том, что из известных ранее ключей, которые каким-то образом сдампили когда-то, нам полезны только ключи со скрамблер-кодами 
0x4B  и 
0x5D , которые относятся к игровым кодам "
Game EBOOT.BIN ". На этом всё, все остальные KIRK-ключи нам не дают никакой пользы, потому что все остальные файлы прошивок, демо-игр, программ и всего прочего, подписаны ключами со скрамблер-кодами совершенно другими, которые отсутствуют в данном известном списке.
Обратите внимание на номера известных ключей KIRK (выделено 
красным ):
kirk7_key02  
kirk7_key03  
kirk7_key04  
kirk7_key05  
kirk7_key07  
kirk7_key0C  
kirk7_key0D  
kirk7_key0E  
kirk7_key0F  
kirk7_key10  
kirk7_key11  
kirk7_key12  
kirk7_key38  
kirk7_key39  
kirk7_key3A  
kirk7_key44  
kirk7_key4B  
kirk7_key53  
kirk7_key57  
kirk7_key5D  
kirk7_key63  
kirk7_key64  
Эти красные номера - ни что иное, как номера 
скрамблер-кодов  приватных ключей KIRK-а, которым назначены публичные ключи, лежащие в прошивке.
А каждый публичный ключ соответствует своему "
Тегу ", который прописан в заголовке любого зашифрованного файла.
Таким образом, файлы шифруются и декриптуются KIRK-ом в соответствии со скрамблер-кодом.
Например файлы EBOOT.BIN игр ISO/UMD шифруются и дешифруются ключем kirk7_key
5D  со скрамблер-кодом 
0x5D . С каждой новой версией прошивки, Sony постоянно к этому скрамблеру добавляет новые "Теги" в прошивку, которыми криптуются и декриптуются испольняемые файлы игр EBOOT.BIN. Вот почему новые игры с новыми тегами нельзя запустить на старых прошивках и Sony заставляет обновиться на новую, чтобы поиграть в новую игру. Вот для примера часть списка тегов со скрамблером 0x5D: 
	    /* 0x5D Game EBOOT.BIN keys */
    { 0xD91613F0, key_D91613F0, 0x5D }, //6.20
    { 0xD91612F0, key_D91612F0, 0x5D }, //6.10
    { 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 
 
Именно потому, что мы знаем этот ключ - 
kirk7_key5D  , поэтому мы уже можем подписывать собственным заголовком любые игровые EBOOT.BIN. Наглядный пример тому программа SEBOOT. И вполне вероятно, что среди этого клада найденных новых Кирков в эмуляторе PSP для PS3, могут найтись подходящие под наши потребности kirk-ключики. Тем самым мы сможем сами подписывать файлы других видов, например DEMO GAME, имеющих скрамблер-код 
0x60 .
Процесс декриптовки эмулятора PSP в PS3 и набор инструментов  
	 
		
		
		
			
			
			
			
			
			
			
		
		
		
		
		
			
		
		
		
	 
		
		
						
 
				
				Последний раз редактировалось ErikPshat; 13.03.2014 в 15:29 .
				
				 
			
		
		 
	 
 
	
		
		
	 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
 
 
		
	 
 
 
	
		
			
				
					Эти 4 пользователя(ей) сказали Спасибо ErikPshat за это полезное сообщение: 
				
				
				
			 
			 
		 
	
 
  
 
 
	 
	
		 
	 
 
		
 
	
		
	
	
	
 
	
	
	
	
	
		
			Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) 
		 
	 
	
		
			  
		 
	 
	
	
		
	
		 
		Ваши права в разделе
	 
 
 
	
		
		Вы не можете  создавать новые темы
		Вы не можете  отвечать в темах
		Вы не можете  прикреплять вложения
		Вы не можете  редактировать свои сообщения
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  
 
 
	 
	
		
	 
 
       
          Текущее время: 08:38 . Часовой пояс GMT +3.
       
       
    
      
        
	   
		
		Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: 
zCarot 
		
		
		
			
		PSPx Forum - Сообщество фанатов игровых консолей.