Карта памяти в С650
===
Loader - 0x10000000 - 0x1000E7FF
Ldr_Sign - 0x1000E800 - 0x1000EFFF
HWBlock - 0x1000F000 - 0x1000FFFF
SecureZone - 0x10010000 - 0x1001FFFF
PanicData - 0x10020000 - 0x1003FFFF
DSP - 0x10040000 - 0x1007FFFF
MemMap - 0x10080000 - 0x100800C3
MainFlash - 0x100800C4 - 0x1091FFFF
Graph - 0x10920000 - 0x109DFFFF
LangPack - 0x109E0000 - 0x10B1F7FF
MainFlash_Sign - 0x10B1F800 - 0x10B1FFFF
################
Есть 2 подписи:
1. для загрузчика с адреса 0х10000000 по 0х1000E7FF
начинается с 0х1000E800, оформлена как часть блока загрузчика
проверяет только код загрузчика,
2. для части прошивки с с адреса 0х10040000 по 0х1091FFFF
начинается с 0х10B1F810, оформлена в отдельный блок по адресу 0х10B1F800
проверяет блок кода DSP, карту памяти, код прошивки.
################
Все смещения относительно начала подписи!
Некие поля в сертификате обусловлены стандартом ASN.1. Они все в основном проверяются. По всем вопросам - туда.
===
Подпись загрузчика:
=
Это блок параметров, его размер >5 байт и <=512 байт
FLASH:1000E800 LdrSignParam DCB 0xB1 ; type=название не существенно, всегда должно быть 0xB1
FLASH:1000E800 DCW 0xC6 ; OffsetCert =>1000E8C6/Cert_Ldr_SignParam - это смещение на 1-й сертификат
FLASH:1000E800 DCB 2 ; HWVer - это тип железа, в данном случае Product Version
Если этот массив имеет размер 0х14 байт, то сравнивается с записанным по адресу ROM_0х00005278/Std_SerNum
Если этот массив имеет размер 0х0E байт, то сравнивается с CPU_SerNum
FLASH:1000E800 DCB 0x14 ; Size_SerNum - размер массива SerNum
FLASH:1000E800 DCB 0xDA, 0x95, 0x1B, 0x6D, 0xDC, 0x97, 0х07, 0xCE, 0x40; SerNum
FLASH:1000E800 DCB 0xEA, 0x53, 0x0F, 0x90, 0x20, 0x91, 0xB5, 0x20, 0xDD; SerNum
FLASH:1000E800 DCB 0x2F, 0xF3 ; SerNum
FLASH:1000E800 DCW 0x30FF ; CmdBlock.Cmd_InitPubKey=команда "загрузить новый RSA-ключ"
FLASH:1000E800 DCB 0xFF ; CmdBlock.SizeCertPubKey=размер сертификата без подписи
FLASH:1000E800 DCD 0x247 ; CmdBlock.OffsetCert=ссылка на сертефикат=0х1000EA47/Cert_Ldr
FLASH:1000E800 DCB 1 ; CmdBlock.PubKeyNum_TestCert=номер ключа, которым проверяется подпись сертификата
FLASH:1000E800 DCB 1 ; CmdBlock.PubKeyNum_Set_in_arrPubKey=номер нового ключа в массиве проверенных ключей
FLASH:1000E800 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam=команда "проверить блок памяти"
FLASH:1000E800 DCW 0x11 ; CmdBlock.Flags=Флаг="железный" SHA-1
FLASH:1000E800 DCB 1 ; CmdBlock.MemNum=кол-во блоков в массиве
FLASH:1000E800 DCD StartFlash ; CmdBlock.MemAddr=начало проверяемого блока
FLASH:1000E800 DCD 0xE800 ; CmdBlock.MemSize=размер проверяемого блока
тут может продолжаться массив из элементов MemAddr-MemSize
FLASH:1000E800 DCD 0x3D1 ; CmdBlock.Offset_RSASign=ссылка на подпись=0х1000EBD1/Ldr_RSASign
FLASH:1000E800 DCB 1 ; CmdBlock._PubKeyNum=номер ключа, которым проверяется подпись
эта команда аналогична предыдущей
FLASH:1000E800 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam
FLASH:1000E800 DCW 0x11 ; CmdBlock.Flags
FLASH:1000E800 DCB 1 ; CmdBlock.MemNum
FLASH:1000E800 DCD HWBlock ; CmdBlock.MemAddr
FLASH:1000E800 DCD 4 ; CmdBlock.MemSize
FLASH:1000E800 DCD 0x451 ; CmdBlock.Offset_RSASign=0х1000EC51/HWBlock_RSASign
FLASH:1000E800 DCB 1 ; CmdBlock._PubKeyNum <=предыдущий байт
подпись для блока параметров от 0х1000E800 и до предыдущего байта
FLASH:1000E800 RSASign_LdrSignParam DCB 0x10, 0x2F, 0xE9, 0x88, 0xD9, 4, 0xEC, 0x34, 0xD0; RSASign
FLASH:1000E800 DCB 0x55, 0xF3, 0xCD, 0xD, 0xD1, 0x14, 0x65, 0x88, 0x9E; RSASign
FLASH:1000E800 DCB 0x6B, 0xEA, 0x9F, 0x4A, 0x31, 0x21, 0x9F, 0x45, 0x61; RSASign
FLASH:1000E800 DCB 0x3D, 0x5E, 0xB8, 0xA5, 0x9D, 0xEA, 0x88, 0x63, 0x27; RSASign
FLASH:1000E800 DCB 0x71, 0x49, 0x66, 0xD2, 0xC8, 0x9F, 0xFA, 0xE9, 0x24; RSASign
FLASH:1000E800 DCB 0x4A, 0x33, 0xFC, 0xF9, 0x83, 0xF6, 0x6B, 0x8E, 0xA5; RSASign
FLASH:1000E800 DCB 0x61, 0x62, 0xF7, 0xF3, 0xA4, 0x2A, 0x40, 0x83, 0xDA; RSASign
FLASH:1000E800 DCB 0x9A, 0xBD, 0xF5, 0xA0, 0x26, 0x9B, 0xBE, 0x73, 0xCA; RSASign
FLASH:1000E800 DCB 0x82, 0xEC, 0xAE, 0x35, 0x10, 0x14, 0x5D, 0x64, 0x6C; RSASign
FLASH:1000E800 DCB 0x25, 0xB8, 0x45, 0xBB, 0xDC, 0x10, 0xB6, 0x67, 9; RSASign
FLASH:1000E800 DCB 0xE0, 0x18, 0x23, 0x5E, 0xD6, 0xBB, 0xAF, 0x8B, 0x20; RSASign
FLASH:1000E800 DCB 0xB1, 0x98, 0xA1, 0xC4, 0x4B, 0x5A, 0x4C, 0x56, 0x2E; RSASign
FLASH:1000E800 DCB 0x52, 0xEE, 0x93, 0xA4, 0x74, 0x94, 0xB1, 0x99, 0xCE; RSASign
FLASH:1000E800 DCB 0x6B, 0x96, 0x7E, 0xFF, 0x59, 0xA2, 0x12, 0xAD, 0xC8; RSASign
FLASH:1000E800 DCB 0x99, 0x10 ; RSASign
===
Сертификат предоставляет открытый RSA-ключ для проверки подписи RSASign_LdrSignParam.
Проверяется RSA-ключом под номером 0 - железный ключ, зашитый в ПЗУ (ROM_0x0000529C).
Ключ помещается в массив открытых ключей (RAM_0х03FC2E0C) под номером 1.
=
FLASH:1000E8C6 Cert_Ldr_SignParam DCB 1 ; field_0=ASN.1
FLASH:1000E8C6 DCB 2 ; field_1=ASN.1
FLASH:1000E8C6 DCB 1 ; issuer.StdHdr.Type=ASN.1
FLASH:1000E8C6 DCW 4 ; issuer.StdHdr.field_1=ASN.1
FLASH:1000E8C6 DCB 50 ; issuer.StdHdr.StrSize=размер следующей строки в байтах
FLASH:1000E8C6 DCB 'CN=Motorola PCS CA9,OU=Motorola PKI,O=Motorola Inc'; issuer.Str
FLASH:1000E8C6 DCD 0x3F9E13F0 ; validity.notBefore=это дата/время годности сертификата, не ранее
FLASH:1000E8C6 DCD 0x58DB5B70 ; validity.notAfter=это дата/время годности сертификата, не позже
FLASH:1000E8C6 DCB 1 ; subject.StdHdr.Type=ASN.1
FLASH:1000E8C6 DCW 4 ; subject.StdHdr.field_1=ASN.1
FLASH:1000E8C6 DCB 50 ; subject.StdHdr.StrSize=размер следующей строки в байтах
FLASH:1000E8C6 DCB 'C', 'N', '=', 'C', 'S', 'F', ' ', 'C', 'A', ' ', '9'; subject.Str
FLASH:1000E8C6 DCB '-', '5', ',', 'O', 'U', '=', 'M', 'o', 't', 'o', 'r'; subject.Str
FLASH:1000E8C6 DCB 'o', 'l', 'a', ' ', 'P', 'K', 'I', ',', 'O', '=', 'M'; subject.Str
FLASH:1000E8C6 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'I', 'n', 'c'; subject.Str
FLASH:1000E8C6 DCB ';', 'S', 'N', '=', '1', '0'; subject.Str
FLASH:1000E8C6 DCB 2 ; field_76=ASN.1
FLASH:1000E8C6 DCB 0 ; field_77=ASN.1
FLASH:1000E8C6 DCW 3 ; E.Size=размер в байтах числа Е для RSA <=4
FLASH:1000E8C6 DCB 1, 0, 1 ; E.E=число Е для RSA
FLASH:1000E8C6 DCW 128 ; N.Size=размер в байтах числа N для RSA <= 128
FLASH:1000E8C6 DCB 0xD6, 0x1C, 0x89, 1, 0x4A, 0x7E, 0xC6, 0x49, 0xDB; N.N=число N для RSA
FLASH:1000E8C6 DCB 0xFD, 0x36, 0x91, 0x79, 0x75, 0x53, 0xDE, 0xB3, 0xEC; N.N
FLASH:1000E8C6 DCB 0x2E, 0x6D, 0x6C, 0x1D, 0xC4, 0x4B, 0x63, 0x1D, 0x7C; N.N
FLASH:1000E8C6 DCB 0xFA, 0xAB, 0xBD, 0x4A, 0xB2, 0x4A, 0x91, 0x12, 0x7D; N.N
FLASH:1000E8C6 DCB 3, 0x86, 0xBA, 0x87, 0x50, 0xFD, 0xDF, 0xF7, 0x48; N.N
FLASH:1000E8C6 DCB 0xCA, 0x7D, 0x5C, 0, 0x95, 0xC3, 0xD4, 0x11, 0xBF; N.N
FLASH:1000E8C6 DCB 0xBE, 0x9D, 0xC9, 0x68, 0xBC, 0x92, 0xBB, 0x3C, 0x3F; N.N
FLASH:1000E8C6 DCB 0x2C, 0xF6, 0xF6, 0xD, 8, 0x99, 0x55, 0xBB, 0x87, 0x9C; N.N
FLASH:1000E8C6 DCB 0x3E, 0xFD, 0xE4, 0x2F, 0x89, 0x7E, 0x3E, 0x80, 0xB9; N.N
FLASH:1000E8C6 DCB 0x1D, 0x40, 0xC0, 0x6D, 0x99, 0x1F, 0x93, 0x14, 0x92; N.N
FLASH:1000E8C6 DCB 0x5C, 0x31, 0x91, 8, 0x10, 0x4E, 0xD9, 0xB8, 0x39; N.N
FLASH:1000E8C6 DCB 0xA1, 0xC6, 0x6E, 0x91, 0x6E, 0xEF, 0x46, 0xEF, 0xE0; N.N
FLASH:1000E8C6 DCB 0xAE, 0x1D, 0x9A, 0x8A, 8, 0x3D, 0x16, 0xA8, 0x68; N.N
FLASH:1000E8C6 DCB 0xA4, 0x4B, 0x1F, 0x74, 2, 0xDD, 0x42, 0x32, 0xE0; N.N
FLASH:1000E8C6 DCB 0xA1 ; N.N <=0х1000E8D5
Эта подпись относится к области от 0х1000E8C6/Cert_Ldr_SignParam до 0х1000E8D5 - это адрес байта всерху
FLASH:1000E8C6 DCW 128 ; RSASign.Size=размер в байтах RSA подписи
FLASH:1000E8C6 DCB 0x8F, 0x15, 0xBB, 0x9D, 0x96, 0x27, 0x6C, 0x2D, 0x1F; RSASign.Sign=RSA подпись
FLASH:1000E8C6 DCB 0xAC, 0x2C, 0xA8, 0x54, 0xA4, 0xFF, 0xF0, 0x1A, 0x96; RSASign.Sign
FLASH:1000E8C6 DCB 0x1C, 0xF2, 0x2C, 0x52, 0x64, 0x73, 0x69, 0x1B, 0x9A; RSASign.Sign
FLASH:1000E8C6 DCB 0x2A, 0xF8, 0xA2, 0xDF, 0xF2, 0x9C, 0x66, 0xA6, 0xAA; RSASign.Sign
FLASH:1000E8C6 DCB 6, 0x1F, 0x7A, 0x2E, 0x33, 0xBB, 0x24, 0x34, 0x3B; RSASign.Sign
FLASH:1000E8C6 DCB 0x34, 0x85, 0x5B, 0x38, 0xEF, 0xBB, 0x55, 0x50, 0xF3; RSASign.Sign
FLASH:1000E8C6 DCB 0x6B, 0xC0, 0x51, 0xB2, 0x95, 4, 0x43, 0x41, 0x10; RSASign.Sign
FLASH:1000E8C6 DCB 0x88, 0x9F, 0xE0, 0x46, 0xE7, 0x43, 0x42, 0xB7, 0xF2; RSASign.Sign
FLASH:1000E8C6 DCB 0xF4, 0xFE, 0x6C, 0x37, 0xEC, 0x12, 0xEB, 0x49, 5; RSASign.Sign
FLASH:1000E8C6 DCB 0x38, 0x7A, 0x82, 0xAB, 0x33, 0x97, 0, 0x40, 0xE5; RSASign.Sign
FLASH:1000E8C6 DCB 0xAE, 0x96, 0, 0x27, 0xEB, 0xDE, 0x68, 0xD, 0x24, 0x23; RSASign.Sign
FLASH:1000E8C6 DCB 0xC2, 0xE5, 0xD1, 0xF4, 0x5F, 0x94, 0xF6, 0xAD, 0xD1; RSASign.Sign
FLASH:1000E8C6 DCB 0xEF, 0x80, 0xE9, 0x19, 0xF2, 0x2B, 0xDB, 0xB6, 0x1B; RSASign.Sign
FLASH:1000E8C6 DCB 0x8B, 0xDE, 0x4C, 0xCB, 0x3F, 0x7C, 0xCC, 0xA8, 0x1E; RSASign.Sign
FLASH:1000E8C6 DCB 0xBB ; RSASign.Sign
FLASH:1000EA47 Cert_Ldr DCB 1 ; field_0
FLASH:1000EA47 DCB 2 ; field_1
FLASH:1000EA47 DCB 1 ; issuer.StdHdr.Type
FLASH:1000EA47 DCW 4 ; issuer.StdHdr.field_1
FLASH:1000EA47 DCB 44 ; issuer.StdHdr.StrSize
FLASH:1000EA47 DCB 'C', 'N', '=', 'C', 'S', 'F', ' ', 'C', 'A', ' ', '9'; issuer.Str
FLASH:1000EA47 DCB '-', '5', ',', 'O', 'U', '=', 'M', 'o', 't', 'o', 'r'; issuer.Str
FLASH:1000EA47 DCB 'o', 'l', 'a', ' ', 'P', 'K', 'I', ',', 'O', '=', 'M'; issuer.Str
FLASH:1000EA47 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'I', 'n', 'c'; issuer.Str
FLASH:1000EA47 DCD 0x3F9E13F0 ; validity.notBefore
FLASH:1000EA47 DCD 0x58DB5B70 ; validity.notAfter
FLASH:1000EA47 DCB 1 ; subject.StdHdr.Type
FLASH:1000EA47 DCW 4 ; subject.StdHdr.field_1
FLASH:1000EA47 DCB 65 ; subject.StdHdr.StrSize
FLASH:1000EA47 DCB 'C', 'N', '=', 'A', 'p', 'p', 'l', 'i', 'c', 'a', 't'; subject.Str
FLASH:1000EA47 DCB 'i', 'o', 'n', ' ', 'S', 'i', 'g', 'n', 'i', 'n', 'g'; subject.Str
FLASH:1000EA47 DCB ' ', '9', '-', '5', '-', '1', ',', 'O', 'U', '=', 'M'; subject.Str
FLASH:1000EA47 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'P', 'K', 'I'; subject.Str
FLASH:1000EA47 DCB ',', 'O', '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a'; subject.Str
FLASH:1000EA47 DCB ' ', 'I', 'n', 'c', ';', 'S', 'N', '=', '0', '7'; subject.Str
FLASH:1000EA47 DCB 2 ; field_7F
FLASH:1000EA47 DCB 0 ; field_80
FLASH:1000EA47 DCW 3 ; E.Size
FLASH:1000EA47 DCB 1, 0, 1 ; E.E
FLASH:1000EA47 DCW 128 ; N.Size
FLASH:1000EA47 DCB 0xAC, 0xC8, 0xBE, 0x80, 0xFE, 0xDC, 0x65, 0x9D, 0xB5; N.N
FLASH:1000EA47 DCB 0xC7, 0xB2, 0x3E, 0x4A, 0xEA, 0x61, 0x86, 0x91, 0x76; N.N
FLASH:1000EA47 DCB 0xAD, 0xE1, 0xD9, 0x96, 0x64, 0x9A, 0x57, 0xFA, 0x5A; N.N
FLASH:1000EA47 DCB 0x4E, 0x72, 0x32, 0xE2, 0x82, 0x26, 0x39, 0x53, 0xB5; N.N
FLASH:1000EA47 DCB 0x6E, 0x81, 0x4A, 0x63, 0x28, 0xDB, 0x82, 0x29, 0x51; N.N
FLASH:1000EA47 DCB 0x9F, 0x9B, 0xC0, 0x27, 0x16, 0x8A, 0xFD, 0xF5, 0xF0; N.N
FLASH:1000EA47 DCB 0xEB, 0xE6, 0xA0, 0x8F, 0xA7, 0x72, 5, 0x2C, 2, 0x5C; N.N
FLASH:1000EA47 DCB 0x4D, 0xF3, 0xDE, 0x29, 0xEC, 0xF9, 0x99, 0x90, 0x6F; N.N
FLASH:1000EA47 DCB 0x42, 0xD9, 0xC4, 0x15, 0x16, 0xF5, 0xDE, 0xE0, 0xCB; N.N
FLASH:1000EA47 DCB 0x80, 0xD5, 0x42, 0x65, 0xFA, 0xE8, 0x3F, 0x43, 0x25; N.N
FLASH:1000EA47 DCB 0x86, 0x44, 0x8C, 0x69, 0xF4, 0xF1, 0x48, 0xC8, 0xAB; N.N
FLASH:1000EA47 DCB 0xF9, 0x8B, 0xB9, 0x4A, 0x35, 0x3B, 0xB9, 0xAB, 0x96; N.N
FLASH:1000EA47 DCB 0x5E, 0x32, 0xE7, 0x8A, 0x6B, 0xC4, 0x52, 0x84, 0xF7; N.N
FLASH:1000EA47 DCB 0x2C, 0xFA, 0xEB, 0x6F, 0xC4, 0x96, 0x49, 4, 0xE8; N.N
FLASH:1000EA47 DCB 1 ; N.N
FLASH:1000EA47 DCW 0x80 ; RSASign.Size
FLASH:1000EA47 DCB 0x22, 0x3F, 0xB4, 0x1D, 0xBE, 0xC8, 0x8B, 0xEF, 0xD9; RSASign.Sign
FLASH:1000EA47 DCB 0x41, 0x82, 0x75, 0xBB, 0x27, 0x14, 0x25, 0xF2, 0x77; RSASign.Sign
FLASH:1000EA47 DCB 0x4D, 0x78, 0xEA, 0x75, 0x87, 0x4C, 0x7A, 0xE4, 3; RSASign.Sign
FLASH:1000EA47 DCB 0xC9, 0x18, 0xCC, 0xBA, 0x22, 0x11, 0xEA, 0x86, 0xD5; RSASign.Sign
FLASH:1000EA47 DCB 0x87, 0xB4, 0xB0, 0xB9, 0xB2, 0xBD, 0x80, 0x66, 0xC9; RSASign.Sign
FLASH:1000EA47 DCB 0x6C, 0x55, 2, 0xD6, 0x61, 0x3F, 6, 0x18, 9, 0x1B; RSASign.Sign
FLASH:1000EA47 DCB 0x75, 0x18, 0xCA, 0x21, 0x83, 0x52, 0xC9, 0x17, 0x36; RSASign.Sign
FLASH:1000EA47 DCB 2, 0x9A, 0x84, 0x66, 2, 0x35, 0xFC, 0x72, 0x7C, 0xCE; RSASign.Sign
FLASH:1000EA47 DCB 0xB6, 0xCC, 0xC3, 0x91, 0x12, 0x81, 0x2C, 0x82, 0x97; RSASign.Sign
FLASH:1000EA47 DCB 0x8A, 0xE5, 0x62, 0xE6, 0x6D, 0xAF, 0x6E, 0xB8, 0xAB; RSASign.Sign
FLASH:1000EA47 DCB 0x16, 0xC5, 0x53, 0x8B, 0x64, 0x37, 0x8B, 0x7B, 0xC4; RSASign.Sign
FLASH:1000EA47 DCB 0x2B, 0x85, 0x9C, 0xDC, 0x37, 0x3E, 0x55, 0x42, 0x5B; RSASign.Sign
FLASH:1000EA47 DCB 0xEB, 0x57, 0xD5, 0x9E, 0x11, 0xF3, 0x7D, 0x4A, 0x92; RSASign.Sign
FLASH:1000EA47 DCB 0x16, 0x81, 0x92, 0xF5, 0x12, 0xC3, 0x33, 0x24, 0x60; RSASign.Sign
FLASH:1000EBD1 Ldr_RSASign DCB 4, 0x11, 0x51, 0x72, 0x23, 0x52, 0x1E, 0x98, 0x9B
FLASH:1000EBD1 DCB 0xB, 4, 0x78, 0x81, 0xE4, 0xFF, 0x79, 0x6C, 0xB7, 0xB2
FLASH:1000EBD1 DCB 0xFC, 0x41, 0xF5, 0xCC, 7, 0x50, 0xD, 0xD, 0xC9, 0xAB
FLASH:1000EBD1 DCB 0x49, 0x21, 0xFD, 0xF8, 0xEA, 0x22, 0xBB, 0xF4, 0xF2
FLASH:1000EBD1 DCB 0x13, 0x58, 0xEE, 0xF6, 0xAF, 0x85, 0xDF, 0x8B, 0x18
FLASH:1000EBD1 DCB 6, 0xB4, 0xED, 0x70, 0x78, 0xF8, 0x33, 0x36, 0x60
FLASH:1000EBD1 DCB 0x63, 0xE5, 0xD8, 0x7F, 0x3D, 0x8A, 0x4A, 0x54, 0x88
FLASH:1000EBD1 DCB 0x7D, 0xE8, 0xCA, 0x29, 0xA2, 0xDA, 0x41, 0x55, 0xB
FLASH:1000EBD1 DCB 0x6F, 0x26, 0xFA, 0xD7, 0x70, 0xF7, 0xEA, 0x81, 0x9F
FLASH:1000EBD1 DCB 0x7C, 0x2E, 0xCD, 0xAA, 0xD0, 0x2A, 0x47, 0x2A, 0x45
FLASH:1000EBD1 DCB 0x68, 0x71, 0x3A, 0x5B, 0x96, 0x8C, 0xA5, 0x46, 0x9C
FLASH:1000EBD1 DCB 0xF4, 0x14, 0x47, 0xB0, 0x93, 0x21, 0x4D, 0x89, 0xC1
FLASH:1000EBD1 DCB 0x30, 0xD6, 0xC0, 0xAF, 0xD0, 0x2C, 0xE8, 0xA5, 0x60
FLASH:1000EBD1 DCB 0xBA, 0x18, 0x6D, 0x91, 0x81, 0x88, 0xB5, 0x69, 0xE4
FLASH:1000EC51 HWBlock_RSASign DCB 0x96, 0xE2, 0x70, 0xA5, 0xBA, 0x7C, 0xD6, 1, 0xAC
FLASH:1000EC51 DCB 0xF5, 0xAA, 0xE6, 0x9A, 0x22, 0x29, 0x2F, 0x48, 0x9D
FLASH:1000EC51 DCB 9, 0x29, 0xAB, 0x31, 0xB, 0x85, 0x15, 0xD3, 0xC4, 0xAA
FLASH:1000EC51 DCB 0x6C, 0xE1, 0xFE, 0xA7, 0xCE, 0x60, 0xA1, 0x48, 0xB0
FLASH:1000EC51 DCB 2, 0x56, 0xB6, 0x27, 0x70, 0x59, 0xB1, 0x96, 0x90
FLASH:1000EC51 DCB 0x83, 0xC, 0x3C, 0xD8, 0x4E, 0x7F, 0x83, 0x11, 0xA6
FLASH:1000EC51 DCB 0x5A, 0x2E, 0x17, 0x44, 0xE7, 0xDA, 0x8C, 0xE6, 0xC7
FLASH:1000EC51 DCB 0x47, 0x87, 0xB2, 0xEB, 0xC4, 0x9D, 9, 0x13, 0x71
FLASH:1000EC51 DCB 0x4F, 0x45, 0x13, 0xFD, 0x82, 0xE2, 0x46, 0xE0, 0x94
FLASH:1000EC51 DCB 0x91, 0xB, 6, 0x55, 0x21, 0xDD, 0xBB, 0xAD, 0xB6, 0xEE
FLASH:1000EC51 DCB 0xCA, 0x80, 0xCF, 0xEE, 0x32, 0x6E, 0xF2, 0xB6, 0xDD
FLASH:1000EC51 DCB 0x68, 0x72, 0x5F, 0x23, 0x8D, 0xD5, 0x94, 0xD0, 4
FLASH:1000EC51 DCB 0x8D, 0x1D, 6, 0x9D, 0xC6, 0x63, 0x51, 0x63, 0x98
FLASH:1000EC51 DCB 0x88, 0x9F, 0x73, 0x5A, 0x87, 0xCE, 0x7A, 0x49, 0x2E
##############
Подпись прошывки: аналогична подписи загрузчика. Отличие в проверке одного блока памяти.
FLASH:10B1F810 FlashSignParam DCB 0xB1 ; type
FLASH:10B1F810 DCW 0xB4 ; OffsetCert
FLASH:10B1F810 DCB 2 ; HWVer
FLASH:10B1F810 DCB 0x14 ; Size_SerNum
FLASH:10B1F810 DCB 0xDA, 0x95, 0x1B, 0x6D, 0xDC, 0x97, 7, 0xCE, 0x40; SerNum
FLASH:10B1F810 DCB 0xEA, 0x53, 0xF, 0x90, 0x20, 0x91, 0xB5, 0x20, 0xDD; SerNum
FLASH:10B1F810 DCB 0x2F, 0xF3 ; SerNum
FLASH:10B1F810 DCW 0x30FF ; CmdBlock.Cmd_InitPubKey
FLASH:10B1F810 DCB 0xFF ; CmdBlock.SizeCertPubKey
FLASH:10B1F810 DCD 0x235 ; CmdBlock.OffsetCert
FLASH:10B1F810 DCB 1 ; CmdBlock.PubKeyNum_TestCert
FLASH:10B1F810 DCB 1 ; CmdBlock.PubKeyNum_Set_in_arrPubKey
FLASH:10B1F810 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam
FLASH:10B1F810 DCW 0x11 ; CmdBlock.Flags
FLASH:10B1F810 DCB 1 ; CmdBlock.MemNum
FLASH:10B1F810 DCD Block_DSP ; CmdBlock.MemAddr
FLASH:10B1F810 DCD 0x8E0000 ; CmdBlock.MemSize
FLASH:10B1F810 DCD 0x3BF ; CmdBlock.Offset_RSASign
FLASH:10B1F810 DCB 1 ; CmdBlock._PubKeyNum
FLASH:10B1F810 DCB 0x0E, 0xBD, 0x06, 0x51, 0x6B, 0xA4, 0x76, 0xDF, 0x82, 0xA0; RSASign
FLASH:10B1F810 DCB 0x66, 0xCB, 0x16, 0xFF, 0x2E, 0xB2, 0x6F, 0x9A, 0xC0; RSASign
FLASH:10B1F810 DCB 0x6E, 0xA8, 0x40, 0x55, 0xD4, 0x4B, 0x35, 0x72, 0x25; RSASign
FLASH:10B1F810 DCB 0xAA, 0x76, 0x48, 0xC5, 0x77, 0x66, 0xCC, 0xC7, 0x26; RSASign
FLASH:10B1F810 DCB 0x6B, 0xDC, 0x84, 0x49, 0x3A, 0xFB, 0x89, 0xD8, 0xEE; RSASign
FLASH:10B1F810 DCB 0x9B, 0x29, 0xE3, 0xAD, 0xEF, 0xB6, 0x0D, 0x4F, 0x17; RSASign
FLASH:10B1F810 DCB 0x85, 0x41, 0xFF, 0x59, 0x10, 0x74, 0xC3, 0x35, 0x4D; RSASign
FLASH:10B1F810 DCB 0x10, 0x6D, 0x94, 0x94, 0x9E, 0x47, 0x2E, 0x33, 0xC9; RSASign
FLASH:10B1F810 DCB 0x67, 0x82, 0x17, 0x2D, 0x54, 0x84, 0xA7, 0xD6, 0x85; RSASign
FLASH:10B1F810 DCB 0x26, 0x03, 0xD6, 0xB2, 0x81, 0x49, 0xF9, 0x96, 0x75; RSASign
FLASH:10B1F810 DCB 0x4E, 0x7F, 0xFD, 0x37, 0x65, 0x90, 0x58, 0xBA, 0x05; RSASign
FLASH:10B1F810 DCB 0x1F, 0xF5, 0x62, 0x3D, 0xBC, 0xE2, 0x20, 0x63, 0xD0; RSASign
FLASH:10B1F810 DCB 0x7A, 0x81, 0x4D, 0xC7, 0xF1, 0xF2, 0xF9, 0x44, 0xEB; RSASign
FLASH:10B1F810 DCB 0x29, 0x41, 0xB7, 0x04, 0xEB, 0xD2, 0xC7, 0x3B, 0xDE; RSASign
FLASH:10B1F810 DCB 0x2F ; RSASign
FLASH:10B1F8C4 Cert_Flash_SignParam DCB 1 ; field_0
FLASH:10B1F8C4 DCB 2 ; field_1
FLASH:10B1F8C4 DCB 1 ; issuer.StdHdr.Type
FLASH:10B1F8C4 DCW 4 ; issuer.StdHdr.field_1
FLASH:10B1F8C4 DCB 50 ; issuer.StdHdr.StrSize
FLASH:10B1F8C4 DCB 'C', 'N', '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a'; issuer.Str
FLASH:10B1F8C4 DCB ' ', 'P', 'C', 'S', ' ', 'C', 'A', '9', ',', 'O', 'U'; issuer.Str
FLASH:10B1F8C4 DCB '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'P'; issuer.Str
FLASH:10B1F8C4 DCB 'K', 'I', ',', 'O', '=', 'M', 'o', 't', 'o', 'r', 'o'; issuer.Str
FLASH:10B1F8C4 DCB 'l', 'a', ' ', 'I', 'n', 'c'; issuer.Str
FLASH:10B1F8C4 DCD 0x3F9E13F0 ; validity.notBefore
FLASH:10B1F8C4 DCD 0x58DB5B70 ; validity.notAfter
FLASH:10B1FA45 DCB 0x54, 0xA6, 0xCF, 0xE8, 0xE9, 0xDC, 0xA1, 0xE0, 0x47; RSASign.Sign
FLASH:10B1FA45 DCB 7, 0x20, 0xCB, 0x97, 0xE, 0x2F, 0x14, 0x9E, 0xA8, 0x76; RSASign.Sign
FLASH:10B1FA45 DCB 0xA, 0xE5, 0x36, 2, 0xAF, 0x88, 0x13, 0xD8, 0x77, 0x85; RSASign.Sign
FLASH:10B1FA45 DCB 0x94, 0xB7, 2, 0x38, 0xDA, 0xE2, 0x66, 0xCF, 0, 0x8F; RSASign.Sign
FLASH:10B1FA45 DCB 0xA2, 0x9B, 0x8B, 0xF2, 0x1B, 0xB9, 0x92, 0x1B, 0x79; RSASign.Sign
FLASH:10B1FA45 DCB 0xF, 0xEB, 0x65, 0x30, 0xC2, 0xFF, 0xB4, 0xCE, 0xAB; RSASign.Sign
FLASH:10B1FA45 DCB 0x5C, 0x55, 0xDC, 0x2E, 0x3D, 0xD1, 0x6B, 0x9A, 0x1B; RSASign.Sign
FLASH:10B1FA45 DCB 0x1F, 0x62, 0x8D, 0x57, 0x67, 0x2C, 0x9C, 0x78, 0xEF; RSASign.Sign
FLASH:10B1FA45 DCB 0xB, 0xF1, 0xA4, 0xA7, 0x56, 0x9A, 0x50, 0x8C, 0x1C; RSASign.Sign
FLASH:10B1FA45 DCB 0xF, 0xA1, 0xF3, 0x73, 0xE1, 0x20, 0x5F, 0x7A, 0xF2; RSASign.Sign
FLASH:10B1FA45 DCB 0xB4, 0x61, 0x59, 2, 0xFE, 0xB6, 0xEF, 0xB9, 0xEE; RSASign.Sign
FLASH:10B1FA45 DCB 0x65, 0x12, 0xA9, 0x6D, 0x35, 0x9D, 0x86, 0xB2, 0x6D; RSASign.Sign
FLASH:10B1FA45 DCB 0xAE, 0x65, 0xA, 0xFC, 7, 0xD3, 0x5D, 0x69, 0x72, 0x85; RSASign.Sign
FLASH:10B1FA45 DCB 0x8E, 0x97, 0x3A, 0x74, 0xB4, 0x2B, 0x79; RSASign.Sign
FLASH:10B1FBCF Flash_RSASign DCB 0x71, 0x34, 0x5B, 0x53, 0xCE, 0xA1, 0xDD, 0x83, 0x5D
FLASH:10B1FBCF DCB 1, 0xAA, 0x7A, 0x4A, 0xE8, 0xB2, 0x20, 0xB3, 0x4A
FLASH:10B1FBCF DCB 0xAB, 0x4C, 0xC1, 0x47, 0x7C, 0x78, 0xD1, 0x81, 0x9F
FLASH:10B1FBCF DCB 0x7E, 0x3D, 0xF7, 0xF, 0xAD, 0xA4, 0x65, 0xAC, 0x11
FLASH:10B1FBCF DCB 0x1D, 0x33, 0xEE, 0x10, 0x4C, 0xDC, 0xE8, 0xE7, 0xF4
FLASH:10B1FBCF DCB 0xD5, 0x6A, 2, 0x3E, 0x93, 0x49, 0xCC, 0x1E, 0xA9
FLASH:10B1FBCF DCB 0x43, 0xF, 0xF8, 0xFE, 0xA0, 0x11, 0xE2, 0x78, 0x47
FLASH:10B1FBCF DCB 0x82, 5, 0xDA, 0x2F, 0x56, 0xBA, 0xD8, 0x8D, 0x70
FLASH:10B1FBCF DCB 0x60, 0x2C, 0x86, 0xCD, 0x20, 0xCF, 0, 0x2D, 0xE7
FLASH:10B1FBCF DCB 0x27, 0x86, 0x1E, 0xF2, 0x54, 0x87, 0x23, 0x38, 3
FLASH:10B1FBCF DCB 0x2F, 0xA9, 0x27, 0x48, 0xA8, 0xB0, 0xE5, 2, 0xF6
FLASH:10B1FBCF DCB 0x14, 0x87, 0x66, 0x58, 0x1E, 0xFA, 0x81, 0xD0, 0x47
FLASH:10B1FBCF DCB 0x50, 0, 0x87, 0xB6, 0x5D, 0x7B, 0xE6, 0xC1, 0xC5
FLASH:10B1FBCF DCB 0xFC, 0x39, 0x26, 0xC5, 0xC4, 0xEA, 0x33, 0xFD, 4
FLASH:10B1FBCF DCB 0x77, 0xE9
Это так :) Если вдруг кому интересно будет...