From d9fa748da37efc5348a5e14d80ac16e755dea07c Mon Sep 17 00:00:00 2001 From: N2614 Date: Tue, 8 Feb 2011 00:48:28 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=83=87?= =?UTF-8?q?=E3=82=B8=E3=83=83=E3=83=88=E3=81=A4=E3=81=8D=E3=81=AE=E3=82=B7?= =?UTF-8?q?=E3=83=AA=E3=82=A2=E3=83=AB=E3=83=8A=E3=83=B3=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E3=81=86=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@28 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleBackup/ConsoleBackup.cpp | 4 ++ .../ConsoleBackup/OMakefile | 1 + .../ConsoleRestore/ConsoleRestore.cpp | 3 + .../ConsoleRestore/OMakefile | 1 + .../common/HardwareInfo.cpp | 61 +++++++++++++++++++ .../common/HardwareInfo.h | 33 ++++++++++ 6 files changed, 103 insertions(+) create mode 100644 trunk/ConsoleDataMigration/common/HardwareInfo.cpp create mode 100644 trunk/ConsoleDataMigration/common/HardwareInfo.h diff --git a/trunk/ConsoleDataMigration/ConsoleBackup/ConsoleBackup.cpp b/trunk/ConsoleDataMigration/ConsoleBackup/ConsoleBackup.cpp index 966196f..a2fdae4 100644 --- a/trunk/ConsoleDataMigration/ConsoleBackup/ConsoleBackup.cpp +++ b/trunk/ConsoleDataMigration/ConsoleBackup/ConsoleBackup.cpp @@ -50,6 +50,7 @@ #include "PlayHistoryManager.h" #include "common_Types.h" #include "VersionDetect.h" +#include "HardwareInfo.h" // svnリビジョン埋め込み用 #include "version.h" @@ -232,6 +233,9 @@ extern "C" void nnMain(void) } common::Logger::GetLoggerInstance()->PrintResultIfFailed(result, __LINE__); + common::HardwareInfo hwInfo; + hwInfo.AddCheckDigit(reinterpret_cast(s_SerialNo)); + // デバイスIDの取得 bit32 deviceId; result = nn::ps::CTR::GetDeviceId(&deviceId); diff --git a/trunk/ConsoleDataMigration/ConsoleBackup/OMakefile b/trunk/ConsoleDataMigration/ConsoleBackup/OMakefile index 39abc74..487f326 100644 --- a/trunk/ConsoleDataMigration/ConsoleBackup/OMakefile +++ b/trunk/ConsoleDataMigration/ConsoleBackup/OMakefile @@ -29,6 +29,7 @@ SOURCES[] = ConsoleBackup.cpp Controller.cpp Exporter.cpp + ../common/HardwareInfo.cpp ../common/DrawSystemState.cpp ../common/FileTransfer.cpp ../common/FileChecker.cpp diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/ConsoleRestore.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/ConsoleRestore.cpp index 4af34b2..d0e6a02 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/ConsoleRestore.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/ConsoleRestore.cpp @@ -44,6 +44,7 @@ #include "SDMountManager.h" #include "HeapManager.h" #include "VersionDetect.h" +#include "HardwareInfo.h" // svnリビジョン埋め込み用 #include "version.h" @@ -238,6 +239,8 @@ extern "C" void nnMain(void) std::memset(s_SerialNo, '\0', nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN); result = nn::cfg::CTR::system::GetSerialNo(s_SerialNo); + common::HardwareInfo hwInfo; + hwInfo.AddCheckDigit(reinterpret_cast(s_SerialNo)); if(result.IsSuccess()) { s_CanReadSerialNumber = true; diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/OMakefile b/trunk/ConsoleDataMigration/ConsoleRestore/OMakefile index ca7520a..90b2103 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/OMakefile +++ b/trunk/ConsoleDataMigration/ConsoleRestore/OMakefile @@ -31,6 +31,7 @@ SOURCES[] = Importer.cpp Updater.cpp Ntpclient.cpp + ../common/HardwareInfo.cpp ../common/DrawSystemState.cpp ../common/FileTransfer.cpp ../common/FileChecker.cpp diff --git a/trunk/ConsoleDataMigration/common/HardwareInfo.cpp b/trunk/ConsoleDataMigration/common/HardwareInfo.cpp new file mode 100644 index 0000000..c8a8f41 --- /dev/null +++ b/trunk/ConsoleDataMigration/common/HardwareInfo.cpp @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HardwareInfo.cpp + + Copyright 2009 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include "HardwareInfo.h" + +#include + +namespace common +{ + +HardwareInfo::HardwareInfo() +{ + // TODO 自動生成されたコンストラクター・スタブ + +} + +HardwareInfo::~HardwareInfo() +{ + // TODO Auto-generated destructor stub +} + +// NULL終端されたシリアルナンバーを受け取る +// NULL終端された場所にチェックデジットを付加して新たにNULL終端する +void HardwareInfo::AddCheckDigit(char* serial) +{ + size_t len = std::strlen(serial); + + u8 digit = 0; + bool odd = true; + for(u8 i = len - 1; i > 0 && std::isdigit(serial[i]); i--) + { + if(odd) + { + digit += (serial[i] - '0') * 3; + } + else + { + digit += (serial[i] - '0'); + } + odd = !odd; + } + + serial[len] = 10 - (digit % 10) + '0'; + serial[len + 1] = '\0'; +} + + +} diff --git a/trunk/ConsoleDataMigration/common/HardwareInfo.h b/trunk/ConsoleDataMigration/common/HardwareInfo.h new file mode 100644 index 0000000..e6406cf --- /dev/null +++ b/trunk/ConsoleDataMigration/common/HardwareInfo.h @@ -0,0 +1,33 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HardwareInfo.h + + Copyright 2009 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef HARDWAREINFO_H_ +#define HARDWAREINFO_H_ + +namespace common +{ + +class HardwareInfo +{ +public: + HardwareInfo(); + virtual ~HardwareInfo(); + + void AddCheckDigit(char* serial); +}; + +} + +#endif /* HARDWAREINFO_H_ */