Move API out of Toolbox prx, Install pkg from HDD & Updating API packets.
This commit is contained in:
@@ -1,176 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(KERNELDRIVER)
|
||||
#include <sys/ioccom.h>
|
||||
#else
|
||||
#include <sys/ioctl.h>
|
||||
#define IOC_VOID 0x20000000 /* no parameters */
|
||||
#define IOC_OUT 0x40000000 /* copy out parameters */
|
||||
#define IOC_IN 0x80000000 /* copy in parameters */
|
||||
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
};
|
||||
#endif
|
||||
|
||||
enum KDriverCommands
|
||||
{
|
||||
/* ######## Proc Commands ####### */
|
||||
CMD_PROC_LIST,
|
||||
CMD_PROC_INFO,
|
||||
CMD_PROC_MODULE_LIST,
|
||||
CMD_PROC_READ_WRITE_MEMORY,
|
||||
CMD_PROC_ALLOC_MEMORY,
|
||||
CMD_PROC_FREE_MEMORY,
|
||||
CMD_PROC_SPRX,
|
||||
CMD_PROC_ELF,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### Kernel Commands ####### */
|
||||
CMD_KERN_READ_WRITE_MEMORY,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### KDriver Commands ###### */
|
||||
CMD_KDRIVER_INFO,
|
||||
/* ############################## */
|
||||
};
|
||||
|
||||
// Process Commands
|
||||
struct KDriver_ProcList
|
||||
{
|
||||
uint64_t UserlandAddr;
|
||||
size_t UserlandSize;
|
||||
int ProcCount;
|
||||
};
|
||||
|
||||
struct ProcInfo
|
||||
{
|
||||
int PID;
|
||||
bool Attached;
|
||||
char ProcName[32];
|
||||
char TitleID[10];
|
||||
uint64_t TextSegmentBase;
|
||||
uint64_t TextSegmentLen;
|
||||
uint64_t DataSegmentBase;
|
||||
uint64_t DataSegmentLen;
|
||||
};
|
||||
|
||||
struct KDriver_ProcSPRX
|
||||
{
|
||||
int CallType;
|
||||
char ProcName[32];
|
||||
int Handle;
|
||||
char Path[4096];
|
||||
bool CallEntryExit;
|
||||
};
|
||||
|
||||
struct KDriver_ProcInfo
|
||||
{
|
||||
int ProcessID;
|
||||
uint64_t UserlandAddr;
|
||||
size_t UserlandSize;
|
||||
int ThreadCount;
|
||||
};
|
||||
|
||||
struct ProcInfoExt
|
||||
{
|
||||
struct ThreadInfo
|
||||
{
|
||||
int ThreadId;
|
||||
char Name[36];
|
||||
int Errno;
|
||||
int RetVal;
|
||||
};
|
||||
|
||||
int ProcessID;
|
||||
int Attached;
|
||||
int Signal;
|
||||
int Code;
|
||||
int Stops;
|
||||
int StopType;
|
||||
char ProcName[32];
|
||||
char TitleID[10];
|
||||
char ElfPath[1024];
|
||||
char RandomizedPath[256];
|
||||
uint64_t TextSegmentBase;
|
||||
uint64_t TextSegmentLen;
|
||||
uint64_t DataSegmentBase;
|
||||
uint64_t DataSegmentLen;
|
||||
|
||||
int ThreadCount;
|
||||
ThreadInfo Threads[];
|
||||
};
|
||||
|
||||
struct KDriver_ModuleList
|
||||
{
|
||||
int ProcessID;
|
||||
uint64_t UserlandAddr;
|
||||
size_t UserlandSize;
|
||||
int ModuleCount;
|
||||
};
|
||||
|
||||
struct ModuleInfo
|
||||
{
|
||||
int Handle;
|
||||
char Name[36];
|
||||
char Path[256];
|
||||
uint64_t TextSegmentBase;
|
||||
uint64_t TextSegmentLen;
|
||||
uint64_t DataSegmentBase;
|
||||
uint64_t DataSegmentLen;
|
||||
};
|
||||
|
||||
struct KDriver_ReadWriteMemory
|
||||
{
|
||||
int ProcessID;
|
||||
bool IsRead;
|
||||
uint64_t ProcessAddress;
|
||||
uint64_t UserlandAddr;
|
||||
size_t Length;
|
||||
};
|
||||
|
||||
struct KDriver_AllocFreeMemory
|
||||
{
|
||||
int ProcessID;
|
||||
size_t Ammount;
|
||||
uint64_t ProcessAddress;
|
||||
};
|
||||
|
||||
struct KDriver_ProcELF
|
||||
{
|
||||
int ProcessID;
|
||||
uint64_t ELFAddress;
|
||||
size_t ELFSize;
|
||||
};
|
||||
|
||||
#define PROC_LIST _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_LIST), sizeof(KDriver_ProcList))
|
||||
#define PROC_INFO _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_INFO), sizeof(KDriver_ProcInfo))
|
||||
#define PROC_MODULE_LIST _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_MODULE_LIST), sizeof(KDriver_ModuleList))
|
||||
#define PROC_READ_WRITE_MEMORY _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_READ_WRITE_MEMORY), sizeof(KDriver_ReadWriteMemory))
|
||||
#define PROC_ALLOC_MEMORY _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_ALLOC_MEMORY), sizeof(KDriver_AllocFreeMemory))
|
||||
#define PROC_FREE_MEMORY _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_FREE_MEMORY), sizeof(KDriver_AllocFreeMemory))
|
||||
#define PROC_SPRX _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_SPRX), sizeof(KDriver_ProcSPRX))
|
||||
#define PROC_ELF _IOC(IOC_INOUT, 'P', (uint32_t)(KDriverCommands::CMD_PROC_ELF), sizeof(KDriver_ProcELF))
|
||||
|
||||
// Kernel Commands
|
||||
#define KERN_READ_WRITE_MEMORY _IOC(IOC_INOUT, 'K', (uint32_t)(KDriverCommands::CMD_KERN_READ_WRITE_MEMORY), sizeof(KDriver_ReadWriteMemory))
|
||||
|
||||
// Kdriver Commands
|
||||
struct KDriver_Info
|
||||
{
|
||||
int MajorVersion;
|
||||
int MinorVersion;
|
||||
int BuildVersion;
|
||||
bool Running;
|
||||
int(*Shutdown)();
|
||||
int(*Entry)(void* p);
|
||||
void* ELFBase;
|
||||
int Size;
|
||||
};
|
||||
|
||||
#define KDRIVER_INFO _IOC(IOC_OUT, 'D', (uint32_t)(KDriverCommands::CMD_KDRIVER_INFO), sizeof(KDriver_Info))
|
||||
@@ -0,0 +1,80 @@
|
||||
#include "Common.h"
|
||||
#include "API.h"
|
||||
|
||||
Proc* API::Proc;
|
||||
Debug* API::Debug;
|
||||
Target* API::Target;
|
||||
SocketListener* API::Listener;
|
||||
bool API::Running = false;
|
||||
|
||||
void API::ListenerCallback(void* tdParam, OrbisNetId s)
|
||||
{
|
||||
auto Packet = RecievePacket<APIPacket>(s);
|
||||
|
||||
if (Packet != nullptr)
|
||||
{
|
||||
// Make sure were getting the proper packet version.
|
||||
if (Packet->PacketVersion != PACKET_VERSION)
|
||||
{
|
||||
//klog("Packet version %i does not match our expected %i version!\n", Packet->PacketVersion, PACKET_VERSION);
|
||||
|
||||
free(Packet);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Send out the command to the right places.
|
||||
switch (Packet->Command)
|
||||
{
|
||||
default:
|
||||
klog("API: Invalid Command %i...\n", Packet->Command);
|
||||
break;
|
||||
|
||||
case APICommands::PROC_START ... APICommands::PROC_END:
|
||||
Proc->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
case APICommands::DBG_START ... APICommands::DBG_END:
|
||||
Debug->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
case APICommands::KERN_START ... APICommands::KERN_END:
|
||||
klog("Kernel API Call\n");
|
||||
|
||||
break;
|
||||
|
||||
case APICommands::TARGET_START ... APICommands::TARGET_END:
|
||||
Target->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up. :)
|
||||
free(Packet);
|
||||
}
|
||||
|
||||
void API::Init()
|
||||
{
|
||||
if (!Running)
|
||||
{
|
||||
klog("API Startup.\n");
|
||||
Proc = new class Proc();
|
||||
Debug = new class Debug();
|
||||
Target = new class Target();
|
||||
Listener = new SocketListener(ListenerCallback, NULL, 6900);
|
||||
Running = true;
|
||||
}
|
||||
}
|
||||
|
||||
void API::Term()
|
||||
{
|
||||
if (Running)
|
||||
{
|
||||
delete Proc;
|
||||
delete Debug;
|
||||
delete Target;
|
||||
delete Listener;
|
||||
Running = false;
|
||||
}
|
||||
}
|
||||
@@ -1 +1,22 @@
|
||||
#pragma once
|
||||
#include "Proc.h"
|
||||
#include "Debug.h"
|
||||
#include "Target.h"
|
||||
#include "SocketListener.h"
|
||||
#include "APIHelper.h"
|
||||
|
||||
class API
|
||||
{
|
||||
private:
|
||||
static Proc* Proc;
|
||||
static Debug* Debug;
|
||||
static Target* Target;
|
||||
static SocketListener* Listener;
|
||||
|
||||
static void ListenerCallback(void* tdParam, OrbisNetId s);
|
||||
|
||||
public:
|
||||
static bool Running;
|
||||
static void Init();
|
||||
static void Term();
|
||||
};
|
||||
@@ -1,6 +1,9 @@
|
||||
#pragma once
|
||||
#include "Common.h"
|
||||
|
||||
#define PACKET_VERSION 1
|
||||
#define PACKET_VERSION 2
|
||||
|
||||
#pragma region Commands
|
||||
|
||||
enum APICommands
|
||||
{
|
||||
@@ -18,6 +21,7 @@ enum APICommands
|
||||
|
||||
/* ##### Debugger functions ##### */
|
||||
DBG_START,
|
||||
|
||||
API_DBG_ATTACH, /* Debugger attach to target */
|
||||
API_DBG_DETACH, /* Debugger detach from target */
|
||||
API_DBG_GET_CURRENT,
|
||||
@@ -63,19 +67,23 @@ enum APICommands
|
||||
API_DBG_WATCHPOINT_REMOVE,
|
||||
API_DBG_WATCHPOINT_GETINFO,
|
||||
API_DBG_WATCHPOINT_LIST,
|
||||
|
||||
DBG_END,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### Kernel functions ###### */
|
||||
KERN_START,
|
||||
|
||||
API_KERN_BASE,
|
||||
API_KERN_READ,
|
||||
API_KERN_WRITE,
|
||||
|
||||
KERN_END,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### Target functions ###### */
|
||||
TARGET_START,
|
||||
|
||||
API_TARGET_INFO,
|
||||
API_TARGET_RESTMODE,
|
||||
API_TARGET_SHUTDOWN,
|
||||
@@ -85,11 +93,15 @@ enum APICommands
|
||||
API_TARGET_SET_LED,
|
||||
API_TARGET_DUMP_PROC,
|
||||
API_TARGET_SET_SETTINGS,
|
||||
//API_TARGET_LOAD_VSH_MODULE
|
||||
|
||||
TARGET_END,
|
||||
/* ############################## */
|
||||
};
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Generic
|
||||
|
||||
enum APIResults
|
||||
{
|
||||
API_OK = 1,
|
||||
@@ -113,39 +125,36 @@ struct APIPacket
|
||||
char ProcName[32];
|
||||
};
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Process
|
||||
|
||||
struct ProcPacket
|
||||
{
|
||||
int32_t ProcessID; //0x00
|
||||
int32_t Attached; //0x04
|
||||
char ProcName[32]; //0x08
|
||||
char TitleID[10]; //0x28
|
||||
uint64_t TextSegmentBase;
|
||||
uint64_t TextSegmentLen;
|
||||
uint64_t DataSegmentBase;
|
||||
uint64_t DataSegmentLen;
|
||||
int32_t ProcessId;
|
||||
char Name[32];
|
||||
char TitleId[10];
|
||||
};
|
||||
|
||||
struct ModuleListPacket
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Debug
|
||||
|
||||
struct LibraryPacket
|
||||
{
|
||||
char Name[36]; //0x00
|
||||
char Handle[256]; //0x24
|
||||
int mHandle; //0x124
|
||||
uint64_t TextSegmentBase; //0x128
|
||||
uint64_t TextSegmentLen; //0x130
|
||||
uint64_t DataSegmentBase; //0x138
|
||||
uint64_t DataSegmentLen; //0x140
|
||||
int64_t Handle;
|
||||
char Path[256];
|
||||
int32_t SegmentCount;
|
||||
SceDbgModuleSegmentInfo Segments[4];
|
||||
};
|
||||
|
||||
|
||||
struct ProcRWPacket
|
||||
struct DbgRWPacket
|
||||
{
|
||||
uint64_t Address;
|
||||
uint64_t Length;
|
||||
};
|
||||
|
||||
struct ProcSPRXPacket
|
||||
struct DbgSPRXPacket
|
||||
{
|
||||
char Name[256];
|
||||
char Path[256];
|
||||
@@ -162,13 +171,6 @@ struct ProcBreakpointPacket
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Debug
|
||||
|
||||
|
||||
|
||||
#pragma endregion
|
||||
|
||||
|
||||
#pragma region Kernel
|
||||
|
||||
|
||||
@@ -177,16 +179,6 @@ struct ProcBreakpointPacket
|
||||
|
||||
#pragma region Target
|
||||
|
||||
enum ConsoleTypes
|
||||
{
|
||||
UNK,
|
||||
DIAG, //0x80
|
||||
DEVKIT, //0x81
|
||||
TESTKIT, //0x82
|
||||
RETAIL, //0x83 -> 0x8F
|
||||
KRATOS, //0xA0 IMPOSSIBLE??
|
||||
};
|
||||
|
||||
struct MemoryInfo
|
||||
{
|
||||
int Used;
|
||||
@@ -1,25 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include <math.h>
|
||||
#include <stack>
|
||||
#include <functional>
|
||||
#include <errno.h>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <signal.h>
|
||||
#include <orbis/libkernel.h>
|
||||
#include <orbis/libmonovm.h>
|
||||
#include <orbis/RegMgr.h>
|
||||
#include <orbis/Net.h>
|
||||
#include <orbis/NetCtl.h>
|
||||
#include <orbis/SystemService.h>
|
||||
#include <orbis/AppInstUtil.h>
|
||||
#include <orbis/Bgft.h>
|
||||
#include <orbis/Sysmodule.h>
|
||||
#include <orbis/UserService.h>
|
||||
#include <orbis/Sysmodule.h>
|
||||
#include <orbis/SystemService.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "SocketListener.h"
|
||||
#include "Utilities.h"
|
||||
#include "GoldHEN.h"
|
||||
#include "libjbc.h"
|
||||
#include "libjbc.h"
|
||||
#include "System.h"
|
||||
#include "Flash.h"
|
||||
|
||||
#include "APIPackets.h"
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "Common.h"
|
||||
#include "Flash.h"
|
||||
|
||||
void ReadFlash(off_t Offset, void* Data, unsigned int Size)
|
||||
{
|
||||
int fd = sceKernelOpen("/dev/sflash0", ORBIS_KERNEL_O_RDONLY, 0777);
|
||||
if (fd)
|
||||
{
|
||||
sceKernelPread(fd, Data, Size, Offset);
|
||||
sceKernelClose(fd);
|
||||
}
|
||||
else
|
||||
klog("Failed to Open sflash\n");
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#define FLASH_FACTORY_FW 0x1C9060 // 4 Bytes
|
||||
#define FLASH_CURRENT_FW 0x1C9068 // 4 Bytes
|
||||
#define FLASH_MB_SERIAL 0x1C8000 // 14 Bytes String
|
||||
#define FLASH_SERIAL 0x1C8030 // 10 Bytes String
|
||||
#define FLASH_MODEL 0x1C8041 // 14 Bytes String
|
||||
#define FLASH_LAN_MAC 0x1C4021 // 6 Bytes
|
||||
#define FLASH_UART_FLAG 0x1C931F // 1 Byte
|
||||
#define FLASH_IDU_MODE 0x1CA600 // 1 Byte
|
||||
|
||||
void ReadFlash(off_t Offset, void* Data, unsigned int Size);
|
||||
@@ -62,16 +62,37 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="API.cpp" />
|
||||
<ClCompile Include="APIHelper.cpp" />
|
||||
<ClCompile Include="Breakpoint.cpp" />
|
||||
<ClCompile Include="Debug.cpp" />
|
||||
<ClCompile Include="Flash.cpp" />
|
||||
<ClCompile Include="main.cpp" />
|
||||
<ClCompile Include="build.bat" />
|
||||
<ClCompile Include="Proc.cpp" />
|
||||
<ClCompile Include="Registry.cpp" />
|
||||
<ClCompile Include="SocketListener.cpp" />
|
||||
<ClCompile Include="System.cpp" />
|
||||
<ClCompile Include="Target.cpp" />
|
||||
<ClCompile Include="Utilities.cpp" />
|
||||
<ClCompile Include="Watchpoint.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="API.h" />
|
||||
<ClInclude Include="APIHelper.h" />
|
||||
<ClInclude Include="APIPackets.h" />
|
||||
<ClInclude Include="Breakpoint.h" />
|
||||
<ClInclude Include="Common.h" />
|
||||
<ClInclude Include="Debug.h" />
|
||||
<ClInclude Include="Flash.h" />
|
||||
<ClInclude Include="Proc.h" />
|
||||
<ClInclude Include="Registry.h" />
|
||||
<ClInclude Include="SocketListener.h" />
|
||||
<ClInclude Include="System.h" />
|
||||
<ClInclude Include="Target.h" />
|
||||
<ClInclude Include="Utilities.h" />
|
||||
<ClInclude Include="libjbc.h" />
|
||||
<ClInclude Include="Version.h" />
|
||||
<ClInclude Include="Watchpoint.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
||||
@@ -37,6 +37,12 @@
|
||||
<Filter Include="Source Files\API\Misc">
|
||||
<UniqueIdentifier>{b1c92aaf-bc5d-40c6-9066-2e094daec1eb}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\Utilities\PS Utils">
|
||||
<UniqueIdentifier>{1208a8d1-5a46-4050-b790-ead6e42541ce}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\Utilities\PS Utils">
|
||||
<UniqueIdentifier>{5094835e-2ace-4366-93ee-a65317ee8a62}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="build.bat" />
|
||||
@@ -49,6 +55,36 @@
|
||||
<ClCompile Include="main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="APIHelper.cpp">
|
||||
<Filter>Source Files\API\Misc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SocketListener.cpp">
|
||||
<Filter>Source Files\Utilities</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Breakpoint.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Proc.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Target.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Watchpoint.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Debug.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="System.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Registry.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Flash.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Common.h">
|
||||
@@ -57,14 +93,47 @@
|
||||
<ClInclude Include="Utilities.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="libjbc.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="API.h">
|
||||
<Filter>Header Files\API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Version.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="APIHelper.h">
|
||||
<Filter>Header Files\API\Misc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="APIPackets.h">
|
||||
<Filter>Header Files\API\Misc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SocketListener.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Watchpoint.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Target.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Proc.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Breakpoint.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Debug.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="libjbc.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="System.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Registry.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Flash.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "Common.h"
|
||||
#include "Proc.h"
|
||||
#include "APIHelper.h"
|
||||
#include "KDriver.h"
|
||||
|
||||
void Proc::HandleAPI(OrbisNetId Sock, APIPacket* Packet)
|
||||
{
|
||||
@@ -40,8 +39,9 @@ Proc::~Proc()
|
||||
|
||||
void Proc::SendProcessList(OrbisNetId Sock)
|
||||
{
|
||||
// TODO: Update
|
||||
// Allocate space for packet to send.
|
||||
auto Packet = (ProcPacket*)malloc(sizeof(ProcPacket));
|
||||
/*auto Packet = (ProcPacket*)malloc(sizeof(ProcPacket));
|
||||
|
||||
// Gets list of running processes.
|
||||
auto procInfo = (ProcInfo*)malloc(sizeof(ProcInfo) * 200);
|
||||
@@ -72,5 +72,5 @@ void Proc::SendProcessList(OrbisNetId Sock)
|
||||
|
||||
// Cleanup.
|
||||
free(Packet);
|
||||
free(procInfo);
|
||||
free(procInfo);*/
|
||||
}
|
||||
@@ -0,0 +1,663 @@
|
||||
#include "Common.h"
|
||||
#include "Registry.h"
|
||||
|
||||
uint Registry_Find_By_Name(const char* Name)
|
||||
{
|
||||
static std::map<const char*, uint> RegistryEntries;
|
||||
static bool Initialized;
|
||||
if (!Initialized)
|
||||
{
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/version", 0x1010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY", 0x1000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/install", 0x1020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/update", 0x1030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/not_save", 0x1040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/recover", 0x1050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/downgrade", 0x1060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/bootcount", 0x1070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/lastver", 0x1080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REGISTRY/init_flag", 0x1400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM", 0x2000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/update_mode", 0x2010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/language", 0x2020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/initialize", 0x2040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/nickname", 0x2050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/dimmer_interval", 0x2060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/eapfunction", 0x2070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/enable_voicercg", 0x2080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/profilech_ver", 0x20A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/button_assign", 0x20B0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/backup_mode", 0x20C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/pon_memory_test", 0x20D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/game_rec_mode", 0x20E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/shell_function", 0x20F0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/pad_connection", 0x2100000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/data_transfer", 0x2110000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/base_mode_clkup", 0x2120000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/neo_vddnb_vid_offset", 0x2400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE", 0x2800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/server_url", 0x2800100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/eula_version", 0x2800200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/pscode", 0x2800300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/reboot_flag", 0x2800400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/auto_download", 0x2800500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/idu_version", 0x2800600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/next_check", 0x2800700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/auto_update", 0x2800800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/last_version", 0x2800900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/last_updversion", 0x2800A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/build_number", 0x2804000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/auto_update_int", 0x2808000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/tool_update_chk", 0x2808100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/server_url_beta", 0x2808200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/check_limit", 0x2808300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/ignore_entcheck", 0x2808400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/UPDATE/strict_verchk", 0x2808500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER", 0x2820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/charge", 0x2820100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/signin", 0x2820200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/remote", 0x2820300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/controller_off", 0x2820400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/auto_off_media", 0x2820500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/auto_off_other", 0x2820600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/auto_power_down", 0x2820700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/suspend_to_ram", 0x2820800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/standby_start", 0x2820900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/power_history", 0x2820B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/spwakeup", 0x2820C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/POWER/charge_minutes", 0x2828000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/NOTIFICATION", 0x2840000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/NOTIFICATION/invisible_items", 0x2840100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/ACTIVATION", 0x2780000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/ACTIVATION/mpeg2", 0x2780100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/ACTIVATION/vc1", 0x2780200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/ACTIVATION/hevc", 0x2780300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/ACTIVATION/hevc_soft", 0x2780400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/PLATFORMPRIVACY", 0x27C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/PLATFORMPRIVACY/eu_ws1", 0x27C0100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SPECIFIC", 0x2860000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SPECIFIC/idu_mode", 0x2860100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SPECIFIC/show_mode", 0x2860200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SPECIFIC/arcade_mode", 0x2860300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SPECIFIC/arcade_id", 0x2860500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD", 0x2880000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/autodl_featured", 0x2880100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/default_hdd", 0x2880200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/bgft_env_slot", 0x2888000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/bgft_debug_log", 0x2888100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/bgft_debug_ntf", 0x2888200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DOWNLOAD/bgft_debug_bwct", 0x2888300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DB", 0x2900000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DB/default_player", 0x2900100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/DB/manifest_usb", 0x2908000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/BGDC", 0x2A00000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/BGDC/last_modified", 0x2A00100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/BGDC/server_url", 0x2A08000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SELF", 0x2B00000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SELF/verr_count", 0x2B00100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SELF/ierr_count", 0x2B00200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/WCTL", 0x2B40000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/WCTL/server_env", 0x2B40100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/AUTO/MOUNTER", 0x2B80000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/AUTO/MOUNTER/previous_hdd_id", 0x2B80100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS", 0x2BC0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/last_report", 0x2BC0100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/process_time", 0x2BC0200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/real_time_dur", 0x2BC0300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/sys_int_hdd_r", 0x2BC0400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/sys_int_hdd_w", 0x2BC0500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/sys_ext_hdd_r", 0x2BC0600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/sys_ext_hdd_w", 0x2BC0700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/game_int_hdd_r", 0x2BC0800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/game_int_hdd_w", 0x2BC0900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/game_ext_hdd_r", 0x2BC0A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/HDD/WRITE/STATS/game_ext_hdd_w", 0x2BC0B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SMR_HDD", 0x2BE0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEM/SMR_HDD/statechange_ntf", 0x2BE8000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL", 0x3800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/game", 0x3800100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/bd", 0x3800200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/bd_age", 0x3800300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/dvd_region", 0x3800400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/dvd", 0x3800500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/browser", 0x3800600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/create_account", 0x3800700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/passcode", 0x3800800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/morpheus", 0x3800900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SECURITY/PARENTAL/papc_all_ok", 0x3800A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE", 0x5000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/time_zone", 0x5010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/date_format", 0x5020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/time_format", 0x5030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/summer_time", 0x5040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/set_auto", 0x5050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/is_summer_time", 0x5060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/utc_offset", 0x5070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/timezone_offset", 0x5080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/tzdata_update", 0x5090000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/is_tz_adjusted", 0x50A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/rtc_offset", 0x5140000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/rtc_net", 0x5150000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/rtc_net_dbg", 0x5160000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/rtc_net_ad", 0x5170000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/fake_geoip", 0x5800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/use_test_cdn", 0x5810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DATE/testserver_slot", 0x5820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER", 0x7000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/auto_login_user", 0x7010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/max_used_home_u", 0x7020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/init_user", 0x7030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/enable_facercg", 0x7040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/max_used_guest_", 0x7050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/max_used_sharep", 0x7060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/cumulative_user", 0x7070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/disp_acc_info", 0x7400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/USER/new_user_group", 0x7410000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY", 0x9000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/invert_color", 0x9010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/large_text", 0x9020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/bold_text", 0x9030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/contrast", 0x9040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/shortcut", 0x9050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/marquee_speed", 0x9060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/long_press_time", 0x9070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/TTS", 0x9400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/TTS/enable", 0x9400100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/TTS/speed", 0x9400200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/TTS/volume", 0x9400300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/TTS/readout", 0x9400400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG", 0x9C00000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/text_to_speech", 0x9C00100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/large_text", 0x9C00200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/bold_text", 0x9C00300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/speech_tag", 0x9C04000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/use_ext_tts_dic", 0x9C04100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/ACCESSIBILITY/DEBUG/tts_debug_log", 0x9C04200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT", 0xA000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/mode", 0xA030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/color_depth", 0xA040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/signal_range", 0xA060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/screen_size", 0xA070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/enable_cec", 0xA080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/yuv_range", 0xA0A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/display_area", 0xA0D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/hdmi_history", 0xA0F0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/screen_size_uns", 0xA100000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/hdcp_off_mode", 0xA110000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/setting_options", 0xA120000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/reset_reso_flag", 0xA130000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/hdcp_version", 0xA140000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/hdr", 0xA150000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/hdr_confirmed", 0xA160000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/disable_hdcp", 0xA320000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOOUT/force_hdr_cap", 0xA330000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT", 0xB000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/mode", 0xB010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/headphone_out", 0xB030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/keytone", 0xB040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/system_bgm", 0xB050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/connector_type", 0xB060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/codec", 0xB070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/sound_format", 0xB080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/config_options", 0xB090000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/measure_enable", 0xB800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/AUDIOOUT/run_options", 0xB810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP", 0x14140000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/ip_address", 0x14140100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/netmask", 0x14140200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/default_route", 0x14140300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/dns_flag", 0x14140400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/primary_dns", 0x14140500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/secondary_dns", 0x14140600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/ip_config", 0x14140700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/dhcp_hostname", 0x14140800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/auth_name", 0x14140C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/auth_key", 0x14140D00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/leased_ip", 0x14140E00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/IP/leased_exp_tick", 0x14140F00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON", 0x14190000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/device", 0x14190100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/net_flag", 0x14190600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/conf_type", 0x14190700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/mtu", 0x14190800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/ether_mode", 0x14190900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/COMMON/ap_auto_config", 0x14190A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI", 0x141E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/ssid", 0x141E0100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/wifi_security", 0x141E0200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/wep_key", 0x141E0300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/wpa_key", 0x141E0400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/freq_band", 0x141E0500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/COMMON", 0x141E4000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/COMMON/mtu", 0x141E4001));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP", 0x141E6000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/ip_config", 0x141E6001));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/dhcp_hostname", 0x141E6002));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/auth_name", 0x141E6003));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/auth_key", 0x141E6004));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/ip_address", 0x141E6005));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/netmask", 0x141E6006));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/default_route", 0x141E6007));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/dns_flag", 0x141E6008));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/primary_dns", 0x141E6009));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/secondary_dns", 0x141E600A));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/leased_ip", 0x141E600B));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/IP/leased_exp_tick", 0x141E600C));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/APP", 0x141E8000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/APP/http_proxy_flag", 0x141E8001));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/APP/http_proxy_svr", 0x141E8002));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/WIFI/APP/http_proxy_port", 0x141E8003));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS", 0x14230000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wpa_aes_ssid", 0x14230100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wpa_tkip_ssid", 0x14230200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wep128_ssid", 0x14230300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wep64_ssid", 0x14230400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wpa_aes_key", 0x14230500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wpa_tkip_key", 0x14230600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wep128_key", 0x14230700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/wep64_key", 0x14230800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G", 0x14234000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wep64_ssid", 0x14234001));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wep64_key", 0x14234002));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wep128_ssid", 0x14234003));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wep128_key", 0x14234004));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wpa_tkip_ssid", 0x14234005));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wpa_tkip_key", 0x14234006));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wpa_aes_ssid", 0x14234007));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AOSS/5G/wpa_aes_key", 0x14234008));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP", 0x14280000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP/http_proxy_flag", 0x14280100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP/http_proxy_svr", 0x14280200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP/http_proxy_port", 0x14280300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP/ssl_cert_ignore", 0x14288000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/APP/ssl_psn_trace", 0x14288100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AP", 0x142D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AP/ap_flag", 0x142D0100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AP/ssid", 0x142D0200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AP/wpa_key", 0x142D0300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/AP/channel", 0x142D0400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/GAME_AP", 0x142E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/GAME_AP/wpa_key", 0x142E0100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/GAME_AP/wpa_key_for_qa", 0x142E0200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET", 0x14000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_ip_address", 0x14700000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_netmask", 0x14710000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_route", 0x14740000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_route_mask", 0x14750000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_gateway", 0x14760000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_ip_config", 0x14770000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/dbg_dhcp_hname", 0x14780000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/emulation_type", 0x14790000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NET/always_lan", 0x147A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP", 0x19000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/patch_auto_dl", 0x19010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/cache_pssdc", 0x19020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/env", 0x19800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/debug", 0x19810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/test_patch", 0x19820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/tpps_proxy_flag", 0x19830000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/tpps_proxy_svr", 0x19840000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/tpps_proxy_port", 0x19850000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/tpps_proxy_user", 0x19860000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/tpps_proxy_pwd", 0x19870000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/dbg_upgradable", 0x19880000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/fake_plus", 0x19890000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/dbg_commerce", 0x198A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/quick_signup_pw", 0x198B0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/geo_filtering", 0x198C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/trophy_debug", 0x198D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/ignore_fakerif", 0x198E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/patch_check", 0x198F0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/dbg_videosrv", 0x19900000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/sf_debug", 0x19910000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/fake_ratelimit", 0x19930000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/ignore_titleid", 0x19940000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/npdrm_debug_log", 0x19950000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/npdrm_debug_ntf", 0x19960000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/sslchk_secure", 0x19970000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/sslchk_liveitem", 0x19980000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/plus_recheck", 0x19990000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/regicam_url", 0x199A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/manifest_url", 0x199B0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/per_act_sync", 0x199C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/geo_location", 0x199D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/ev_fake_clock", 0x199E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/dailymotion_lng", 0x199F0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/diskcache_quota", 0x19A00000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/fake_dispname", 0x19A10000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/deathstar_url", 0x19A30000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/ds_family_url", 0x19A40000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/NP/fake_version", 0x19A50000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CAMERA", 0x1E000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CAMERA/camera_hw_info", 0x1E010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CAMERA/mute_mic", 0x1E020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VRTRACKER", 0x20000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VRTRACKER/vrtracker_info", 0x20010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VRTRACKER/telemetry", 0x20400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VRTRACKER/vision_mgr_if", 0x20410000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VRTRACKER/green_ds4_track", 0x20800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD", 0x23000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/bd_menu_lang", 0x23010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/bd_sound_lang", 0x23020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/bd_cap_lang", 0x23030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/nr", 0x23040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/display_mode", 0x23050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/hd50hz_output", 0x23060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/drc", 0x23070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/bd_audio_mix", 0x23080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/network_connect", 0x23090000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/dvd_menu_lang", 0x230A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/dvd_sound_lang", 0x230B0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/dvd_cap_lang", 0x230C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/sound_format", 0x230D0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/s3d_on_hmd", 0x230E0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BDDVD/flag", 0x230F0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/EVENT", 0x2A000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/EVENT/auto_boot_tick", 0x2A010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS", 0x32000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/bc_mode", 0x32010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/social_mode", 0x32020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/broadcast_url", 0x32030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/rpin", 0x320C0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/irc_url", 0x32810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/irc_channel", 0x32820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/irc_user", 0x32830000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/irc_passwd", 0x32840000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/sf_latency", 0x32850000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/debug_info_url", 0x32870000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/emb_svr_ur", 0x32880000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/GLS/live_quality_d", 0x32890000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE", 0x37000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/sound_mix", 0x37050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/rec_prohibit", 0x37060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/ctr_share_test", 0x37070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/cpy_share_item", 0x37080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/rec_time", 0x37090000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/status", 0x370A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/ctr_share_range", 0x37800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/title_check", 0x37810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHARE/ctr_share_save", 0x37820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREFACTORY", 0x39000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREFACTORY/direct_boot_id", 0x39010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER", 0x3C000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/enable_cookie", 0x3C020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/enable_js", 0x3C030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/check_signup", 0x3C040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG", 0x3CC80000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/calist_loadmode", 0x3CC80100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/verify_ssl", 0x3CC80200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/dfg_jit_enabled", 0x3CC80300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/net_dbg_config", 0x3CC80400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/check_iframe", 0x3CC80500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/enable_jslog", 0x3CC80600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/BROWSER/DEBUG/notification", 0x3CC80700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REMOTEPLAY", 0x41000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REMOTEPLAY/rp_enable", 0x41810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REMOTEPLAY/ap_flag", 0x41820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/REMOTEPLAY/log_enable", 0x41C00000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY", 0x44000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/mode", 0x44800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/ip_direct", 0x44810000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/resolution", 0x44820000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/bitrate", 0x44830000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/framerate", 0x44840000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/quality_graph", 0x44850000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/ephemeral_port", 0x44860000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/pcl_check", 0x44870000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/store_check", 0x44880000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/age_check", 0x44890000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/gav_check", 0x448A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SHAREPLAY/fake_time_limit", 0x448B0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PARTY", 0x45000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PARTY/volume_down", 0x45010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PARTY/voice_priority", 0x45020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PARTY/upstream_bandw", 0x45030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYTOGETHER", 0x55000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYTOGETHER/game_played", 0x55010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSCORE", 0x5A000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSCORE/shell_watch_dog", 0x5A020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COMPANION", 0x64000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COMPANION/dbg_launch_mode", 0x64010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COMPANION/dbg_ip_chk_flg", 0x64020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COMPANION/user_bind_mode", 0x64030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSIC/MUSIC/APP", 0x46010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSIC/MUSIC/APP/repeat_mode", 0x46010100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSIC/MUSIC/APP/shuffle_mode", 0x46010200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSIC/MUSIC/APP/audio_balance", 0x46010300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER", 0x49000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/1080_24p", 0x49010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC", 0x49020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/enable_cc", 0x49020100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/content_specifi", 0x49020200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_color", 0x49020300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_opacity", 0x49020400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_size", 0x49020500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/font_type", 0x49020600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_edge", 0x49020700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_edge_color", 0x49020800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_bg_color", 0x49020900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/char_bg_opacity", 0x49020A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/window_color", 0x49020B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOPLAYER/CC/window_opacity", 0x49020C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOEDIT", 0x4B000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/VIDEOEDIT/first_time_act", 0x4B010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSICUNLIMITED", 0x4E000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MUSICUNLIMITED/debug_url", 0x4E800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PRJSP", 0x4F000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PRJSP/app_installed", 0x4F010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PRJSP/enable_zeroconf", 0x4F800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO", 0x50000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/content_id", 0x50010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/package_url", 0x50020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/scenario_id", 0x50030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/dl_content_id", 0x50040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/auto_download", 0x50050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/json_url", 0x50060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PLAYGO/package_ex_url", 0x50070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/VR2D", 0x50400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/VR2D/gyro_bias", 0x50400100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/UPDATE", 0x58600000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/UPDATE/server_url", 0x58600100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/UPDATE/enable_upd_chk", 0x58600200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG", 0x58800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/demo_mode", 0x58800100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/debug_mode", 0x58800200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/social_screen", 0x58800300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/debug_text", 0x58800400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/ex_mode_chat", 0x58800500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/show_tutorials", 0x58800600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/hmu_auto_detect", 0x58800700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/show_safe_area", 0x58800800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/play_area_warn", 0x58800900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/ignore_separate", 0x58800A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/dbg_launch_mode", 0x58800B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/MORPHEUS/DEBUG/vr_capture", 0x58800C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP", 0x6E000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/dump_mode", 0x6E010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/internal_mode", 0x6E020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/always_enc_dump", 0x6E030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/dump_level", 0x6E040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/video_duration", 0x6E060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/video_bitrate", 0x6E070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/sys_dump_level", 0x6E080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/gpudump", 0x6E090000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/screenshot", 0x6E0A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/UPLOADER", 0x6E800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/UPLOADER/enable_uploader", 0x6E800100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/UPLOADER/uploader_url", 0x6E800200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/COREDUMP/UPLOADER/auto_upload", 0x6E800300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING", 0x70000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/enable_report", 0x70010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/keep_corefiles", 0x70020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/autosending", 0x70030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/operatestatus", 0x70040000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/attachvideoclip", 0x70050000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/qa_auto_send", 0x70060000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/fake_optload", 0x70070000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/fake_cfss", 0x70080000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/CRASHREPORTING/set_task_title", 0x700A0000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY", 0x73010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_mod_bi", 0x73010100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_mod_tel", 0x73010200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_mod_kmg", 0x73010300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_cfm_bi", 0x73010400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_cfm_tel", 0x73010500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/PLATFORMPRIVACY/last_cfm_kmg", 0x73010600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG", 0x73800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/config_dir", 0x73800100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/user_time", 0x73800200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/click_through", 0x73800300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/dummy_aws", 0x73800400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/debug_message", 0x73800500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/config_dir2", 0x73800600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/config_dir3", 0x73800800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/delivery_mode", 0x73800900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/delivery_url", 0x73800A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/pri_def_dir", 0x73800B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/pri_def_dir2", 0x73800C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/SYSTEMLOGGER/DEBUG/pri_def_dir3", 0x73800D00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PSCLOUD", 0x76000000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PSCLOUD/gf_version", 0x76010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/PSCLOUD/gko_sdk_version", 0x76020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/FS/UFS", 0xC0800000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/FS/UFS/compat_pkg", 0xC0808000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/FS/UFS/compat_pkg_mode", 0xC0808100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/FS/GAME_PROC", 0xC0880000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/FS/GAME_PROC/nolmt_pe_sldata", 0xC0888000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/HOST", 0x78010000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/HOST/devkitname", 0x78010100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/HOST/host_internal", 0x78010200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL", 0x78020000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/dl_debug_flags", 0x78020100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/region_masq", 0x78020200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/boot_param", 0x78020300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/gpi00", 0x78020400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/preload_chk_off", 0x78020500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/trc_notify", 0x78026400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/sysdl_from_host", 0x78028100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/preserve_dmem", 0x78028200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/use_default_lib", 0x78028300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/dev_auto_assign", 0x78028400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/razor_gpu", 0x78028600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/pa_debug", 0x78028B00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/gpu_validate", 0x78028C00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/system_load", 0x78028D00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/sys_prx_preload", 0x78028A00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/reg_not_save", 0x78028800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/use_dev_login", 0x78028900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/appsuspend_test", 0x7802A000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/pad_connection", 0x7802A100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/mbus_mode", 0x7802A200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/force_use_cam", 0x7802A300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/host_overlay", 0x7802A400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/pscode_masq", 0x7802A500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/submit_done_exc", 0x7802A600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/shutdown_debug", 0x7802A700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/shell_debug", 0x7802A900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/postmortem", 0x7802AA00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/pad_auto_detect", 0x7802AB00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/use_host_theme", 0x7802AC00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/compositor_dbg", 0x7802AD00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/vsh4k_rendering", 0x7802AE00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/theme_preview", 0x7802AF00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/submit_done", 0x7802B000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/force_gpu_idle", 0x7802B100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/qaflag_masq", 0x7802B200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/vsh_gpu_control", 0x7802B400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/multi_install", 0x7802B500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/game_heap_trace", 0x7802B700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/expose_under_2k", 0x7802B900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/fake_neo4k_mode", 0x7802BA00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/friendprof_f", 0x7802BB00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/ipmi_dbg_flags", 0x7802BC00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/loginmgr_debug", 0x7802BD00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/sys_heap_trace", 0x7802BE00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/game_intmem_dbg", 0x7802BF00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/sce_module_dbg", 0x7802C000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/piglet_rt_shdrc", 0x7802C100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/gc_halt", 0x7802C200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/asan_prog", 0x7802C300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/asan_option", 0x7802C400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/skip_modal_msg", 0x7802C500));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/video_core_dbg", 0x7802C600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/dd_fake_trans", 0x7802C700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLCORE", 0x7802C800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLCORE/boot_disable", 0x7802C801));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLCORE/pathname", 0x7802C802));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLCORE/load_config", 0x7802C804));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLCORE/host_standby_rq", 0x7802C805));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI", 0x7802C900));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/debug_menu", 0x7802C901));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/screenshot", 0x7802C914));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/shell_crash", 0x7802C915));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/disp_titleid", 0x7802C916));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/content_info", 0x7802C9C8));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/webinspector", 0x7802C9C9));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/webprofile", 0x7802C9CA));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/webproxy", 0x7802C9CB));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/webpreference", 0x7802C9CC));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/SHELLUI/fake_beta", 0x7802C9CD));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/COMMONDIALOG", 0x7802CD00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/COMMONDIALOG/watch_dog", 0x7802CD01));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/COMMONDIALOG/crash_test", 0x7802CD02));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/COMMONDIALOG/suspendmode", 0x7802CD03));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/KEYBOARD", 0x7802D200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/KEYBOARD/enable_pause", 0x7802D201));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/KEYBOARD/enable_printsc", 0x7802D202));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/VOICE_RECOG", 0x7802DC00));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/VOICE_RECOG/auto_start", 0x7802DC01));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/VOICE_RECOG/term_of_command", 0x7802DC02));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/VOICE_RECOG/transition", 0x7802DC03));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/VOICE_RECOG/recording_mode", 0x7802DC04));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG", 0x7802E600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/profiling", 0x7802E601));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/trace", 0x7802E602));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/trace_mask", 0x7802E603));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/debug_option", 0x7802E604));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/use_new_gc", 0x7802E605));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/TOOL/MONO/DEBUG/enable_full_aot", 0x7802E606));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/ACTIVATE", 0x78030000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/ACTIVATE/auto_renewal", 0x78030100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/ACTIVATE/prev_date", 0x78030200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/ACTIVATE/prev_result", 0x78030300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA", 0x78400000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/eapcrash", 0x78408000));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/auto_test_type", 0x78408100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/error_masq", 0x78408200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/disable_bg_wave", 0x78408300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/enable_exthdd", 0x78408400));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/intro_video_url", 0x78408600));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/fake_exthddspec", 0x78408700));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/enable_eu_ws1", 0x78408800));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME", 0x78400100));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/sd_fake_space", 0x78400101));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/sd_fake_owner", 0x78400102));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/fake_finalized", 0x78400103));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/bdcopy", 0x78400104));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/ac_fake_space", 0x78400105));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/sd_rebuild", 0x78400106));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/vr_fake_space", 0x78400107));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/store_country", 0x78400108));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/sd_format", 0x7840010A));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/skip_asm_for_ac", 0x7840010B));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/game_rec_target", 0x7840010C));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/game_rec_area", 0x7840010D));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/game_rec_force", 0x7840010E));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/GAME/dd_boot_block", 0x7840010F));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/STANDBY", 0x78400200));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/STANDBY/actest_pattern", 0x78400201));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/STANDBY/actest_interval", 0x78400202));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/POWERTEST", 0x78400300));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/POWERTEST/navigation", 0x78400301));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/POWERTEST/shell_mediaplay", 0x78400302));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/POWERTEST/disc_player", 0x78400303));
|
||||
RegistryEntries.insert(std::pair<const char*, uint>("/DEVENV/QA/POWERTEST/psvideo", 0x78400304));
|
||||
|
||||
Initialized = true;
|
||||
}
|
||||
|
||||
if (RegistryEntries.find(Name) == RegistryEntries.end())
|
||||
return -1;
|
||||
else
|
||||
return RegistryEntries[Name];
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
uint Registry_Find_By_Name(const char* Name);
|
||||
@@ -0,0 +1,150 @@
|
||||
#include "Common.h"
|
||||
#include "SocketListener.h"
|
||||
|
||||
struct ClientThreadParams
|
||||
{
|
||||
SocketListener* socketListener;
|
||||
OrbisNetId Sock;
|
||||
};
|
||||
|
||||
void* SocketListener::ClientThread(void* tdParam)
|
||||
{
|
||||
ClientThreadParams* Params = (ClientThreadParams*)tdParam;
|
||||
SocketListener* socketListener = Params->socketListener;
|
||||
OrbisNetId Sock = Params->Sock;
|
||||
|
||||
socketListener->ClientCallBack(socketListener->tdParam, Sock);
|
||||
|
||||
sceNetSocketClose(Sock);
|
||||
free(Params);
|
||||
|
||||
// Kill our thread and exit.
|
||||
scePthreadExit(NULL);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void* SocketListener::DoWork()
|
||||
{
|
||||
OrbisNetSockaddrIn addr = { 0 };
|
||||
addr.sin_family = ORBIS_NET_AF_INET;
|
||||
addr.sin_addr.s_addr = ORBIS_NET_INADDR_ANY; // Any incoming address
|
||||
addr.sin_port = sceNetHtons(this->Port); // Our desired listen port
|
||||
|
||||
// Make new TCP Socket
|
||||
this->Socket = sceNetSocket("Listener Socket", ORBIS_NET_AF_INET, ORBIS_NET_SOCK_STREAM, ORBIS_NET_IPPROTO_TCP);
|
||||
|
||||
// Set Sending and reciving time out to 1000 ms
|
||||
int sock_timeout = 10000;
|
||||
sceNetSetsockopt(this->Socket, ORBIS_NET_SOL_SOCKET, ORBIS_NET_SO_SNDTIMEO, &sock_timeout, sizeof(sock_timeout));
|
||||
sceNetSetsockopt(this->Socket, ORBIS_NET_SOL_SOCKET, ORBIS_NET_SO_RCVTIMEO, &sock_timeout, sizeof(sock_timeout));
|
||||
|
||||
// Make sure every time we can rebind to the port.
|
||||
int reusePort = 1;
|
||||
sceNetSetsockopt(this->Socket, ORBIS_NET_SOL_SOCKET, ORBIS_NET_SO_REUSEPORT, &reusePort, sizeof(reusePort));
|
||||
|
||||
auto bindError = sceNetBind(this->Socket, (OrbisNetSockaddr*)&addr, sizeof(addr));
|
||||
if (bindError != 0)
|
||||
{
|
||||
klog("Failed to bind Listener to port %i\nError: %X", this->Port, bindError);
|
||||
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
if (sceNetListen(this->Socket, 100) != 0)
|
||||
{
|
||||
klog("Failed to start listening on Socket.\n");
|
||||
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
while (this->ServerRunning)
|
||||
{
|
||||
fd_set set;
|
||||
struct timeval timeout;
|
||||
FD_ZERO(&set); /* clear the set */
|
||||
FD_SET(this->Socket, &set); /* add our file descriptor to the set */
|
||||
|
||||
timeout.tv_sec = 2;
|
||||
timeout.tv_usec = 0;
|
||||
|
||||
// Wait fo rincoming connections.
|
||||
auto rv = select((int)this->Socket + 1, &set, NULL, NULL, &timeout);
|
||||
if (rv == -1)
|
||||
goto Cleanup;
|
||||
else if (rv == 0)
|
||||
{
|
||||
if (!this->ServerRunning)
|
||||
goto Cleanup;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!this->ServerRunning)
|
||||
goto Cleanup;
|
||||
|
||||
OrbisNetSockaddrIn ClientAddr = { 0 };
|
||||
OrbisNetSocklen_t addrlen = sizeof(OrbisNetSockaddrIn);
|
||||
auto ClientSocket = sceNetAccept(this->Socket, (OrbisNetSockaddr*)&ClientAddr, &addrlen);
|
||||
|
||||
if (ClientSocket != -1)
|
||||
{
|
||||
//klog("New Connection from %i.%i.%i.%i!\n", ClientAddr.sin_addr.s_addr & 0xFF, (ClientAddr.sin_addr.s_addr >> 8) & 0xFF, (ClientAddr.sin_addr.s_addr >> 16) & 0xFF, (ClientAddr.sin_addr.s_addr >> 24) & 0xFF);
|
||||
|
||||
int optval = 1;
|
||||
sceNetSetsockopt(ClientSocket, ORBIS_NET_SOL_SOCKET, ORBIS_NET_SO_NOSIGPIPE, &optval, sizeof(optval));
|
||||
// Set up thread params.
|
||||
ClientThreadParams* Params = new ClientThreadParams();
|
||||
Params->socketListener = this;
|
||||
Params->Sock = ClientSocket;
|
||||
|
||||
// Create Thread to handle connection.
|
||||
OrbisPthread* Thread;
|
||||
scePthreadCreate(&Thread, NULL, &ClientThread, Params, "Client Thread");
|
||||
|
||||
// Reset ClientSocket.
|
||||
ClientSocket = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Cleanup:
|
||||
klog("Listener Thread Exiting!\n");
|
||||
|
||||
// Clean up.
|
||||
this->ThreadCleanedUp = true;
|
||||
|
||||
// Clean up.
|
||||
sceNetSocketClose(this->Socket);
|
||||
|
||||
// Kill our thread and exit.
|
||||
scePthreadExit(NULL);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void* SocketListener::ListenThread(void* tdParam)
|
||||
{
|
||||
return ((SocketListener*)tdParam)->DoWork();
|
||||
}
|
||||
|
||||
|
||||
SocketListener::SocketListener(void(*ClientCallBack)(void* tdParam, OrbisNetId Sock), void* tdParam, unsigned short Port)
|
||||
{
|
||||
klog("Socket Listener.\n");
|
||||
this->ClientCallBack = ClientCallBack;
|
||||
this->tdParam = tdParam;
|
||||
this->ServerRunning = true;
|
||||
this->ThreadCleanedUp = false;
|
||||
this->Port = Port;
|
||||
|
||||
scePthreadCreate(&ListenThreadHandle, NULL, &ListenThread, this, "Listen Thread");
|
||||
}
|
||||
|
||||
SocketListener::~SocketListener()
|
||||
{
|
||||
klog("~Socket Listener.\n");
|
||||
|
||||
this->ServerRunning = false;
|
||||
while (!this->ThreadCleanedUp) { sceKernelUsleep(10); }
|
||||
|
||||
klog("Destruction sucessful.\n");
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
class SocketListener
|
||||
{
|
||||
private:
|
||||
OrbisPthread Thread;
|
||||
OrbisNetId Socket;
|
||||
/// Used to signal thread to shut down
|
||||
bool ServerRunning;
|
||||
/// Used to see when listen thread has closed.
|
||||
bool ThreadCleanedUp;
|
||||
unsigned short Port;
|
||||
OrbisPthread* ListenThreadHandle;
|
||||
|
||||
void* DoWork();
|
||||
static void* ClientThread(void* tdParam);
|
||||
void* tdParam;
|
||||
void(*ClientCallBack)(void* tdParam, OrbisNetId Sock);
|
||||
static void* ListenThread(void* tdParam);
|
||||
|
||||
public:
|
||||
SocketListener(void(*ClientCallBack)(void* tdParam, OrbisNetId Sock), void* tdParam, unsigned short Port);
|
||||
~SocketListener();
|
||||
};
|
||||
@@ -0,0 +1,143 @@
|
||||
#include "Common.h"
|
||||
#include "System.h"
|
||||
#include "Registry.h"
|
||||
|
||||
int ChangeSystemState(SystemState State)
|
||||
{
|
||||
OrbisKernelEventFlag EventFlag = 0;
|
||||
int ret = 0;
|
||||
|
||||
// sceSysCoreSetRebootFlag
|
||||
ret = sceKernelOpenEventFlag(&EventFlag, "SceSysCoreReboot");
|
||||
if (!ret)
|
||||
{
|
||||
ret = sceKernelCancelEventFlag(EventFlag, State, 0);
|
||||
if (!ret)
|
||||
{
|
||||
sceKernelCloseEventFlag(EventFlag);
|
||||
ret = 0;
|
||||
}
|
||||
}
|
||||
|
||||
sceKernelIccIndicatorShutdown();
|
||||
kill(1, 30); //Terminate Process 1 (mini-syscore.elf) with the signal 30.
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void SetConsoleLED(ConsoleLEDColours Colour)
|
||||
{
|
||||
switch (Colour)
|
||||
{
|
||||
default:
|
||||
case white:
|
||||
sceKernelIccIndicatorBootDone();
|
||||
break;
|
||||
|
||||
case white_Blinking:
|
||||
sceKernelIccIndicatorShutdown();
|
||||
break;
|
||||
|
||||
case Blue_Blinking:
|
||||
sceKernelIccIndicatorStandbyBoot();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SetControllerLED()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void RingBuzzer(BuzzerType Type)
|
||||
{
|
||||
if (Type < 6)
|
||||
sceKernelIccSetBuzzer(Type);
|
||||
}
|
||||
|
||||
int32_t GetCPUTemp()
|
||||
{
|
||||
int32_t CPUTemp = 0;
|
||||
if (sceKernelGetCpuTemperature(&CPUTemp) == 0)
|
||||
return CPUTemp;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
int32_t GetSOCTemp()
|
||||
{
|
||||
int32_t SOCTemp = 0;
|
||||
if (sceKernelGetSocSensorTemperature(0, &SOCTemp) == 0)
|
||||
return SOCTemp;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
int GetSDKVersion()
|
||||
{
|
||||
int sdk_version = 0;
|
||||
size_t sdk_versionlen = 4;
|
||||
|
||||
sysctlbyname("kern.sdk_version", (char*)&sdk_version, &sdk_versionlen, nullptr, 0);
|
||||
|
||||
return sdk_version;
|
||||
}
|
||||
|
||||
int GetUpdateVersion()
|
||||
{
|
||||
int sdk_version = 0;
|
||||
size_t sdk_versionlen = 4;
|
||||
|
||||
sysctlbyname("machdep.upd_version", (char*)&sdk_version, &sdk_versionlen, nullptr, 0);
|
||||
|
||||
return sdk_version;
|
||||
}
|
||||
|
||||
bool GetConsoleName(char* Out, size_t len)
|
||||
{
|
||||
return sceRegMgrGetStr(Registry_Find_By_Name("/SYSTEM/nickname"), Out, len) == 0;
|
||||
}
|
||||
|
||||
int GetIDPS(char* Out)
|
||||
{
|
||||
size_t IDPSlen = 16;
|
||||
return sysctlbyname("machdep.idps", Out, &IDPSlen, NULL, NULL);
|
||||
}
|
||||
|
||||
int GetPSID(char* Out)
|
||||
{
|
||||
size_t PSID = 16;
|
||||
return sysctlbyname("machdep.openpsid", Out, &PSID, NULL, NULL);
|
||||
}
|
||||
|
||||
ConsoleTypes GetConsoleType()
|
||||
{
|
||||
char IDPS[16] = { 0 };
|
||||
size_t IDPSlen = 16;
|
||||
sysctlbyname("machdep.idps", (char*)&IDPS, &IDPSlen, NULL, NULL);
|
||||
|
||||
switch (IDPS[5] & 0xffU)
|
||||
{
|
||||
case 0x80:
|
||||
return CT_DIAG;
|
||||
break;
|
||||
|
||||
case 0x81:
|
||||
return CT_DEVKIT;
|
||||
break;
|
||||
|
||||
case 0x82:
|
||||
return CT_TESTKIT;
|
||||
break;
|
||||
|
||||
case 0x83 ... 0x8F:
|
||||
return CT_RETAIL;
|
||||
break;
|
||||
|
||||
case 0xA0:
|
||||
return CT_KRATOS;
|
||||
break;
|
||||
}
|
||||
|
||||
return CT_UNK;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
enum SystemState
|
||||
{
|
||||
Suspend = 0x8004000,
|
||||
Shutdown = 0x4000,
|
||||
Reboot = 0x0,
|
||||
};
|
||||
|
||||
enum ConsoleLEDColours
|
||||
{
|
||||
white,
|
||||
white_Blinking,
|
||||
Blue_Blinking,
|
||||
};
|
||||
|
||||
enum ConsoleTypes
|
||||
{
|
||||
CT_UNK,
|
||||
CT_DIAG, //0x80
|
||||
CT_DEVKIT, //0x81
|
||||
CT_TESTKIT, //0x82
|
||||
CT_RETAIL, //0x83 -> 0x8F
|
||||
CT_KRATOS, //0xA0 IMPOSSIBLE??
|
||||
};
|
||||
|
||||
int ChangeSystemState(SystemState State);
|
||||
void SetConsoleLED(ConsoleLEDColours Colour);
|
||||
void SetControllerLED();
|
||||
void RingBuzzer(BuzzerType Type);
|
||||
int32_t GetCPUTemp();
|
||||
int32_t GetSOCTemp();
|
||||
int GetSDKVersion();
|
||||
int GetUpdateVersion();
|
||||
bool GetConsoleName(char* Out, size_t len);
|
||||
int GetIDPS(char* Out);
|
||||
int GetPSID(char* Out);
|
||||
ConsoleTypes GetConsoleType();
|
||||
@@ -1,14 +1,7 @@
|
||||
#include "Common.h"
|
||||
#include "Target.h"
|
||||
#include "APIHelper.h"
|
||||
#include "Registry.h"
|
||||
#include "System.h"
|
||||
#include "Flash.h"
|
||||
#include "Config.h"
|
||||
#include "Debug_Features.h"
|
||||
#include "ShellCoreUtilWrapper.h"
|
||||
#include "NetWrapper.h"
|
||||
#include "System_Monitor.h"
|
||||
#include <orbis/SysCore.h>
|
||||
|
||||
void Target::HandleAPI(OrbisNetId Sock, APIPacket* Packet)
|
||||
{
|
||||
@@ -27,7 +20,7 @@ void Target::HandleAPI(OrbisNetId Sock, APIPacket* Packet)
|
||||
|
||||
case APICommands::API_TARGET_RESTMODE:
|
||||
|
||||
ChangeSystemState(System_State::Suspend);
|
||||
ChangeSystemState(SystemState::Suspend);
|
||||
|
||||
SendStatus(Sock, APIResults::API_OK);
|
||||
|
||||
@@ -35,7 +28,7 @@ void Target::HandleAPI(OrbisNetId Sock, APIPacket* Packet)
|
||||
|
||||
case APICommands::API_TARGET_SHUTDOWN:
|
||||
|
||||
ChangeSystemState(System_State::Shutdown);
|
||||
ChangeSystemState(SystemState::Shutdown);
|
||||
|
||||
SendStatus(Sock, APIResults::API_OK);
|
||||
|
||||
@@ -43,7 +36,7 @@ void Target::HandleAPI(OrbisNetId Sock, APIPacket* Packet)
|
||||
|
||||
case APICommands::API_TARGET_REBOOT:
|
||||
|
||||
ChangeSystemState(System_State::Reboot);
|
||||
ChangeSystemState(SystemState::Reboot);
|
||||
|
||||
SendStatus(Sock, APIResults::API_OK);
|
||||
|
||||
@@ -103,13 +96,17 @@ void Target::SendTargetInfo(OrbisNetId Sock)
|
||||
ReadFlash(FLASH_FACTORY_FW, &Packet->FactorySoftwareVersion, sizeof(int));
|
||||
Packet->CPUTemp = GetCPUTemp();
|
||||
Packet->SOCTemp = GetSOCTemp();
|
||||
strcpy(Packet->CurrentTitleID, CallInMonoThread->RemoteCall<char*>(GetBigAppTitleId)); // TODO: NOP Debug print.
|
||||
|
||||
OrbisAppInfo bigAppInfo;
|
||||
sceApplicationGetAppInfoByAppId(sceSystemServiceGetAppIdOfBigApp(), &bigAppInfo);
|
||||
strcpy(Packet->CurrentTitleID, bigAppInfo.TitleId);
|
||||
|
||||
GetConsoleName(Packet->ConsoleName, 100);
|
||||
ReadFlash(FLASH_MB_SERIAL, &Packet->MotherboardSerial, 14);
|
||||
ReadFlash(FLASH_SERIAL, &Packet->Serial, 10);
|
||||
ReadFlash(FLASH_MODEL, &Packet->Model, 14);
|
||||
strcpy(Packet->MACAdressLAN, CallInMonoThread->RemoteCall<char*>(NetWrapper::GetMacAddressInfo, SCE_NET_IF_NAME_PHYSICAL));
|
||||
strcpy(Packet->MACAdressWIFI, CallInMonoThread->RemoteCall<char*>(NetWrapper::GetMacAddressInfo, SCE_NET_IF_NAME_WLAN0));
|
||||
// strcpy(Packet->MACAdressLAN, CallInMonoThread->RemoteCall<char*>(NetWrapper::GetMacAddressInfo, SCE_NET_IF_NAME_PHYSICAL));
|
||||
// strcpy(Packet->MACAdressWIFI, CallInMonoThread->RemoteCall<char*>(NetWrapper::GetMacAddressInfo, SCE_NET_IF_NAME_WLAN0));
|
||||
ReadFlash(FLASH_UART_FLAG, &Packet->UART, 1);
|
||||
ReadFlash(FLASH_IDU_MODE, &Packet->IDUMode, 1);
|
||||
GetIDPS(Packet->IDPS);
|
||||
@@ -121,19 +118,19 @@ void Target::SendTargetInfo(OrbisNetId Sock)
|
||||
//Packet->CurrentProc
|
||||
|
||||
// Storage Stats.
|
||||
uint64_t HDDFreeSpace, HDDTotalSpace;
|
||||
/*uint64_t HDDFreeSpace, HDDTotalSpace;
|
||||
CallInMonoThread->RemoteCall<int>(ShellCoreUtilWrapper::sceShellCoreUtilGetFreeSizeOfUserPartition, &HDDFreeSpace, &HDDTotalSpace);
|
||||
Packet->FreeSpace = HDDFreeSpace;
|
||||
Packet->TotalSpace = HDDTotalSpace;
|
||||
Packet->TotalSpace = HDDTotalSpace;*/
|
||||
|
||||
// Perf Stats.
|
||||
Packet->CPUTemp = System_Monitor::CPU_Temp;
|
||||
/*Packet->CPUTemp = System_Monitor::CPU_Temp;
|
||||
Packet->SOCTemp = System_Monitor::SOC_Temp;
|
||||
Packet->ThreadCount = System_Monitor::Thread_Count;
|
||||
Packet->AverageCPUUsage = System_Monitor::Average_Usage;
|
||||
Packet->BusyCore = System_Monitor::Busy_Core;
|
||||
memcpy(&Packet->Ram, &System_Monitor::RAM, sizeof(MemoryInfo));
|
||||
memcpy(&Packet->VRam, &System_Monitor::VRAM, sizeof(MemoryInfo));
|
||||
memcpy(&Packet->VRam, &System_Monitor::VRAM, sizeof(MemoryInfo));*/
|
||||
|
||||
sceNetSend(Sock, Packet, sizeof(TargetInfoPacket), 0);
|
||||
|
||||
@@ -156,7 +153,8 @@ void Target::DoNotify(OrbisNetId Sock)
|
||||
|
||||
void Target::SetSettings(OrbisNetId Sock)
|
||||
{
|
||||
auto Packet = new TargetSettingsPacket();
|
||||
//TODO: IPC here...
|
||||
/*auto Packet = new TargetSettingsPacket();
|
||||
|
||||
sceNetRecv(Sock, Packet, sizeof(TargetSettingsPacket), 0);
|
||||
|
||||
@@ -167,7 +165,7 @@ void Target::SetSettings(OrbisNetId Sock)
|
||||
|
||||
SendStatus(Sock, APIResults::API_OK);
|
||||
|
||||
Config::SetSettingsNow = true;
|
||||
Config::SetSettingsNow = true;*/
|
||||
}
|
||||
|
||||
//TODO: Get Target Settings.
|
||||
@@ -60,6 +60,31 @@ void Notify(const char* MessageFMT, ...)
|
||||
sceKernelSendNotificationRequest(0, &Buffer, 3120, 0);
|
||||
}
|
||||
|
||||
void Notify_Custom(const char* IconURI, const char* MessageFMT, ...)
|
||||
{
|
||||
OrbisNotificationRequest Buffer;
|
||||
|
||||
//Create full string from va list.
|
||||
va_list args;
|
||||
va_start(args, MessageFMT);
|
||||
vsprintf(Buffer.message, MessageFMT, args);
|
||||
va_end(args);
|
||||
|
||||
//Populate the notify buffer.
|
||||
Buffer.type = OrbisNotificationRequestType::NotificationRequest; //this one is just a standard one and will print what ever is stored at the buffer.Message.
|
||||
Buffer.unk3 = 0;
|
||||
Buffer.useIconImageUri = 1; //Bool to use a custom uri.
|
||||
Buffer.targetId = -1; //Not sure if name is correct but is always set to -1.
|
||||
strcpy(Buffer.iconUri, IconURI); //Copy the uri to the buffer.
|
||||
|
||||
//From user land we can call int64_t sceKernelSendNotificationRequest(int64_t unk1, char* Buffer, size_t size, int64_t unk2) which is a libkernel import.
|
||||
sceKernelSendNotificationRequest(0, &Buffer, 3120, 0);
|
||||
|
||||
//What sceKernelSendNotificationRequest is doing is opening the device "/dev/notification0" or "/dev/notification1"
|
||||
// and writing the NotifyBuffer we created to it. Somewhere in ShellUI it is read and parsed into a json which is where
|
||||
// I found some clues on how to build the buffer.
|
||||
}
|
||||
|
||||
void klog(const char* fmt, ...)
|
||||
{
|
||||
char Buffer[0x200];
|
||||
|
||||
@@ -12,7 +12,6 @@ struct SceDbgModuleInfo {
|
||||
SceDbgModuleSegmentInfo segmentInfo[4];
|
||||
uint32_t numSegments;
|
||||
uint8_t fingerprint[20];
|
||||
|
||||
};
|
||||
|
||||
//Modules.
|
||||
@@ -21,6 +20,7 @@ bool LoadModules();
|
||||
|
||||
//Misc
|
||||
void Notify(const char* MessageFMT, ...);
|
||||
void Notify_Custom(const char* IconURI, const char* MessageFMT, ...);
|
||||
void klog(const char* fmt, ...);
|
||||
int sys_dynlib_get_info(int moduleHandle, SceDbgModuleInfo* destModuleInfo);
|
||||
int sys_dynlib_get_list(int* destModuleHandles, int max, int* count);
|
||||
@@ -1,11 +1,11 @@
|
||||
#pragma once
|
||||
#define ORBISLIB_MAJOR 3
|
||||
#define ORBISLIB_MINOR 0
|
||||
#define ORBISLIB_BUILDVERSION 1
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
#if defined(_DEBUG)
|
||||
#define ORBISLIB_BUILDSTRING ("[OrbisLib Daemon " stringify(ORBISLIB_MAJOR) "." stringify(ORBISLIB_MINOR) "] Dev Build " stringify(ORBISLIB_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#else
|
||||
#define ORBISLIB_BUILDSTRING ("[OrbisLib Daemon " stringify(ORBISLIB_MAJOR) "." stringify(ORBISLIB_MINOR) "] Build " stringify(ORBISLIB_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#endif
|
||||
#pragma once
|
||||
#define ORBISLIB_MAJOR 3
|
||||
#define ORBISLIB_MINOR 0
|
||||
#define ORBISLIB_BUILDVERSION 181
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
#if defined(_DEBUG)
|
||||
#define ORBISLIB_BUILDSTRING ("[OrbisLib Daemon " stringify(ORBISLIB_MAJOR) "." stringify(ORBISLIB_MINOR) "] Dev Build " stringify(ORBISLIB_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#else
|
||||
#define ORBISLIB_BUILDSTRING ("[OrbisLib Daemon " stringify(ORBISLIB_MAJOR) "." stringify(ORBISLIB_MINOR) "] Build " stringify(ORBISLIB_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#endif
|
||||
|
||||
@@ -15,9 +15,15 @@ extern "C"
|
||||
size_t data_size;
|
||||
};
|
||||
|
||||
struct ProcInfo
|
||||
{
|
||||
char ProcName[32];
|
||||
};
|
||||
|
||||
void jbc_run_as_root(void(*fn)(void* arg), void* arg, int cwd_mode);
|
||||
int jbc_mount_in_sandbox(const char* system_path, const char* mnt_name);
|
||||
int jbc_unmount_in_sandbox(const char* mnt_name);
|
||||
int jbc_set_proc_name(const char* New_Name);
|
||||
int jbc_get_proc_libraries(struct LibraryInfo* out, int maxCount);
|
||||
uint64_t jbc_get_proc_list(struct ProcInfo* out, int maxCount);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,32 @@
|
||||
#include "Common.h"
|
||||
#include "Version.h"
|
||||
#include "API.h"
|
||||
|
||||
#include <orbis/SystemService.h>
|
||||
#include <orbis/SysCore.h>
|
||||
|
||||
#define CTL_KERN 1
|
||||
#define KERN_PROC 14
|
||||
#define KERN_PROC_PID 1
|
||||
#define KERN_PROC_APPINFO 35
|
||||
|
||||
void hexdump(void* ptr, int buflen) {
|
||||
unsigned char* buf = (unsigned char*)ptr;
|
||||
int i, j;
|
||||
for (i = 0; i < buflen; i += 16) {
|
||||
klog("%06x: ", i);
|
||||
for (j = 0; j < 16; j++)
|
||||
if (i + j < buflen)
|
||||
klog("%02x ", buf[i + j]);
|
||||
else
|
||||
klog(" ");
|
||||
klog(" ");
|
||||
for (j = 0; j < 16; j++)
|
||||
if (i + j < buflen)
|
||||
klog("%c", isprint(buf[i + j]) ? buf[i + j] : '.');
|
||||
klog("\n");
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -21,20 +48,24 @@ int main()
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Use future GoldHEN JB.
|
||||
// Use GoldHEN JB.
|
||||
jailbreak_backup jb1;
|
||||
sys_sdk_jailbreak(&jb1);
|
||||
|
||||
// Set the Name of this process so it shows up as something other than eboot.bin.
|
||||
jbc_set_proc_name("OrbisLibAPI");
|
||||
|
||||
klog(ORBISLIB_BUILDSTRING);
|
||||
klog("\n%s\n\n", ORBISLIB_BUILDSTRING);
|
||||
|
||||
API::Init();
|
||||
|
||||
while (true)
|
||||
{
|
||||
sceKernelSleep(1);
|
||||
}
|
||||
|
||||
klog("Time to go :(\n");
|
||||
|
||||
sceSystemServiceLoadExec("exit", 0);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -118,6 +118,7 @@ call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeReBuildCommandLi
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Common.h" />
|
||||
<ClInclude Include="Config.h" />
|
||||
<ClInclude Include="libjbc.h" />
|
||||
<ClInclude Include="Utilities.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
||||
@@ -33,5 +33,8 @@
|
||||
<ClInclude Include="Config.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="libjbc.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "Common.h"
|
||||
#include "Utilities.h"
|
||||
#include "libjbc.h"
|
||||
#include <orbis/Net.h>
|
||||
#include <sys/uio.h>
|
||||
#include <orbis/MsgDialog.h>
|
||||
|
||||
@@ -13,7 +13,7 @@ set outputOelf=%intdir%%targetname%.oelf
|
||||
|
||||
Rem Compile object files for all the source files
|
||||
for %%f in (*.cpp) do (
|
||||
clang++ -cc1 -triple x86_64-scei-ps4-elf -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -I"..\\..\\External\\GoldHEN_Plugins_SDK\\include" -DORBISLIB_DEBUG -emit-obj -o %intdir%\%%~nf.o %%~nf.cpp
|
||||
clang++ -cc1 -triple x86_64-scei-ps4-elf -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -I"..\\..\\External\\GoldHEN_Plugins_SDK\\include" -I"..\\..\\External\\ps4-libjbc" -DORBISLIB_DEBUG -emit-obj -o %intdir%\%%~nf.o %%~nf.cpp
|
||||
)
|
||||
|
||||
Rem Get a list of object files for linking
|
||||
@@ -21,7 +21,7 @@ set obj_files=
|
||||
for %%f in (%1\\*.o) do set obj_files=!obj_files! .\%%f
|
||||
|
||||
Rem Link the input ELF
|
||||
ld.lld -m elf_x86_64 -pie --script "%OO_PS4_TOOLCHAIN%\link.x" --eh-frame-hdr -o "%outputElf%" "-L%OO_PS4_TOOLCHAIN%\\lib" "-L..\\..\\External\\GoldHEN_Plugins_SDK" %libraries% --verbose "%OO_PS4_TOOLCHAIN%\lib\crt1.o" %obj_files%
|
||||
ld.lld -m elf_x86_64 -pie --script "%OO_PS4_TOOLCHAIN%\link.x" --eh-frame-hdr -o "%outputElf%" "-L%OO_PS4_TOOLCHAIN%\\lib" "-L..\\..\\External\\GoldHEN_Plugins_SDK" %libraries% --verbose "%OO_PS4_TOOLCHAIN%\lib\crt1.o" %obj_files% "..\\..\\External\\ps4-libjbc\\jbc.o"
|
||||
|
||||
Rem Create the eboot
|
||||
%OO_PS4_TOOLCHAIN%\bin\windows\create-fself.exe -in "%outputElf%" --out "%outputOelf%" --eboot "eboot.bin"
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
extern "C"
|
||||
{
|
||||
enum { CWD_KEEP, CWD_ROOT, CWD_RESET };
|
||||
|
||||
struct LibraryInfo
|
||||
{
|
||||
char Path[256];
|
||||
uint64_t ModuleHandle;
|
||||
uint64_t map_base;
|
||||
size_t map_size;
|
||||
size_t text_size;
|
||||
uint64_t data_base;
|
||||
size_t data_size;
|
||||
};
|
||||
|
||||
struct ProcInfo
|
||||
{
|
||||
char ProcName[32];
|
||||
};
|
||||
|
||||
void jbc_run_as_root(void(*fn)(void* arg), void* arg, int cwd_mode);
|
||||
int jbc_mount_in_sandbox(const char* system_path, const char* mnt_name);
|
||||
int jbc_unmount_in_sandbox(const char* mnt_name);
|
||||
int jbc_set_proc_name(const char* New_Name);
|
||||
int jbc_get_proc_libraries(struct LibraryInfo* out, int maxCount);
|
||||
uint64_t jbc_get_proc_list(struct ProcInfo* out, int maxCount);
|
||||
}
|
||||
@@ -32,11 +32,12 @@ int main()
|
||||
mount_large_fs("/dev/da0x4.crypt", "/system", "exfatfs", "511", MNT_UPDATE);
|
||||
|
||||
// Install all the things! :D
|
||||
InstallDaemon("ORBS30000"); // Orbis Lib
|
||||
//InstallDaemon("ORBS30000"); // Orbis Lib
|
||||
InstallOrbisToolbox();
|
||||
|
||||
//TODO: Pull module list of SceShellUI to see if we should unload the toolbox.
|
||||
|
||||
|
||||
// Use GoldHEN SDK to load PRX to SceShellUI.
|
||||
auto Handle = sys_sdk_proc_prx_load("SceShellUI", "/user/data/Orbis Toolbox/OrbisToolbox-2.0.sprx");
|
||||
|
||||
@@ -47,7 +48,7 @@ int main()
|
||||
klog("error: %d\n", Handle);
|
||||
Notify("Failed to load Orbis Toolbox!");
|
||||
}
|
||||
|
||||
|
||||
sceSystemServiceLoadExec("exit", 0);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#include "Common.h"
|
||||
#include "API.h"
|
||||
|
||||
Proc* API::Proc;
|
||||
Debug* API::Debug;
|
||||
Target* API::Target;
|
||||
SocketListener* API::Listener;
|
||||
bool API::Running = false;
|
||||
|
||||
void API::ListenerCallback(void* tdParam, OrbisNetId s)
|
||||
{
|
||||
auto Packet = RecievePacket<APIPacket>(s);
|
||||
|
||||
if (Packet != nullptr)
|
||||
{
|
||||
// Make sure were getting the proper packet version.
|
||||
if (Packet->PacketVersion != PACKET_VERSION)
|
||||
{
|
||||
//klog("Packet version %i does not match our expected %i version!\n", Packet->PacketVersion, PACKET_VERSION);
|
||||
|
||||
free(Packet);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Send out the command to the right places.
|
||||
switch (Packet->Command)
|
||||
{
|
||||
default:
|
||||
klog("API: Invalid Command %i...\n", Packet->Command);
|
||||
break;
|
||||
|
||||
case APICommands::PROC_START ... APICommands::PROC_END:
|
||||
Proc->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
case APICommands::DBG_START ... APICommands::DBG_END:
|
||||
Debug->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
case APICommands::KERN_START ... APICommands::KERN_END:
|
||||
klog("Kernel API Call\n");
|
||||
|
||||
break;
|
||||
|
||||
case APICommands::TARGET_START ... APICommands::TARGET_END:
|
||||
Target->HandleAPI(s, Packet);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up. :)
|
||||
free(Packet);
|
||||
}
|
||||
|
||||
void API::Init()
|
||||
{
|
||||
if (!Running)
|
||||
{
|
||||
klog("API Startup.\n");
|
||||
Proc = new class Proc();
|
||||
Debug = new class Debug();
|
||||
Target = new class Target();
|
||||
Listener = new SocketListener(ListenerCallback, NULL, 6900);
|
||||
Running = true;
|
||||
}
|
||||
}
|
||||
|
||||
void API::Term()
|
||||
{
|
||||
if (Running)
|
||||
{
|
||||
delete Proc;
|
||||
delete Debug;
|
||||
delete Target;
|
||||
delete Listener;
|
||||
Running = false;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
#pragma once
|
||||
#include "Proc.h"
|
||||
#include "Debug.h"
|
||||
#include "Target.h"
|
||||
#include "SocketListener.h"
|
||||
#include "APIHelper.h"
|
||||
|
||||
class API
|
||||
{
|
||||
private:
|
||||
static Proc* Proc;
|
||||
static Debug* Debug;
|
||||
static Target* Target;
|
||||
static SocketListener* Listener;
|
||||
|
||||
static void ListenerCallback(void* tdParam, OrbisNetId s);
|
||||
|
||||
public:
|
||||
static bool Running;
|
||||
static void Init();
|
||||
static void Term();
|
||||
};
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
#include "Version.h"
|
||||
#include "Utilities.h"
|
||||
#include "APIPackets.h"
|
||||
#include "Mono.h"
|
||||
#include "Detour.h"
|
||||
#include "Patcher.h"
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
#include "Common.h"
|
||||
#include "KDriver.h"
|
||||
|
||||
bool KDriver::TestDriver()
|
||||
{
|
||||
int fd = sceKernelOpen("/dev/OrbisSuite", ORBIS_KERNEL_O_RDONLY, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
klog("Driver Installed...\n");
|
||||
sceKernelClose(fd);
|
||||
return true;
|
||||
}
|
||||
|
||||
klog("Driver Not Installed...\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool KDriver::GetDriverInfo(KDriver_Info* Info)
|
||||
{
|
||||
int fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
int res = ioctl(fd, KDRIVER_INFO, Info);
|
||||
|
||||
if (res != 0)
|
||||
{
|
||||
klog("KDRIVER_INFO failed with %d\n", res);
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
klog("Where kernel??\n");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int KDriver::GetProcessList(int ProcessCount, ProcInfo* ProcList)
|
||||
{
|
||||
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
auto Info = new KDriver_ProcList();
|
||||
Info->UserlandAddr = (uint64_t)ProcList;
|
||||
Info->UserlandSize = ((sizeof(ProcInfo) * ProcessCount));
|
||||
Info->ProcCount = ProcessCount;
|
||||
|
||||
auto res = ioctl(fd, PROC_LIST, Info);
|
||||
|
||||
if (res != 0)
|
||||
{
|
||||
delete Info;
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
delete Info;
|
||||
|
||||
return Info->ProcCount;
|
||||
}
|
||||
else
|
||||
klog("Where kernel??\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int KDriver::LoadSPRX(const char* ProccessName, const char* Path, bool ShouldCallEntry)
|
||||
{
|
||||
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
KDriver_ProcSPRX ProcSPRX;
|
||||
ProcSPRX.CallType = 0;
|
||||
strcpy(ProcSPRX.ProcName, ProccessName);
|
||||
strcpy(ProcSPRX.Path, Path);
|
||||
ProcSPRX.CallEntryExit = ShouldCallEntry;
|
||||
|
||||
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return res;
|
||||
}
|
||||
else
|
||||
klog("Where kernel??\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int KDriver::UnLoadSPRX(const char* ProccessName, const char* Name, bool ShouldCallExit)
|
||||
{
|
||||
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
KDriver_ProcSPRX ProcSPRX;
|
||||
ProcSPRX.CallType = 1;
|
||||
strcpy(ProcSPRX.ProcName, ProccessName);
|
||||
strcpy(ProcSPRX.Path, Name);
|
||||
ProcSPRX.CallEntryExit = ShouldCallExit;
|
||||
|
||||
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return res;
|
||||
}
|
||||
else
|
||||
klog("Where kernel??\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int KDriver::UnLoadSPRX(const char* ProccessName, int ModuleHandle, bool ShouldCallExit)
|
||||
{
|
||||
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
|
||||
if (fd > 0)
|
||||
{
|
||||
KDriver_ProcSPRX ProcSPRX;
|
||||
ProcSPRX.CallType = 2;
|
||||
strcpy(ProcSPRX.ProcName, ProccessName);
|
||||
ProcSPRX.Handle = ModuleHandle;
|
||||
ProcSPRX.CallEntryExit = ShouldCallExit;
|
||||
|
||||
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
|
||||
|
||||
sceKernelClose(fd);
|
||||
|
||||
return res;
|
||||
}
|
||||
else
|
||||
klog("Where kernel??\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#pragma once
|
||||
#include "../../Misc/DriverDefinitions.h"
|
||||
|
||||
class KDriver
|
||||
{
|
||||
public:
|
||||
// Driver
|
||||
static bool TestDriver();
|
||||
static bool GetDriverInfo(KDriver_Info* Info);
|
||||
|
||||
// Proc
|
||||
static int GetProcessList(int ProcessCount, ProcInfo* ProcList);
|
||||
// AttachtoProcess
|
||||
// DetachfromProcess
|
||||
// ReadProcessMemory
|
||||
// WriteProcessMemory
|
||||
// GetProcessInfo
|
||||
// GetModuleList
|
||||
static int LoadSPRX(const char* ProccessName, const char* Path, bool ShouldCallEntry = true);
|
||||
static int UnLoadSPRX(const char* ProccessName, const char* Name, bool ShouldCallExit = true);
|
||||
static int UnLoadSPRX(const char* ProccessName, int ModuleHandle, bool ShouldCallExit = true);
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
@@ -8,8 +8,6 @@
|
||||
#include "Config.h"
|
||||
#include "LncUtil.h"
|
||||
#include "Daemons.h"
|
||||
#include "KDriver.h"
|
||||
#include "API.h"
|
||||
|
||||
#include "NetWrapper.h"
|
||||
|
||||
@@ -206,11 +204,7 @@ void Menu::Init()
|
||||
// Orbis Suite Debug
|
||||
Add_Option("id_orbis_api", []() -> void
|
||||
{
|
||||
API::Term();
|
||||
API::Init();
|
||||
Notify("API Restarted!");
|
||||
});
|
||||
Add_Option("id_orbis_api_toggle", &API::Running, Type_Boolean, []() ->void { API::Running ? API::Term() : API::Init(); });
|
||||
Add_Option("id_orbis_test", []() -> void
|
||||
{
|
||||
klog("WIFI MAC: %s\nLAN MAC: %s\n",
|
||||
@@ -240,13 +234,7 @@ void Menu::Init()
|
||||
});
|
||||
Add_Option("id_orbis_listproc", []() -> void
|
||||
{
|
||||
ProcInfo Infos[200];
|
||||
auto count = KDriver::GetProcessList(200, (ProcInfo*)&Infos);
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
klog("%i %s %s\n", Infos[i].PID, Infos[i].ProcName, Infos[i].TitleID);
|
||||
}
|
||||
|
||||
});
|
||||
Add_Option("id_orbis_listlocalproc", []() -> void
|
||||
{
|
||||
|
||||
@@ -78,22 +78,16 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<None Include="Embed.s" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="API.h" />
|
||||
<ClInclude Include="APIHelper.h" />
|
||||
<ClInclude Include="APIPackets.h" />
|
||||
<ClInclude Include="Breakpoint.h" />
|
||||
<ClInclude Include="Build_Overlay.h" />
|
||||
<ClInclude Include="Common.h" />
|
||||
<ClInclude Include="Config.h" />
|
||||
<ClInclude Include="Daemons.h" />
|
||||
<ClInclude Include="Debug.h" />
|
||||
<ClInclude Include="Debug_Features.h" />
|
||||
<ClInclude Include="Detour.h" />
|
||||
<ClInclude Include="Flash.h" />
|
||||
<ClInclude Include="GamePad.h" />
|
||||
<ClInclude Include="Game_Overlay.h" />
|
||||
<ClInclude Include="hde64.h" />
|
||||
<ClInclude Include="KDriver.h" />
|
||||
<ClInclude Include="Label.h" />
|
||||
<ClInclude Include="LncUtil.h" />
|
||||
<ClInclude Include="Menu.h" />
|
||||
@@ -101,7 +95,6 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<ClInclude Include="NetWrapper.h" />
|
||||
<ClInclude Include="Panel.h" />
|
||||
<ClInclude Include="Patcher.h" />
|
||||
<ClInclude Include="Proc.h" />
|
||||
<ClInclude Include="Registry.h" />
|
||||
<ClInclude Include="RemoteCaller.h" />
|
||||
<ClInclude Include="Settings_Menu.h" />
|
||||
@@ -111,23 +104,17 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<ClInclude Include="System.h" />
|
||||
<ClInclude Include="System_Monitor.h" />
|
||||
<ClInclude Include="table64.h" />
|
||||
<ClInclude Include="Target.h" />
|
||||
<ClInclude Include="UI.h" />
|
||||
<ClInclude Include="UI_Utilities.h" />
|
||||
<ClInclude Include="Utilities.h" />
|
||||
<ClInclude Include="Version.h" />
|
||||
<ClInclude Include="Watchpoint.h" />
|
||||
<ClInclude Include="Widget.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="API.cpp" />
|
||||
<ClCompile Include="APIHelper.cpp" />
|
||||
<ClCompile Include="Breakpoint.cpp" />
|
||||
<ClCompile Include="Build_Overlay.cpp" />
|
||||
<ClCompile Include="Config.cpp" />
|
||||
<ClCompile Include="Custom_Content.cpp" />
|
||||
<ClCompile Include="Daemons.cpp" />
|
||||
<ClCompile Include="Debug.cpp" />
|
||||
<ClCompile Include="DebugTitleIdLabel.cpp" />
|
||||
<ClCompile Include="Detour.cpp" />
|
||||
<ClCompile Include="DevkitPanel.cpp" />
|
||||
@@ -135,7 +122,6 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<ClCompile Include="GamePad.cpp" />
|
||||
<ClCompile Include="Game_Overlay.cpp" />
|
||||
<ClCompile Include="hde64.cpp" />
|
||||
<ClCompile Include="KDriver.cpp" />
|
||||
<ClCompile Include="Label.cpp" />
|
||||
<ClCompile Include="LncUtil.cpp" />
|
||||
<ClCompile Include="Menu.cpp" />
|
||||
@@ -144,7 +130,6 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<ClCompile Include="OrbisToolbox.cpp" />
|
||||
<ClCompile Include="Panel.cpp" />
|
||||
<ClCompile Include="Patcher.cpp" />
|
||||
<ClCompile Include="Proc.cpp" />
|
||||
<ClCompile Include="Registry.cpp" />
|
||||
<ClCompile Include="RemoteCaller.cpp" />
|
||||
<ClCompile Include="Settings_Menu.cpp" />
|
||||
@@ -153,10 +138,8 @@ del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
|
||||
<ClCompile Include="SysfileUtilWrapper.cpp" />
|
||||
<ClCompile Include="System.cpp" />
|
||||
<ClCompile Include="System_Monitor.cpp" />
|
||||
<ClCompile Include="Target.cpp" />
|
||||
<ClCompile Include="UI_Utilities.cpp" />
|
||||
<ClCompile Include="Utilities.cpp" />
|
||||
<ClCompile Include="Watchpoint.cpp" />
|
||||
<ClCompile Include="Widget.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -16,12 +16,6 @@
|
||||
<Filter Include="Header Files\Utilities">
|
||||
<UniqueIdentifier>{a1e7d8c0-9965-4dae-9e21-fec87fa057a9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\API">
|
||||
<UniqueIdentifier>{531e5d39-42b8-4cf7-93d0-9fc3bd9fe82d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\API">
|
||||
<UniqueIdentifier>{a61efd8d-78d4-4ce2-bf65-9db8d0c6c6f6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\Toolbox">
|
||||
<UniqueIdentifier>{128fb9c5-726e-4ead-9a69-eacccaf065c9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -58,18 +52,6 @@
|
||||
<Filter Include="Source Files\Toolbox\UI\Elements">
|
||||
<UniqueIdentifier>{71a68f5f-0868-4608-b063-7a5913039770}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\API\Misc">
|
||||
<UniqueIdentifier>{2034a675-8702-4fd0-921d-b001def607c9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\API\Misc">
|
||||
<UniqueIdentifier>{1bf13e33-42d9-45c2-8bb2-c58f9ea326f2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\API\CmdGroups">
|
||||
<UniqueIdentifier>{86b8ee3f-43bf-4077-972b-674021d009d7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\API\CmdGroups">
|
||||
<UniqueIdentifier>{689ef1b6-f9c8-4d7b-9a4a-73e5d45aea97}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\Utilities\Mono">
|
||||
<UniqueIdentifier>{4e4c3e09-ba94-450a-ae0e-3dc2999f2400}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -141,30 +123,6 @@
|
||||
<ClInclude Include="UI.h">
|
||||
<Filter>Header Files\Toolbox\UI</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="API.h">
|
||||
<Filter>Header Files\API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="APIHelper.h">
|
||||
<Filter>Header Files\API\Misc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="APIPackets.h">
|
||||
<Filter>Header Files\API\Misc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Target.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Proc.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Watchpoint.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Breakpoint.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Debug.h">
|
||||
<Filter>Header Files\API\CmdGroups</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SocketListener.h">
|
||||
<Filter>Header Files\Utilities</Filter>
|
||||
</ClInclude>
|
||||
@@ -195,9 +153,6 @@
|
||||
<ClInclude Include="Flash.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="KDriver.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Registry.h">
|
||||
<Filter>Header Files\Utilities\PS Utils</Filter>
|
||||
</ClInclude>
|
||||
@@ -263,27 +218,6 @@
|
||||
<ClCompile Include="Widget.cpp">
|
||||
<Filter>Source Files\Toolbox\UI\Elements</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="API.cpp">
|
||||
<Filter>Source Files\API</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="APIHelper.cpp">
|
||||
<Filter>Source Files\API\Misc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Breakpoint.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Debug.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Proc.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Target.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Watchpoint.cpp">
|
||||
<Filter>Source Files\API\CmdGroups</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SocketListener.cpp">
|
||||
<Filter>Source Files\Utilities</Filter>
|
||||
</ClCompile>
|
||||
@@ -314,9 +248,6 @@
|
||||
<ClCompile Include="Flash.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="KDriver.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Registry.cpp">
|
||||
<Filter>Source Files\Utilities\PS Utils</Filter>
|
||||
</ClCompile>
|
||||
|
||||
@@ -2,35 +2,59 @@
|
||||
#include "Settings_Menu.h"
|
||||
#include "System_Monitor.h"
|
||||
#include "GamePad.h"
|
||||
#include "API.h"
|
||||
#include "RemoteCaller.h"
|
||||
|
||||
RemoteCaller* CallInMonoThread = NULL;
|
||||
|
||||
Detour* SearchJob_RunDetour;
|
||||
void* SearchJob_RunHook(MonoObject* instance)
|
||||
{
|
||||
auto IsCancelled = Mono::Get_Property<bool>(Mono::UI_dll, "Sce.PlayStation.HighLevel.UI2", "Job", instance, "IsCancelled");
|
||||
|
||||
if (!IsCancelled)
|
||||
{
|
||||
auto SearchJob = Mono::Get_Class(Mono::App_exe, "Sce.Vsh.ShellUI.Settings.PkgInstaller", "SearchJob");
|
||||
Mono::Invoke<void>(Mono::App_exe, SearchJob, instance, "SearchDir", Mono::New_String("/user/data/pkg"), Mono::New_String("/user/data/pkg"));
|
||||
}
|
||||
|
||||
return SearchJob_RunDetour->Stub<void*>(instance);
|
||||
}
|
||||
|
||||
void* InitThread(void* args)
|
||||
{
|
||||
klog("!! Hello World !!\n");
|
||||
|
||||
Mono::Init();
|
||||
|
||||
if (GamePad::IsDown(GamePad::Buttons::Left | GamePad::Buttons::Triangle))
|
||||
{
|
||||
Notify("Orbis Toolbox: Aborting Launch!!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Toolbox
|
||||
System_Monitor::Init();
|
||||
Settings_Menu::Init();
|
||||
//Title_Menu::Init();
|
||||
|
||||
// API
|
||||
CallInMonoThread = new RemoteCaller();
|
||||
|
||||
Notify(ORBIS_TOOLBOX_NOTIFY);
|
||||
|
||||
SearchJob_RunDetour = new Detour();
|
||||
SearchJob_RunDetour->DetourMethod(Mono::App_exe, "Sce.Vsh.ShellUI.Settings.PkgInstaller", "SearchJob", "Run", 0, (void*)SearchJob_RunHook);
|
||||
|
||||
scePthreadExit(NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
int __cdecl module_start(size_t argc, const void* args)
|
||||
{
|
||||
klog("!! Hello World !!\n");
|
||||
|
||||
Mono::Init();
|
||||
|
||||
if (GamePad::IsDown(GamePad::Buttons::Left | GamePad::Buttons::Triangle))
|
||||
{
|
||||
Notify("Orbis Toolbox: Aborting Launch!!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Toolbox
|
||||
System_Monitor::Init();
|
||||
Settings_Menu::Init();
|
||||
//Title_Menu::Init();
|
||||
|
||||
// API
|
||||
API::Init();
|
||||
CallInMonoThread = new RemoteCaller();
|
||||
|
||||
Notify(ORBIS_TOOLBOX_NOTIFY);
|
||||
OrbisPthread* hThread;
|
||||
scePthreadCreate(&hThread, nullptr, InitThread, nullptr, "Init");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -45,16 +69,12 @@ extern "C"
|
||||
//Title_Menu::Term();
|
||||
|
||||
// API
|
||||
API::Term();
|
||||
delete CallInMonoThread;
|
||||
|
||||
delete SearchJob_RunDetour;
|
||||
|
||||
sceKernelSleep(4);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void _start()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,6 @@
|
||||
#include "Common.h"
|
||||
#include "SysfileUtilWrapper.h"
|
||||
|
||||
void Print_Bytes(char* Bytes, size_t len)
|
||||
{
|
||||
int Counter = 0;
|
||||
for (size_t n = 0; n < len; n++)
|
||||
{
|
||||
printf("%02X ", Bytes[n]);
|
||||
|
||||
if (Counter >= 20)
|
||||
{
|
||||
printf("\n");
|
||||
Counter = 0;
|
||||
}
|
||||
|
||||
Counter++;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
char* SysfileUtilWrapper::GetString(const char* FilePath, const char* Key, unsigned int Size)
|
||||
{
|
||||
int fd = sceKernelOpen(FilePath, 0, 0511);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#pragma once
|
||||
#define ORBIS_TOOLBOX_MAJOR 2
|
||||
#define ORBIS_TOOLBOX_MINOR 0
|
||||
#define ORBIS_TOOLBOX_BUILDVERSION 218
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
#if defined(ORBIS_TOOLBOX_DEBUG)
|
||||
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#else
|
||||
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#endif
|
||||
#pragma once
|
||||
#define ORBIS_TOOLBOX_MAJOR 2
|
||||
#define ORBIS_TOOLBOX_MINOR 0
|
||||
#define ORBIS_TOOLBOX_BUILDVERSION 249
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
#if defined(ORBIS_TOOLBOX_DEBUG)
|
||||
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#else
|
||||
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
|
||||
#endif
|
||||
|
||||
@@ -16,16 +16,11 @@ namespace OrbisSuite
|
||||
public UInt64 DataSegmentBase;
|
||||
public UInt64 DataSegmentLen;
|
||||
|
||||
public ProcessInfo(Int32 PID, bool Attached, string Name, string TitleID, UInt64 TextSegmentBase, UInt64 TextSegmentLen, UInt64 DataSegmentBase, UInt64 DataSegmentLen)
|
||||
public ProcessInfo(Int32 PID, string Name, string TitleID)
|
||||
{
|
||||
this.PID = PID;
|
||||
this.Attached = Attached;
|
||||
this.Name = Name;
|
||||
this.TitleID = TitleID;
|
||||
this.TextSegmentBase = TextSegmentBase;
|
||||
this.TextSegmentLen = TextSegmentLen;
|
||||
this.DataSegmentBase = DataSegmentBase;
|
||||
this.DataSegmentLen = DataSegmentLen;
|
||||
}
|
||||
|
||||
public ProcessInfo()
|
||||
@@ -73,7 +68,7 @@ namespace OrbisSuite
|
||||
Sock.Receive(RawPacket);
|
||||
|
||||
Helpers.BytestoStruct(RawPacket, ref Packet);
|
||||
yield return new ProcessInfo(Packet.ProcessID, Packet.Attached == 1 ? true : false, Packet.ProcName, Packet.TitleID, Packet.TextSegmentBase, Packet.TextSegmentLen, Packet.DataSegmentBase, Packet.DataSegmentLen);
|
||||
yield return new ProcessInfo(Packet.ProcessID, Packet.Name, Packet.TitleID);
|
||||
}
|
||||
|
||||
API.CompleteCall(Sock);
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace OrbisSuite.Common
|
||||
|
||||
/* ##### Debugger functions ##### */
|
||||
DBG_START,
|
||||
|
||||
API_DBG_ATTACH, /* Debugger attach to target */
|
||||
API_DBG_DETACH, /* Debugger detach from target */
|
||||
API_DBG_GET_CURRENT,
|
||||
@@ -63,19 +64,23 @@ namespace OrbisSuite.Common
|
||||
API_DBG_WATCHPOINT_REMOVE,
|
||||
API_DBG_WATCHPOINT_GETINFO,
|
||||
API_DBG_WATCHPOINT_LIST,
|
||||
|
||||
DBG_END,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### Kernel functions ###### */
|
||||
KERN_START,
|
||||
|
||||
API_KERN_BASE,
|
||||
API_KERN_READ,
|
||||
API_KERN_WRITE,
|
||||
|
||||
KERN_END,
|
||||
/* ############################## */
|
||||
|
||||
/* ###### Target functions ###### */
|
||||
TARGET_START,
|
||||
|
||||
API_TARGET_INFO,
|
||||
API_TARGET_RESTMODE,
|
||||
API_TARGET_SHUTDOWN,
|
||||
@@ -85,7 +90,7 @@ namespace OrbisSuite.Common
|
||||
API_TARGET_SET_LED,
|
||||
API_TARGET_DUMP_PROC,
|
||||
API_TARGET_SET_SETTINGS,
|
||||
//API_TARGET_LOAD_VSH_MODULE
|
||||
|
||||
TARGET_END,
|
||||
/* ############################## */
|
||||
}
|
||||
@@ -119,29 +124,28 @@ namespace OrbisSuite.Common
|
||||
public struct ProcPacket
|
||||
{
|
||||
public int ProcessID;
|
||||
public int Attached;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
|
||||
public string ProcName;
|
||||
public string Name;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
|
||||
public string TitleID;
|
||||
public UInt64 TextSegmentBase;
|
||||
public UInt64 TextSegmentLen;
|
||||
public UInt64 DataSegmentBase;
|
||||
public UInt64 DataSegmentLen;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Ansi)]
|
||||
public struct ModuleListPacket
|
||||
public struct SegmentInfo
|
||||
{
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 36)]
|
||||
public string Name;
|
||||
public UInt64 baseAddr;
|
||||
public uint size;
|
||||
public int prot;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Ansi)]
|
||||
public struct LibraryPacket
|
||||
{
|
||||
public Int64 Handle;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||
public string Path;
|
||||
public int Handle;
|
||||
public UInt64 TextSegmentBase;
|
||||
public UInt64 TextSegmentLen;
|
||||
public UInt64 DataSegmentBase;
|
||||
public UInt64 DataSegmentLen;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
|
||||
public SegmentInfo[] Segments;
|
||||
}
|
||||
|
||||
public enum ConsoleTypes
|
||||
|
||||
@@ -55,6 +55,6 @@
|
||||
/// <summary>
|
||||
/// The version of the packets used to communicate with the Target Console.
|
||||
/// </summary>
|
||||
public static readonly int PacketVersion = 1;
|
||||
public static readonly int PacketVersion = 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
1384
|
||||
1406
|
||||
|
||||
@@ -1 +1 @@
|
||||
Version 3.0.1384 Debug Build Thursday December 01 2022 9:39 PM
|
||||
Version 3.0.1406 Debug Build Saturday December 03 2022 10:47 PM
|
||||
|
||||
Reference in New Issue
Block a user