From e420e93a48636f087bd242571881110da48819ee Mon Sep 17 00:00:00 2001 From: hammer-83 <48300721+hammer-83@users.noreply.github.com> Date: Thu, 16 Nov 2023 01:23:55 -0500 Subject: [PATCH] Multiple changes: - Add sdk to help with native code execution in remote JARs. Far from complete, needs more mappings. - JarLoader now reads the remote JAR manifest to determine which payload class to execute. - Added 3 sample payloads: list system properties, list directories from root using native direent API and a dumper of class files from Java VM. - JAR loader now includes a generic SockerListener class which can be used for any network communication between remote JAR and the PC. Class dumper payload uses it for example to send back the class files. - IntelliJ project converted to explicit IMLs for better or worse (this method is considered deprecated). But it allows better classpath control when project is refreshed from Maven. - Versions are split between JAR loader and the rest of the project. This allows to release new SDK versions without needing to re-burn the loader. - JAR loader version is now displayed on PS5. - Made changes to make it possible to run remote JARs on a local development machine for testing. For example, class dumper can work just as well to dump local JVM classpath. - RemoteLogger no longer crashes attempting to send a UDP packet that is too large. --- .idea/.gitignore | 1 + .idea/compiler.xml | 19 +- .idea/encodings.xml | 8 +- .idea/inspectionProfiles/Project_Default.xml | 45 ++ .idea/misc.xml | 2 +- .idea/modules.xml | 20 + README.md | 35 +- assembly/assembly.iml | 14 + assembly/pom.xml | 4 +- .../disc/AVCHD/BDMV/META/DL/bdmt_eng.xml | 4 +- bdj-tools/bdjo/bdjo.iml | 19 + bdj-tools/grin/grin.iml | 13 + bdj-tools/id/id.iml | 19 + bdj-tools/index/index.iml | 18 + bdj-tools/movieobject/movieobject.iml | 18 + bdj-tools/security/security.iml | 15 + bdj-tools/tools.iml | 12 + parent.iml | 12 + pom.xml | 52 +- sdk/pom.xml | 77 +++ sdk/sdk.iml | 16 + .../java/org/ps5jb/sdk/core/CallContext.java | 217 +++++++ .../main/java/org/ps5jb/sdk/core/Library.java | 165 +++++ .../org/ps5jb/sdk/core/OpenModuleAction.java | 62 ++ .../main/java/org/ps5jb/sdk/core/Pointer.java | 578 ++++++++++++++++++ .../java/org/ps5jb/sdk/core/SdkException.java | 55 ++ .../ps5jb/sdk/core/SdkRuntimeException.java | 55 ++ .../sdk/core/SdkSymbolNotFoundException.java | 44 ++ .../java/org/ps5jb/sdk/core/package-info.java | 5 + .../java/org/ps5jb/sdk/include/ErrNo.java | 17 + .../java/org/ps5jb/sdk/include/UniStd.java | 41 ++ .../org/ps5jb/sdk/include/package-info.java | 5 + .../org/ps5jb/sdk/include/sys/CpuSet.java | 32 + .../java/org/ps5jb/sdk/include/sys/ErrNo.java | 300 +++++++++ .../java/org/ps5jb/sdk/include/sys/FCntl.java | 38 ++ .../sdk/include/sys/bitset/BitSetType.java | 122 ++++ .../sdk/include/sys/bitset/package-info.java | 4 + .../sdk/include/sys/cpuset/CpuLevelType.java | 99 +++ .../sdk/include/sys/cpuset/CpuSetType.java | 45 ++ .../sdk/include/sys/cpuset/CpuWhichType.java | 108 ++++ .../sdk/include/sys/cpuset/package-info.java | 4 + .../ps5jb/sdk/include/sys/dirent/DirEnt.java | 82 +++ .../ps5jb/sdk/include/sys/dirent/DirType.java | 132 ++++ .../sdk/include/sys/dirent/package-info.java | 4 + .../include/sys/errno/DeadlockException.java | 45 ++ .../sys/errno/InvalidSizeException.java | 45 ++ .../sys/errno/InvalidValueException.java | 45 ++ .../sys/errno/MemoryFaultException.java | 45 ++ .../include/sys/errno/NotFoundException.java | 45 ++ .../errno/OperationNotPermittedException.java | 45 ++ .../sdk/include/sys/errno/package-info.java | 4 + .../ps5jb/sdk/include/sys/fcntl/OpenFlag.java | 155 +++++ .../sdk/include/sys/fcntl/package-info.java | 4 + .../ps5jb/sdk/include/sys/package-info.java | 4 + .../java/org/ps5jb/sdk/lib/LibKernel.java | 222 +++++++ .../java/org/ps5jb/sdk/lib/package-info.java | 5 + .../main/java/org/ps5jb/sdk/package-info.java | 21 + .../java/org/ps5jb/sdk/res/ErrorMessages.java | 96 +++ .../java/org/ps5jb/sdk/res/package-info.java | 4 + .../ps5jb/sdk/res/error_messages.properties | 21 + stubs/stubs.iml | 13 + xlet/pom.xml | 13 +- .../main/java/org/ps5jb/loader/JarLoader.java | 196 +++--- .../java/org/ps5jb/loader/RemoteLogger.java | 43 +- .../java/org/ps5jb/loader/SocketListener.java | 124 ++++ .../main/java/org/ps5jb/loader/Status.java | 53 +- xlet/xlet.iml | 43 ++ xploit/pom.xml | 85 ++- .../main/java/org/ps5jb/client/Exploit.java | 10 - .../main/java/org/ps5jb/client/JarMain.java | 181 +++--- .../main/java/org/ps5jb/client/JarUtils.java | 105 ++++ .../ps5jb/client/payloads/DumpClasses.java | 409 +++++++++++++ .../ps5jb/client/payloads/ListDirEnts.java | 79 +++ .../payloads/PrintSystemProperties.java | 35 ++ xploit/xploit.iml | 44 ++ 75 files changed, 4604 insertions(+), 272 deletions(-) create mode 100644 .idea/modules.xml create mode 100644 assembly/assembly.iml create mode 100644 bdj-tools/bdjo/bdjo.iml create mode 100644 bdj-tools/grin/grin.iml create mode 100644 bdj-tools/id/id.iml create mode 100644 bdj-tools/index/index.iml create mode 100644 bdj-tools/movieobject/movieobject.iml create mode 100644 bdj-tools/security/security.iml create mode 100644 bdj-tools/tools.iml create mode 100644 parent.iml create mode 100644 sdk/pom.xml create mode 100644 sdk/sdk.iml create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/CallContext.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/Library.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/OpenModuleAction.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/Pointer.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/SdkException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/SdkRuntimeException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/SdkSymbolNotFoundException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/core/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/ErrNo.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/UniStd.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/CpuSet.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/ErrNo.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/FCntl.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/bitset/BitSetType.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/bitset/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/cpuset/CpuLevelType.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/cpuset/CpuSetType.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/cpuset/CpuWhichType.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/cpuset/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/dirent/DirEnt.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/dirent/DirType.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/dirent/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/DeadlockException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/InvalidSizeException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/InvalidValueException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/MemoryFaultException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/NotFoundException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/OperationNotPermittedException.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/errno/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/fcntl/OpenFlag.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/fcntl/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/include/sys/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/lib/LibKernel.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/lib/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/package-info.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/res/ErrorMessages.java create mode 100644 sdk/src/main/java/org/ps5jb/sdk/res/package-info.java create mode 100644 sdk/src/main/resources/org/ps5jb/sdk/res/error_messages.properties create mode 100644 stubs/stubs.iml create mode 100644 xlet/src/main/java/org/ps5jb/loader/SocketListener.java create mode 100644 xlet/xlet.iml delete mode 100644 xploit/src/main/java/org/ps5jb/client/Exploit.java create mode 100644 xploit/src/main/java/org/ps5jb/client/JarUtils.java create mode 100644 xploit/src/main/java/org/ps5jb/client/payloads/DumpClasses.java create mode 100644 xploit/src/main/java/org/ps5jb/client/payloads/ListDirEnts.java create mode 100644 xploit/src/main/java/org/ps5jb/client/payloads/PrintSystemProperties.java create mode 100644 xploit/xploit.iml diff --git a/.idea/.gitignore b/.idea/.gitignore index 4b20528..7c0cc2c 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,5 +1,6 @@ # Default ignored files /shelf/ +/libraries/Maven__*.xml /workspace.xml /jarRepositories.xml /uiDesigner.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 522a665..7d69cea 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -14,9 +14,25 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index e4ce83d..7dad4e3 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,27 +2,21 @@ - - - - - - + - diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 7b9c3c2..01d250e 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -8,13 +8,58 @@