mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-03 08:49:03 +00:00
Add source code for ctrtool
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#pragma once
|
||||
#include "types.h"
|
||||
#include "KeyBag.h"
|
||||
#include <tc/Optional.h>
|
||||
#include <ntd/n3ds/exheader.h>
|
||||
|
||||
namespace ctrtool {
|
||||
|
||||
class ExHeaderProcess
|
||||
{
|
||||
public:
|
||||
ExHeaderProcess();
|
||||
|
||||
void setInputStream(const std::shared_ptr<tc::io::IStream>& input_stream);
|
||||
void setKeyBag(const ctrtool::KeyBag& key_bag);
|
||||
void setCliOutputMode(bool show_info);
|
||||
void setVerboseMode(bool verbose);
|
||||
void setVerifyMode(bool verify);
|
||||
void setShowSyscallName(bool show_name);
|
||||
|
||||
void process();
|
||||
private:
|
||||
std::string mModuleLabel;
|
||||
|
||||
std::shared_ptr<tc::io::IStream> mInputStream;
|
||||
ctrtool::KeyBag mKeyBag;
|
||||
bool mShowInfo;
|
||||
bool mVerbose;
|
||||
bool mVerify;
|
||||
bool mShowSyscallNames;
|
||||
|
||||
ntd::n3ds::ExtendedHeader mHeader;
|
||||
ntd::n3ds::AccessDescriptor mDesc;
|
||||
|
||||
byte_t mValidSignature;
|
||||
struct ValidARM11SystemLocalCapabilities
|
||||
{
|
||||
ValidARM11SystemLocalCapabilities()
|
||||
{
|
||||
system_save_id[0] = ValidState::Unchecked;
|
||||
system_save_id[1] = ValidState::Unchecked;
|
||||
access_info = ValidState::Unchecked;
|
||||
core_version = ValidState::Unchecked;
|
||||
program_id = ValidState::Unchecked;
|
||||
priority = ValidState::Unchecked;
|
||||
affinity_mask = ValidState::Unchecked;
|
||||
ideal_processor = ValidState::Unchecked;
|
||||
old3ds_system_mode = ValidState::Unchecked;
|
||||
new3ds_system_mode = ValidState::Unchecked;
|
||||
enable_l2_cache = ValidState::Unchecked;
|
||||
new3ds_cpu_speed = ValidState::Unchecked;
|
||||
service_control = ValidState::Unchecked;
|
||||
}
|
||||
|
||||
std::array<byte_t, 2> system_save_id;
|
||||
byte_t access_info;
|
||||
byte_t core_version;
|
||||
byte_t program_id;
|
||||
byte_t priority;
|
||||
byte_t affinity_mask;
|
||||
byte_t ideal_processor;
|
||||
byte_t old3ds_system_mode;
|
||||
byte_t new3ds_system_mode;
|
||||
byte_t enable_l2_cache;
|
||||
byte_t new3ds_cpu_speed;
|
||||
byte_t service_control;
|
||||
} mValidLocalCaps;
|
||||
|
||||
void importExHeader();
|
||||
void verifyExHeader();
|
||||
void printExHeader();
|
||||
|
||||
void printSystemControlInfo(const ntd::n3ds::SystemControlInfo& info);
|
||||
void printARM11SystemLocalCapabilities(const ntd::n3ds::AccessControlInfo& info, const ValidARM11SystemLocalCapabilities& valid);
|
||||
void printARM11KernelCapabilities(const ntd::n3ds::AccessControlInfo& info);
|
||||
void printARM9AccessControlInfo(const ntd::n3ds::AccessControlInfo& info);
|
||||
|
||||
// string utils
|
||||
std::string getValidString(byte_t validstate);
|
||||
std::string getSystemModeString(byte_t system_mode);
|
||||
std::string getSystemModeExtString(byte_t system_mode_ext, byte_t system_mode);
|
||||
std::string getSystemModeAppMemorySizeString(byte_t system_mode);
|
||||
std::string getSystemModeExtAppMemorySizeString(byte_t system_mode_ext, byte_t system_mode);
|
||||
std::string getFsAccessBitString(size_t bit);
|
||||
std::string getMemoryTypeString(byte_t memory_type);
|
||||
std::string getByteHexString(byte_t byte);
|
||||
std::string getSysCallName(byte_t syscall);
|
||||
std::string getArm9CapabilityBitString(size_t bit);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user