Improved dumping of extended Xbe certificate information: Original Certificate Size, Online Service ID, Extra Security Flags, and Code Encryption Key

This commit is contained in:
Eduardo C 2018-01-27 22:04:55 +01:00
parent 4cf2dbf5a6
commit 576ce83e94
3 changed files with 18 additions and 0 deletions

View File

@ -157,6 +157,7 @@ class Xbe : public Error
uint32 dwOriginalCertificateSize; // 0x01D0 - Original Certificate Size?
uint32 dwOnlineService; // 0x01D4 - Online Service ID
uint32 dwSecurityFlags; // 0x01D8 - Extra Security Flags
uint08 bzCodeEncKey[16]; // 0x01DC - Code Encryption Key?
}
#include "AlignPosfix1.h"
m_Certificate;

View File

@ -294,6 +294,7 @@ std::string XbePrinter::GenXbeCertificateInfo()
text.append(GenLANKey());
text.append(GenSignatureKey());
text.append(GenAlternateSignatureKeys());
text.append(GenExtraInfo());
return text;
}
@ -378,6 +379,21 @@ std::string XbePrinter::GenAlternateSignatureKeys()
return text;
}
std::string XbePrinter::GenExtraInfo()
{
std::stringstream text;
SSTREAM_SET_HEX(text);
if (Xbe_certificate->dwSize == 0x1EC)
{
text << "Original Certificate Size : 0x" << std::setw(8) << Xbe_certificate->dwOriginalCertificateSize << "\n";
text << "Online Service ID : 0x" << std::setw(8) << Xbe_certificate->dwOnlineService << "\n";
text << "Extra Security Flags : 0x" << std::setw(8) << Xbe_certificate->dwSecurityFlags << "\n";
text << "Code Encryption Key : ";
text << GenHexRow(&(Xbe_certificate->bzCodeEncKey[0]), 0, 16) << "\n";
}
return text.str();
}
std::string XbePrinter::GenSectionInfo()
{
std::string text;

View File

@ -72,6 +72,7 @@ class XbePrinter
std::string GenLANKey();
std::string GenSignatureKey();
std::string GenAlternateSignatureKeys();
std::string GenExtraInfo();
std::string GenSectionInfo();
std::string GenSectionHeaders();