Rebased PSFree enhanced
Rebased PSFree Enhanced to make it easier to update the exploit
This commit is contained in:
1 parent
52d7ba4d46
commit
1246537503
72 files changed
+2106
-214
No files matched your search
@@ -0,0 +1,502 @@
|
||||
/* replace rgb colors with hex value for better compatibility */
|
||||
|
||||
body {
|
||||
font-family: system-ui, -apple-system, sans-serif, "Inter", sans-serif;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mainContainer{
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#initial-screen,
|
||||
#exploit-main-screen {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
|
||||
input,
|
||||
svg,
|
||||
label {
|
||||
margin: 0 7px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.grid{
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Custom radio button styling for better compatibility */
|
||||
input[type="radio"] {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border: 2px solid #888;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[type="radio"]:checked {
|
||||
border: none;
|
||||
background: #3B82F6;
|
||||
}
|
||||
|
||||
/* For PS4 (because its old browser) */
|
||||
.inset-0 {
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.payload {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.henSelection {
|
||||
padding: 12px 0;
|
||||
margin: 12px;
|
||||
-webkit-box-shadow: 0px -25px 8px -20px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0px -25px 8px -20px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.fwSelected{
|
||||
border-radius: 5px;
|
||||
/* border-bottom: 2px solid #2563eb; */
|
||||
background-color: #2563eb;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.h-full {
|
||||
height: 97% !important;
|
||||
max-height: 100vh !important;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
-webkit-box-shadow: 0px 17px 8px -11px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0px 17px 8px -11px rgba(0, 0, 0, 0.2);
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
/* Scrollbar design */
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* Thumb of the scrollbar */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #2563eb;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* Payloads categories colors */
|
||||
|
||||
.category-tools {
|
||||
background-color: rgba(34, 197, 94, 0.2);
|
||||
color: #4ade80;
|
||||
}
|
||||
|
||||
.category-games {
|
||||
background-color: rgba(234, 179, 8, 0.2);
|
||||
color: #facc15;
|
||||
}
|
||||
|
||||
.category-linux {
|
||||
background-color: rgba(139, 92, 246, 0.2);
|
||||
color: #a78bfa;
|
||||
}
|
||||
.category-games, .category-tools, .category-linux{
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* AI CSS to replace tailwindcss (been lazy and I don't want to write everything from scratch)*/
|
||||
*, *::before, *::after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
line-height: 1.5;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
tab-size: 4;
|
||||
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* --- Tailwind Color Palette (Approximations based on common values) --- */
|
||||
/* These are approximations. For exact matches, refer to Tailwind's default config. */
|
||||
:root {
|
||||
--color-gray-900: #111827;
|
||||
--color-gray-800: #1f2937;
|
||||
--color-gray-700: #374151;
|
||||
--color-gray-600: #4b5563;
|
||||
--color-gray-50: #f9fafb;
|
||||
--color-blue-600: #2563eb;
|
||||
--color-blue-700: #1d4ed8;
|
||||
--color-blue-500: #3b82f6;
|
||||
--color-blue-400: #60a5fa;
|
||||
--color-yellow-600: #ca8a04;
|
||||
--color-yellow-500: #eab308;
|
||||
--color-yellow-400: #facc15;
|
||||
--color-yellow-200: #fde68a;
|
||||
--color-cyan-300: #67e8f9;
|
||||
--color-white: #ffffff;
|
||||
}
|
||||
|
||||
/* --- Utility Classes Replication --- */
|
||||
|
||||
/* Background Colors */
|
||||
.bg-gray-900 { background-color: var(--color-gray-900); }
|
||||
.bg-gray-800 { background-color: var(--color-gray-800); }
|
||||
.bg-gray-700 { background-color: var(--color-gray-700); }
|
||||
.bg-gray-700\/60 { background-color: rgba(55, 65, 81, 0.6); } /* 60% opacity */
|
||||
.bg-black\/50 { background-color: rgba(0, 0, 0, 0.5); } /* 50% opacity */
|
||||
.bg-white\/5 { background-color: rgba(255, 255, 255, 0.05); } /* 5% opacity */
|
||||
.bg-white\/10 { background-color: rgba(255, 255, 255, 0.1); } /* 10% opacity */
|
||||
.bg-yellow-600\/20 { background-color: rgba(202, 138, 4, 0.2); } /* 20% opacity */
|
||||
.bg-blue-600 { background-color: var(--color-blue-600); }
|
||||
.bg-gray-50 { background-color: var(--color-gray-50); } /* Used in tabs, though often overridden */
|
||||
|
||||
|
||||
/* Text Colors */
|
||||
.text-white { color: var(--color-white); }
|
||||
.text-white\/70 { color: rgba(255, 255, 255, 0.7); } /* 70% opacity */
|
||||
.text-white\/80 { color: rgba(255, 255, 255, 0.8); } /* 80% opacity */
|
||||
.text-white\/90 { color: rgba(255, 255, 255, 0.9); } /* 90% opacity */
|
||||
.text-cyan-300 { color: var(--color-cyan-300); }
|
||||
.text-yellow-400 { color: var(--color-yellow-400); }
|
||||
.text-yellow-200 { color: var(--color-yellow-200); }
|
||||
.text-yellow-200\/80 { color: rgba(253, 230, 138, 0.8); } /* 80% opacity */
|
||||
.text-gray-600 { color: var(--color-gray-600); } /* For hover states */
|
||||
.text-blue-500 { color: var(--color-blue-500); } /* For active tabs/focus */
|
||||
|
||||
|
||||
/* Font Sizes */
|
||||
.text-xs { font-size: 0.75rem; /* 12px */ }
|
||||
.text-sm { font-size: 0.875rem; /* 14px */ }
|
||||
.text-base { font-size: 1rem; /* 16px */ }
|
||||
.text-lg { font-size: 1.125rem; /* 18px */ }
|
||||
.text-xl { font-size: 1.25rem; /* 20px */ }
|
||||
.text-2xl { font-size: 1.5rem; /* 24px */ }
|
||||
|
||||
/* Font Weights */
|
||||
.font-medium { font-weight: 500; }
|
||||
.font-semibold { font-weight: 600; }
|
||||
.font-bold { font-weight: 700; }
|
||||
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
|
||||
|
||||
/* Text Alignment */
|
||||
.text-center { text-align: center; }
|
||||
.text-start { text-align: start; }
|
||||
|
||||
/* Line Height */
|
||||
.leading-relaxed { line-height: 1.625; } /* 26px for 16px base */
|
||||
|
||||
/* User Select */
|
||||
.select-none {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* Display */
|
||||
.flex { display: flex; }
|
||||
.inline-block { display: inline-block; }
|
||||
.hidden { display: none; }
|
||||
.grid { display: grid; }
|
||||
|
||||
/* Flex Direction */
|
||||
.flex-col { flex-direction: column; }
|
||||
.flex-wrap { flex-wrap: wrap; }
|
||||
.flex-grow { flex-grow: 1; }
|
||||
|
||||
/* Alignment */
|
||||
.items-center { align-items: center; }
|
||||
.items-start { align-items: flex-start; }
|
||||
.justify-center { justify-content: center; }
|
||||
.justify-between { justify-content: space-between; }
|
||||
|
||||
/* Spacing (Padding & Margin) */
|
||||
.p-2 { padding: 0.5rem; /* 8px */ }
|
||||
.p-3 { padding: 0.75rem; /* 12px */ }
|
||||
.p-4 { padding: 1rem; /* 16px */ }
|
||||
.p-6 { padding: 1.5rem; /* 24px */ }
|
||||
.p-8 { padding: 2rem; /* 32px */ }
|
||||
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
|
||||
.px-4 { padding-left: 1rem; padding-right: 1rem; }
|
||||
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
|
||||
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
|
||||
|
||||
.mt-0\.5 { margin-top: 0.125rem; /* 2px */ }
|
||||
.mt-4 { margin-top: 1rem; /* 16px */ }
|
||||
.mt-6 { margin-top: 1.5rem; /* 24px */ }
|
||||
.mt-12 { margin-top: 3rem; /* 48px */ }
|
||||
.mb-1 { margin-bottom: 0.25rem; /* 4px */ }
|
||||
.mb-2 { margin-bottom: 0.5rem; /* 8px */ }
|
||||
.mb-4 { margin-bottom: 1rem; /* 16px */ }
|
||||
.mb-6 { margin-bottom: 1.5rem; /* 24px */ }
|
||||
.-mb-px { margin-bottom: -1px; } /* For tabs border */
|
||||
|
||||
.ml-2 { margin-left: 0.5rem; /* 8px */ }
|
||||
.ml-3 { margin-left: 0.75rem; /* 12px */ }
|
||||
/* Flowbite uses me-2 for margin-inline-end, but it's not present in your HTML classes */
|
||||
|
||||
/* Space between children */
|
||||
.space-x-1 > :not([hidden]) ~ :not([hidden]) { margin-right: calc(0.25rem * var(--tw-space-x-reverse)); margin-left: calc(0.25rem * (1 - var(--tw-space-x-reverse))); }
|
||||
.space-x-3 > :not([hidden]) ~ :not([hidden]) { margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * (1 - var(--tw-space-x-reverse))); }
|
||||
.space-x-4 > :not([hidden]) ~ :not([hidden]) { margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * (1 - var(--tw-space-x-reverse))); }
|
||||
.space-y-1 > :not([hidden]) ~ :not([hidden]) { margin-top: calc(0.25rem * (1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }
|
||||
.space-y-2 > :not([hidden]) ~ :not([hidden]) { margin-top: calc(0.5rem * (1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }
|
||||
.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: calc(0.75rem * (1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }
|
||||
|
||||
/* Gap for flex/grid */
|
||||
.gap-2 { gap: 0.5rem; /* 8px */ }
|
||||
.gap-4 { gap: 1rem; /* 16px */ }
|
||||
.gap-8 { gap: 2rem; /* 32px */ }
|
||||
|
||||
/* Sizing */
|
||||
.w-full { width: 100%; }
|
||||
.h-full { height: 100%; }
|
||||
.h-5 { height: 1.25rem; /* 20px */ }
|
||||
.h-6 { height: 1.5rem; /* 24px */ }
|
||||
.h-10 { height: 2.5rem; /* 40px */ }
|
||||
.h-32 { height: 8rem; /* 128px */ }
|
||||
.w-4 { width: 1rem; /* 16px */ }
|
||||
.w-5 { width: 1.25rem; /* 20px */ }
|
||||
.w-6 { width: 1.5rem; /* 24px */ }
|
||||
.w-10 { width: 2.5rem; /* 40px */ }
|
||||
.w-32 { width: 8rem; /* 128px */ }
|
||||
.max-w-sm { max-width: 24rem; /* 384px */ }
|
||||
.max-w-md { max-width: 28rem; /* 448px */ }
|
||||
.max-w-lg { max-width: 32rem; /* 512px */ }
|
||||
.min-h-screen { min-height: 100vh; }
|
||||
.min-h-\[150px\] { min-height: 150px; } /* Custom value */
|
||||
.max-h-\[calc\(100vh-250px\)\] { max-height: calc(100vh - 250px); } /* Custom value */
|
||||
.h-screen { height: 100vh; }
|
||||
|
||||
|
||||
/* Positioning */
|
||||
.relative { position: relative; }
|
||||
.absolute { position: absolute; }
|
||||
.fixed { position: fixed; }
|
||||
.top-6 { top: 1.5rem; /* 24px */ }
|
||||
.left-6 { left: 1.5rem; /* 24px */ }
|
||||
.bottom-10 { bottom: 2.5rem; /* 40px */ }
|
||||
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
|
||||
.z-10 { z-index: 10; }
|
||||
.z-50 { z-index: 50; }
|
||||
.z-\[9999\] { z-index: 9999; } /* Custom z-index for modals */
|
||||
.sticky { position: sticky; }
|
||||
.top-0 { top: 0; }
|
||||
|
||||
/* Borders */
|
||||
.border { border-width: 1px; border-style: solid; border-color: currentColor; }
|
||||
.border-2 { border-width: 2px; border-style: solid; border-color: currentColor; }
|
||||
/* .border-4 is not used in your HTML */
|
||||
.border-b { border-bottom-width: 1px; border-bottom-style: solid; }
|
||||
.border-white\/20 { border-color: rgba(255, 255, 255, 0.2); } /* 20% opacity */
|
||||
.border-blue-500 { border-color: var(--color-blue-500); }
|
||||
.border-yellow-500\/50 { border-color: rgba(234, 179, 8, 0.5); } /* 50% opacity */
|
||||
.border-transparent { border-color: transparent; }
|
||||
.border-gray-200 { border-color: #e5e7eb; } /* Flowbite default */
|
||||
.border-gray-700 { border-color: var(--color-gray-700); } /* Flowbite default */
|
||||
|
||||
|
||||
/* Rounded Corners */
|
||||
.rounded { border-radius: 0.25rem; /* 4px */ }
|
||||
.rounded-lg { border-radius: 0.5rem; /* 8px */ }
|
||||
.rounded-xl { border-radius: 0.75rem; /* 12px */ }
|
||||
.rounded-full { border-radius: 9999px; }
|
||||
.rounded-t-lg { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; }
|
||||
|
||||
/* Shadow */
|
||||
.shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
|
||||
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
|
||||
|
||||
/* Transitions */
|
||||
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
|
||||
.transition-colors { transition-property: background-color, border-color, color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
|
||||
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
|
||||
.duration-300 { transition-duration: 300ms; }
|
||||
.duration-500 { transition-duration: 500ms; }
|
||||
.duration-700 { transition-duration: 700ms; }
|
||||
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
|
||||
|
||||
/* Transforms */
|
||||
.transform { transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)); }
|
||||
.scale-105 { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: scale(var(--tw-scale-x), var(--tw-scale-y)); }
|
||||
|
||||
|
||||
/* Animation */
|
||||
.animate-bounce {
|
||||
animation: bounce 1s infinite;
|
||||
}
|
||||
@keyframes bounce {
|
||||
0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
|
||||
50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
|
||||
}
|
||||
|
||||
/* Cursor */
|
||||
.cursor-pointer { cursor: pointer; }
|
||||
|
||||
/* Overflow */
|
||||
.overflow-y-auto { overflow-y: auto; }
|
||||
.overflow-x-hidden { overflow-x: hidden; }
|
||||
|
||||
/* Opacity */
|
||||
.opacity-100 { opacity: 1; }
|
||||
.disabled\:opacity-50:disabled { opacity: 0.5; } /* For disabled buttons */
|
||||
|
||||
/* Backdrop Filter */
|
||||
.backdrop-blur-sm {
|
||||
backdrop-filter: blur(4px);
|
||||
-webkit-backdrop-filter: blur(4px); /* For Safari/iOS */
|
||||
}
|
||||
|
||||
/* Specific Styles for Main Container and Sections */
|
||||
.mainContainer {
|
||||
height: 100vh; /* Ensure main container takes full viewport height */
|
||||
overflow-y: scroll;
|
||||
-webkit-overflow-scrolling: touch; /* For smoother scrolling on touch devices */
|
||||
}
|
||||
|
||||
section { /* Apply to initial-screen and exploit-main-screen */
|
||||
min-height: 100vh;
|
||||
/* Ensure sections fill the viewport height to enable snapping */
|
||||
}
|
||||
|
||||
/* --- Pseudo-class Variants --- */
|
||||
|
||||
/* Hover States */
|
||||
.hover\:bg-gray-700:hover { background-color: var(--color-gray-700); }
|
||||
.hover\:text-white:hover { color: var(--color-white); }
|
||||
.hover\:bg-white\/10:hover { background-color: rgba(255, 255, 255, 0.1); }
|
||||
.hover\:scale-105:hover { transform: scale(1.05); }
|
||||
.hover\:bg-blue-700:hover { background-color: var(--color-blue-700); }
|
||||
.hover\:text-gray-600:hover { color: var(--color-gray-600); }
|
||||
.hover\:border-gray-300:hover { border-color: #d1d5db; } /* Approximation for gray-300 */
|
||||
.hover\:bg-blue-500\/40:hover { background-color: rgba(59, 130, 246, 0.4); } /* 40% opacity */
|
||||
|
||||
|
||||
/* Focus States */
|
||||
.focus-within\:border-blue-500:focus-within { border-color: var(--color-blue-500); }
|
||||
.focus\:ring-2:focus { box-shadow: 0 0 0 2px var(--color-blue-400); } /* Ring effect */
|
||||
.focus\:ring-blue-400:focus { --tw-ring-color: var(--color-blue-400); } /* Ring color */
|
||||
|
||||
/* Accent Color for Radio/Checkbox */
|
||||
.accent-blue-500 { accent-color: var(--color-blue-500); }
|
||||
|
||||
/* RTL Adjustments */
|
||||
[dir="rtl"] .rtl\:space-x-reverse > :not([hidden]) ~ :not([hidden]) {
|
||||
/* For space-x-reverse, Tailwind sets --tw-space-x-reverse: 1 */
|
||||
/* So, original margin-left becomes margin-right and vice-versa */
|
||||
margin-right: calc(0.75rem * (1 - var(--tw-space-x-reverse, 0))); /* Original margin-left 0.75rem */
|
||||
margin-left: calc(0.75rem * var(--tw-space-x-reverse, 0)); /* Original margin-right 0.75rem */
|
||||
}
|
||||
|
||||
/* --- Media Queries for Responsive Classes --- */
|
||||
|
||||
/* Small devices (sm) */
|
||||
@media (min-width: 640px) {
|
||||
.sm\:flex-row { flex-direction: row; }
|
||||
.sm\:gap-8 { gap: 2rem; }
|
||||
.sm\:w-auto { width: auto; }
|
||||
.sm\:mb-0 { margin-bottom: 0; }
|
||||
/* If you had sm:rtl:gap-8, you'd define it here too */
|
||||
/* [dir="rtl"] .sm\:rtl\:gap-8 { ... } */
|
||||
}
|
||||
|
||||
/* Medium devices (md) */
|
||||
@media (min-width: 768px) {
|
||||
.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||||
}
|
||||
|
||||
/* --- Custom classes for payload categories (from your JS) --- */
|
||||
.category-tools { border-color: #a78bfa; /* Example purple */ }
|
||||
.category-games { border-color: #f87171; /* Example red */ }
|
||||
.category-linux { border-color: #34d399; /* Example green */ }
|
||||
.category-testing { border-color: red; /* Example red */ }
|
||||
|
||||
/* --- Tab specific styling (from your HTML and Flowbite's typical behavior) --- */
|
||||
.tabs ul {
|
||||
border-color: var(--color-gray-700); /* Default border for the tab list */
|
||||
list-style: none;
|
||||
}
|
||||
.tabs button {
|
||||
border-color: transparent; /* Default for inactive tabs */
|
||||
color: rgba(255, 255, 255, 0.8); /* Default text color for inactive tabs */
|
||||
}
|
||||
.tabs button[aria-selected="true"] {
|
||||
border-color: var(--color-blue-500);
|
||||
color: var(--color-blue-500);
|
||||
}
|
||||
.tabs button:not([aria-selected="true"]):hover {
|
||||
color: var(--color-gray-600);
|
||||
border-color: #d1d5db; /* Approximation for gray-300 */
|
||||
}
|
||||
/* Manual css */
|
||||
button{
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#tools,
|
||||
#games,
|
||||
#linux,
|
||||
#testing {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#tools-tab,
|
||||
#games-tab,
|
||||
#linux-tab,
|
||||
#testing-tab {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#default-tab-content div div{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#console center{
|
||||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
svg,
|
||||
button{
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#listfw{
|
||||
display: grid;
|
||||
grid-template-columns: auto auto auto auto;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#listfw p{
|
||||
padding: 1px 5px;
|
||||
}
|
||||
|
||||
#default-tab{
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#default-tabs li{
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
#initial-screen header{
|
||||
gap: 5px;
|
||||
}
|
||||
@@ -0,0 +1,882 @@
|
||||
// @ts-nocheck
|
||||
let currentLanguage = localStorage.getItem('language') || 'en';
|
||||
let currentJbFlavor = localStorage.getItem('jailbreakFlavor') || 'GoldHEN';
|
||||
let isAutoJailbreakEnabled = localStorage.getItem('autoJailbreak');
|
||||
let selectedSecondaryPayload;
|
||||
let ps4fw = null;
|
||||
let platform = "Unknown";
|
||||
let lastScrollY = 0;
|
||||
let lastSection = localStorage.getItem('lastSection') || "initial";
|
||||
const ui = {
|
||||
mainContainer: document.querySelector('.mainContainer'),
|
||||
|
||||
// Sections
|
||||
initialScreen: document.getElementById('initial-screen'),
|
||||
exploitScreen: document.getElementById('exploit-main-screen'),
|
||||
|
||||
// Initial screen elements
|
||||
settingsBtn: document.getElementById("settings-btn"),
|
||||
aboutBtn: document.getElementById("about-btn"),
|
||||
psLogoContainer: document.getElementById('ps-logo-container'),
|
||||
clickToStartText: document.getElementById('click-to-start-text'),
|
||||
ps4FwStatus: document.getElementById('PS4FW'),
|
||||
|
||||
// Exploit screen elements
|
||||
statusMessage: document.getElementById('statusMessage'),
|
||||
consoleElement: document.getElementById('console'),
|
||||
toolsSection: document.getElementById('tools'),
|
||||
toolsTab: document.getElementById('tools-tab'),
|
||||
gamesSection: document.getElementById('games'),
|
||||
gamesTab: document.getElementById('games-tab'),
|
||||
linuxSection: document.getElementById('linux'),
|
||||
linuxTab: document.getElementById('linux-tab'),
|
||||
payloadsSectionTitle: document.getElementById('payloads-section-title'),
|
||||
exploitRunBtn: document.getElementById('exploitRun'),
|
||||
backToInitialBtn: document.getElementById('backToInitialBtn'),
|
||||
// Popups
|
||||
aboutPopupOverlay: document.getElementById('about-popup-overlay'),
|
||||
aboutPopup: document.getElementById('about-popup'),
|
||||
settingsPopupOverlay: document.getElementById('settings-popup-overlay'),
|
||||
settingsPopup: document.getElementById('settings-popup'),
|
||||
|
||||
// Settings elements
|
||||
autoJbCheckbox: document.getElementById('autoJbBox'),
|
||||
langRadios: document.querySelectorAll('#chooselang input[name="language"]'),
|
||||
};
|
||||
const languages = {
|
||||
"en": {
|
||||
"title": "PSFree Enhanced",
|
||||
"ps4FwCompatible": `PS4 FW: {ps4fw} | Compatible`,
|
||||
"ps4FwIncompatible": `PS4 FW: {ps4fw} | Incompatible`,
|
||||
"notPs4": "You are not on a PS4, platform: ",
|
||||
"clickToStart": "Click to start",
|
||||
"chooseHEN": "Choose your HEN flavor",
|
||||
"exploitStatusHeader": "Exploit status",
|
||||
"payloadsHeader": "Payloads",
|
||||
"settingsBtnTitle": "Settings",
|
||||
"aboutMenu": "About",
|
||||
"payloadsToolsHeader": "Tools",
|
||||
"payloadsGameHeader": "Game",
|
||||
"payloadsLinuxHeader": "Linux",
|
||||
"aboutPsfreeHeader": "About PSFree Enhanced",
|
||||
"aboutVersion": "Version: 1.5.1.3",
|
||||
"aboutDescription": "A web interface to jailbreak your PS4 using PSFree chained with Lapse kernel exploit.",
|
||||
"closeButton": "Close",
|
||||
"settingsPsfreeHeader": "Settings",
|
||||
"ps4FirmwareSupportedHeader": "Supported PS4 firmware",
|
||||
"autoJailbreakText": "Jailbreak automatically",
|
||||
"languageHeader": "Language",
|
||||
"englishOption": "English",
|
||||
"arabicOption": "Arabic",
|
||||
"warnings": {
|
||||
"note1": "Make sure to close all apps before running the exploit",
|
||||
"note2": "Make sure to delete cache data before running the exploit for the first time",
|
||||
"note3": "It might take you more than one time",
|
||||
},
|
||||
"backToInitialBtn": "Back",
|
||||
"alert": "Important notice",
|
||||
"waitingUserInput": "Waiting for user action",
|
||||
"jailbreakNow": "Jailbreak process will start with ",
|
||||
"cache": "Installing Cache: ",
|
||||
},
|
||||
"ar": {
|
||||
"title": "PSFree محسن",
|
||||
"ps4FwCompatible": `بلايستايشن 4 إصدار {ps4fw} | مدعوم`,
|
||||
"ps4FwIncompatible": `بلايستايشن 4 إصدار {ps4fw} | غير مدعوم`,
|
||||
"notPs4": "انت لست على جهاز بلايستايشن 4, المنصة: ",
|
||||
"clickToStart": "انقر للبدء",
|
||||
"chooseHEN": "اختر نكهتك",
|
||||
"exploitStatusHeader": "حالة الثغرة",
|
||||
"payloadsHeader": "الإضافات",
|
||||
"settingsBtnTitle": "الإعدادات",
|
||||
"aboutMenu": "حول",
|
||||
"payloadsToolsHeader": "الأدوات",
|
||||
"payloadsGameHeader": "الألعاب",
|
||||
"payloadsLinuxHeader": "لينكس",
|
||||
"aboutPsfreeHeader": "حول PSFree المحسن",
|
||||
"aboutVersion": "الإصدار: 1.5.1.3",
|
||||
"aboutDescription": "واجهة ويب لتهكير البلايستايشن 4 بإستخدام ثغرة PSFree المربوطة مع ثغرة النواة Lapse",
|
||||
"closeButton": "إغلاق",
|
||||
"settingsPsfreeHeader": "الإعدادات",
|
||||
"ps4FirmwareSupportedHeader": "إصدارات PS4 المدعومة",
|
||||
"autoJailbreakText": "تهكير تلقائي",
|
||||
"languageHeader": "اللغة",
|
||||
"arabicOption": "العربية",
|
||||
"englishOption": "الإنجليزية",
|
||||
"warnings": {
|
||||
"note1": "تأكد من إغلاق كل التطبيقات قبل تنفيذ الثغرة",
|
||||
"note2": "تأكد من ان تقوم بمسح الملفات المؤقته قبل تنفيذ الثغرة لأول مرة",
|
||||
"note3": "قم يتطلب الأمر المحاولة اكثر من مرة",
|
||||
},
|
||||
"backToInitialBtn": "الرجوع",
|
||||
"alert": "ملاحظات هامة",
|
||||
"waitingUserInput": "في انتظار التنفيذ من المستخدم",
|
||||
"jailbreakNow": "عملية تحميل الثغرة ستبدأ بإستحدام ",
|
||||
"cache": "جاري تحميل الموقع في الذاكرة المحلية: "
|
||||
}
|
||||
}
|
||||
const payloads = [
|
||||
{
|
||||
id: "App2USB",
|
||||
name: "App2USB",
|
||||
version: "1.0",
|
||||
description: "Unofficially Moves installed applications to an external USB drive.",
|
||||
author: "Stooged",
|
||||
category: "tools",
|
||||
funcName: "load_App2USB"
|
||||
},
|
||||
{
|
||||
id: "FTP",
|
||||
name: "FTP",
|
||||
version: "1.0",
|
||||
description: "Enables FTP server access for file transfers.",
|
||||
author: "xvortex",
|
||||
category: "tools",
|
||||
funcName: "load_FTP"
|
||||
},
|
||||
{
|
||||
id: "DisableUpdates",
|
||||
name: "Disable-Updates",
|
||||
version: "1.0",
|
||||
description: "Disables automatic system software updates.",
|
||||
author: "Scene",
|
||||
category: "tools",
|
||||
funcName: "load_DisableUpdates"
|
||||
},
|
||||
{
|
||||
id: "PS4Debug",
|
||||
name: "PS4-Debug",
|
||||
version: "v1.1.19",
|
||||
description: "Debugging tools for PS4.",
|
||||
author: "SiSTRo & Ctn",
|
||||
category: "tools",
|
||||
funcName: "load_PS4Debug"
|
||||
},
|
||||
{
|
||||
id: "KernelDumper",
|
||||
name: "Kernel-Dumper",
|
||||
version: "1.0",
|
||||
description: "Dumps the PS4 kernel.",
|
||||
author: "Eversion",
|
||||
category: "tools",
|
||||
funcName: "load_KernelDumper"
|
||||
},
|
||||
{
|
||||
id: "PS4DumperVTX",
|
||||
name: "PS4-Dumper-VTX",
|
||||
version: "1.0",
|
||||
description: "All-in-one game dumper for PS4.",
|
||||
author: "xvortex",
|
||||
category: "tools",
|
||||
funcName: "load_VTXDumper"
|
||||
},
|
||||
{
|
||||
id: "HistoryBlocker",
|
||||
name: "History-Blocker",
|
||||
version: "1.0",
|
||||
description: "Blocks the browser from remembering and returning to the last opened page on start. Run again to enable/disable.",
|
||||
author: "Stooged",
|
||||
category: "tools",
|
||||
funcName: "load_HistoryBlocker"
|
||||
},
|
||||
{
|
||||
id: "OrbisToolbox",
|
||||
name: "Orbis-Toolbox",
|
||||
version: "1.0",
|
||||
description: "A modification of the playstation UI to help with launching and developing homebrew..",
|
||||
author: "OSM-Made",
|
||||
category: "tools",
|
||||
funcName: "load_Orbis"
|
||||
},
|
||||
{
|
||||
id: "ToDex",
|
||||
name: "ToDex",
|
||||
version: "1.0",
|
||||
description: "Spoofs the target ID to match that of a test-kit, enables some extra options, etc.",
|
||||
author: "zecoxao",
|
||||
category: "tools",
|
||||
funcName: "load_ToDex"
|
||||
},
|
||||
{
|
||||
id: "ToDev",
|
||||
name: "ToDev",
|
||||
version: "1.0",
|
||||
description: "unlocks some PS4 Debug / TestKit Features.",
|
||||
author: "SonysNightmare",
|
||||
category: "tools",
|
||||
funcName: "load_ToDev"
|
||||
},
|
||||
{
|
||||
id: "ToKratos",
|
||||
name: "ToKratos",
|
||||
version: "1.0",
|
||||
description: "Custom firmware conversion tool.",
|
||||
author: "Various",
|
||||
category: "tools",
|
||||
funcName: "load_ToKratos"
|
||||
},
|
||||
{
|
||||
id: "ToCex",
|
||||
name: "ToCex",
|
||||
version: "1.0",
|
||||
description: "Converts console to CEX mode.",
|
||||
author: "Various",
|
||||
category: "tools",
|
||||
funcName: "load_ToCex"
|
||||
},
|
||||
{
|
||||
id: "BackupDB",
|
||||
name: "Backup-DB",
|
||||
version: "1.0",
|
||||
description: "Backs up your PS4's databases, licenses, and user data. Note this may not be useful if you have to reinitalize as your keys may change.",
|
||||
author: "Stooged",
|
||||
category: "tools",
|
||||
funcName: "load_BackupDB"
|
||||
},
|
||||
{
|
||||
id: "RestoreDB",
|
||||
name: "Restore-DB",
|
||||
version: "1.0",
|
||||
description: "Restores the data saved in the 'Backup' payload.",
|
||||
author: "Stooged",
|
||||
category: "tools",
|
||||
funcName: "load_RestoreDB"
|
||||
},
|
||||
{
|
||||
id: "RIFRenamer",
|
||||
name: "RIF-Renamer",
|
||||
version: "1.0",
|
||||
description: "Renames 'fake' RIFs to 'free' RIFs for better HEN compatibility. Use this if your PKGs only work with Mira+HEN.",
|
||||
author: "Al Azif",
|
||||
category: "tools",
|
||||
funcName: "load_RIFRenamer"
|
||||
},
|
||||
{
|
||||
id: "ExitIDU",
|
||||
name: "ExitIDU",
|
||||
version: "1.0",
|
||||
description: "Exits IDU mode and restarts the console.",
|
||||
author: "Scene Collective",
|
||||
category: "tools",
|
||||
funcName: "load_ExitIDU"
|
||||
},
|
||||
{
|
||||
id: "DisableASLR",
|
||||
name: "Disable-ASLR",
|
||||
version: "1.0",
|
||||
description: "Disables the ASLR (Address space layout randomization) to make working with memory easier/repeatable.",
|
||||
author: "Scene Collective",
|
||||
category: "tools",
|
||||
funcName: "load_DisableASLR"
|
||||
},
|
||||
{
|
||||
id: "ModuleDumper",
|
||||
name: "Module-Dumper",
|
||||
version: "1.0",
|
||||
description: "Dumps the decrypted modules from /system, /system_ex, /update and the root of the filesystem to a USB device.",
|
||||
author: "SocraticBliss",
|
||||
category: "tools",
|
||||
funcName: "load_ModuleDumper"
|
||||
},
|
||||
{
|
||||
id: "WebRTE",
|
||||
name: "WebRTE",
|
||||
version: "1.0",
|
||||
description: "Web Realtime Trainer Engine",
|
||||
author: "golden",
|
||||
category: "tools",
|
||||
funcName: "load_WebrRTE"
|
||||
},
|
||||
{
|
||||
id: "PermanentUART",
|
||||
name: "Permanent-UART",
|
||||
version: "1.0",
|
||||
description: "Enabled hardware based UART without a kernel patch, persists though updates.",
|
||||
author: "JTAG7371",
|
||||
category: "tools",
|
||||
funcName: "load_PermanentUART"
|
||||
},
|
||||
{
|
||||
id: "PUPDecrypt",
|
||||
name: "PUP-Decrypt",
|
||||
version: "1.0",
|
||||
description: "Payload to decrypt the contents of a firmware update file (PUP) on the PS4",
|
||||
author: "andy-man",
|
||||
category: "tools",
|
||||
funcName: "load_PUPDecrypt"
|
||||
},
|
||||
{
|
||||
id: "GTAVArabicGuy127",
|
||||
name: "GTAV-ArabicGuy-1.27",
|
||||
version: "1.27",
|
||||
description: "GTA V mod menu by ArabicGuy.",
|
||||
author: "ArabicGuy",
|
||||
category: "games",
|
||||
funcName: "load_GTAArbic"
|
||||
},
|
||||
{
|
||||
id: "GTAVArabicGuy132",
|
||||
name: "GTAV-ArabicGuy-1.32",
|
||||
version: "1.32",
|
||||
description: "GTA V mod menu by ArabicGuy.",
|
||||
author: "ArabicGuy",
|
||||
category: "games",
|
||||
funcName: "load_GTAArbic3"
|
||||
},
|
||||
{
|
||||
id: "GTAVArabicGuy133",
|
||||
name: "GTAV-ArabicGuy-1.33",
|
||||
version: "1.33",
|
||||
description: "GTA V mod menu by ArabicGuy.",
|
||||
author: "ArabicGuy",
|
||||
category: "games",
|
||||
funcName: "load_GTAArbic33"
|
||||
},
|
||||
{
|
||||
id: "GTAVBeefQueefMod133",
|
||||
name: "GTAV-BeefQueefMod-1.33",
|
||||
version: "1.33",
|
||||
description: "GTA V mod menu by BeefQueef.",
|
||||
author: "BeefQueef",
|
||||
category: "games",
|
||||
funcName: "load_GTABQ133"
|
||||
},
|
||||
{
|
||||
id: "GTAVBeefQueefMod134",
|
||||
name: "GTAV-BeefQueefMod-1.34",
|
||||
version: "1.34",
|
||||
description: "GTA V mod menu by BeefQueef.",
|
||||
author: "BeefQueef",
|
||||
category: "games",
|
||||
funcName: "load_GTABQ134"
|
||||
},
|
||||
{
|
||||
id: "GTAVBeefQueefMod138",
|
||||
name: "GTAV-BeefQueefMod-1.38",
|
||||
version: "1.38",
|
||||
description: "GTA V mod menu by BeefQueef.",
|
||||
author: "BeefQueef",
|
||||
category: "games",
|
||||
funcName: "load_GTABQ138"
|
||||
},
|
||||
{
|
||||
id: "GTAVWildeModz132",
|
||||
name: "GTAV-WildeModz-1.32",
|
||||
version: "1.32",
|
||||
description: "GTA V mod menu by WildeModz.",
|
||||
author: "WildeModz",
|
||||
category: "games",
|
||||
funcName: "load_GTAWM132"
|
||||
},
|
||||
{
|
||||
id: "GTAVWildeModz133",
|
||||
name: "GTAV-WildeModz-1.33",
|
||||
version: "1.33",
|
||||
description: "GTA V mod menu by WildeModz.",
|
||||
author: "WildeModz",
|
||||
category: "games",
|
||||
funcName: "load_GTAWM133"
|
||||
},
|
||||
{
|
||||
id: "GTAVWildeModz138",
|
||||
name: "GTAV-WildeModz-1.38",
|
||||
version: "1.38",
|
||||
description: "GTA V mod menu by WildeModz.",
|
||||
author: "WildeModz",
|
||||
category: "games",
|
||||
funcName: "load_GTAWM138"
|
||||
},
|
||||
{
|
||||
id: "RDR2OystersMenu100",
|
||||
name: "RDR2-OystersMenu-1.00",
|
||||
version: "1.00",
|
||||
description: "RDR2 mod menu by Oysters.",
|
||||
author: "Oysters",
|
||||
category: "games",
|
||||
funcName: "load_Oysters100"
|
||||
},
|
||||
{
|
||||
id: "RDR2OystersMenu113",
|
||||
name: "RDR2-OystersMenu-1.13",
|
||||
version: "1.13",
|
||||
description: "RDR2 mod menu by Oysters.",
|
||||
author: "Oysters",
|
||||
category: "games",
|
||||
funcName: "load_Oysters113"
|
||||
},
|
||||
{
|
||||
id: "RDR2OystersMenu119",
|
||||
name: "RDR2-OystersMenu-1.19",
|
||||
version: "1.19",
|
||||
description: "RDR2 mod menu by Oysters.",
|
||||
author: "Oysters",
|
||||
category: "games",
|
||||
funcName: "load_Oysters119"
|
||||
},
|
||||
{
|
||||
id: "RDR2OystersMenu124",
|
||||
name: "RDR2-OystersMenu-1.24",
|
||||
version: "1.24",
|
||||
description: "RDR2 mod menu by Oysters.",
|
||||
author: "Oysters",
|
||||
category: "games",
|
||||
funcName: "load_Oysters124"
|
||||
},
|
||||
{
|
||||
id: "RDR2OystersMenu129",
|
||||
name: "RDR2-OystersMenu-1.29",
|
||||
version: "1.29",
|
||||
description: "RDR2 mod menu by Oysters.",
|
||||
author: "Oysters",
|
||||
category: "games",
|
||||
funcName: "load_Oysters129"
|
||||
},
|
||||
{
|
||||
id: "Linux1GB",
|
||||
name: "Linux-1GB",
|
||||
version: "1.0",
|
||||
description: "Linux payload for PS4",
|
||||
author: "Nazky",
|
||||
category: "linux",
|
||||
funcName: "load_Linux"
|
||||
},
|
||||
{
|
||||
id: "Linux2GB",
|
||||
name: "Linux-2GB",
|
||||
version: "1.0",
|
||||
description: "Linux payload for PS4",
|
||||
author: "Nazky",
|
||||
category: "linux",
|
||||
funcName: "load_Linux2gb"
|
||||
},
|
||||
{
|
||||
id: "Linux3GB",
|
||||
name: "Linux-3GB",
|
||||
version: "1.0",
|
||||
description: "Loads a 3GB Linux payload for dual-booting.",
|
||||
author: "Nazky",
|
||||
category: "linux",
|
||||
funcName: "load_Linux3gb"
|
||||
},
|
||||
{
|
||||
id: "Linux4GB",
|
||||
name: "Linux-4GB",
|
||||
version: "1.0",
|
||||
description: "Loads a 4GB Linux payload for dual-booting.",
|
||||
author: "Nazky",
|
||||
category: "linux",
|
||||
funcName: "load_Linux4gb"
|
||||
},
|
||||
{
|
||||
id: "Linux5GB",
|
||||
name: "Linux-5GB",
|
||||
version: "1.0",
|
||||
description: "Loads a 5GB Linux payload for dual-booting.",
|
||||
author: "Nazky",
|
||||
category: "linux",
|
||||
funcName: "load_Linux5gb"
|
||||
},
|
||||
];
|
||||
|
||||
// Events
|
||||
// Scroll snap for the PS4
|
||||
ui.mainContainer.addEventListener('scroll', () => {
|
||||
if (ui.mainContainer.scrollTop > lastScrollY) {
|
||||
// scrolling down
|
||||
if (lastSection !== "exploit") {
|
||||
ui.exploitScreen.scrollIntoView({ block: "end" });
|
||||
lastSection = "exploit";
|
||||
}
|
||||
} else if (ui.mainContainer.scrollTop < lastScrollY) {
|
||||
// scrolling up
|
||||
if (lastSection !== "initial") {
|
||||
ui.initialScreen.scrollIntoView({ block: "end" });
|
||||
lastSection = "initial";
|
||||
}
|
||||
}
|
||||
lastScrollY = ui.mainContainer.scrollTop;
|
||||
});
|
||||
|
||||
// Launch jailbreak
|
||||
ui.exploitRunBtn.addEventListener('click', () => {
|
||||
jailbreak();
|
||||
});
|
||||
|
||||
ui.psLogoContainer.addEventListener('click', () => {
|
||||
jailbreak()
|
||||
ui.exploitScreen.scrollIntoView({ block: "end" })
|
||||
});
|
||||
|
||||
// Auto jailbreak
|
||||
ui.autoJbCheckbox.addEventListener('change', (e) => {
|
||||
isAutoJailbreakEnabled = e.target.checked;
|
||||
localStorage.setItem('autoJailbreak', e.target.checked);
|
||||
if (e.target.checked) {
|
||||
if (confirm(languages[currentLanguage].jailbreakNow + currentJbFlavor)) {
|
||||
settingsPopup()
|
||||
ui.exploitScreen.scrollIntoView({ block: "end" })
|
||||
jailbreak();
|
||||
}
|
||||
}
|
||||
});
|
||||
// tabs switching
|
||||
ui.toolsTab.addEventListener('click', () =>{
|
||||
if (ui.toolsSection.classList.contains('hidden')){
|
||||
ui.toolsSection.classList.remove('hidden');
|
||||
ui.linuxSection.classList.add('hidden');
|
||||
ui.gamesSection.classList.add('hidden');
|
||||
}
|
||||
})
|
||||
|
||||
ui.linuxTab.addEventListener('click', () =>{
|
||||
if (ui.linuxSection.classList.contains('hidden')){
|
||||
ui.toolsSection.classList.add('hidden');
|
||||
ui.linuxSection.classList.remove('hidden');
|
||||
ui.gamesSection.classList.add('hidden');
|
||||
}
|
||||
})
|
||||
|
||||
ui.gamesTab.addEventListener('click', () =>{
|
||||
if (ui.gamesSection.classList.contains('hidden')){
|
||||
ui.toolsSection.classList.add('hidden');
|
||||
ui.linuxSection.classList.add('hidden');
|
||||
ui.gamesSection.classList.remove('hidden');
|
||||
}
|
||||
})
|
||||
|
||||
// popups
|
||||
function aboutPopup() {
|
||||
ui.aboutPopupOverlay.classList.toggle('hidden');
|
||||
}
|
||||
|
||||
function settingsPopup() {
|
||||
ui.settingsPopupOverlay.classList.toggle('hidden');
|
||||
}
|
||||
|
||||
|
||||
// Jailbreak-related functions
|
||||
async function jailbreak() {
|
||||
try {
|
||||
const modules = await loadMultipleModules([
|
||||
'../payloads/Jailbreak.js',
|
||||
'../../src/alert.mjs'
|
||||
]);
|
||||
const JailbreakModule = modules[0];
|
||||
|
||||
if (currentJbFlavor == 'GoldHEN') {
|
||||
if (JailbreakModule && typeof JailbreakModule.GoldHEN === 'function') {
|
||||
JailbreakModule.GoldHEN();
|
||||
} else {
|
||||
alert("GoldHEN function not found in Jailbreak.js module");
|
||||
}
|
||||
} else {
|
||||
if (JailbreakModule && typeof JailbreakModule.HEN === 'function') {
|
||||
JailbreakModule.HEN();
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Failed to jailbreak:", e);
|
||||
}
|
||||
}
|
||||
|
||||
async function loadMultipleModules(files) {
|
||||
try {
|
||||
// Dynamically import all modules
|
||||
const modules = await Promise.all(files.map(file => import(file)));
|
||||
return modules; // array of imported modules
|
||||
} catch (error) {
|
||||
console.error("Error loading modules:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async function binloader() {
|
||||
try {
|
||||
sessionStorage.setItem('binloader', 1);
|
||||
const modules = await loadMultipleModules([
|
||||
'../../src/alert.mjs'
|
||||
]);
|
||||
console.log("All modules are loaded!");
|
||||
|
||||
const goldhenModule = modules[0];
|
||||
if (goldhenModule && typeof goldhenModule.runBinLoader === 'function') {
|
||||
goldhenModule.runBinLoader();
|
||||
} else {
|
||||
console.error("GoldHEN function not found in GoldHEN.js module");
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Failed to jailbreak:", e);
|
||||
}
|
||||
}
|
||||
function isHttps() {
|
||||
return window.location.protocol === 'https:';
|
||||
}
|
||||
|
||||
async function Loadpayloads(payload) {
|
||||
try {
|
||||
let modules;
|
||||
sessionStorage.removeItem('binloader');
|
||||
if (isHttps()) {
|
||||
modules = await loadMultipleModules([
|
||||
'../payloads/payloads.js',
|
||||
'../../src/alert.mjs'
|
||||
]);
|
||||
} else {
|
||||
modules = await loadMultipleModules([
|
||||
'../payloads/payloads.js'
|
||||
]);
|
||||
}
|
||||
console.log("All modules are loaded!");
|
||||
|
||||
const payloadModule = modules[0];
|
||||
if (payloadModule && typeof payloadModule[payload] === 'function') {
|
||||
payloadModule[payload]();
|
||||
} else {
|
||||
alert(`${payload} function not found in payloads.js module`);
|
||||
}
|
||||
} catch (e) {
|
||||
alert(`Failed to load ${payload}:`, e);
|
||||
}
|
||||
}
|
||||
|
||||
function loadAutoJb() {
|
||||
ui.autoJbCheckbox.checked = isAutoJailbreakEnabled == 'true' ? true : false;
|
||||
if (isAutoJailbreakEnabled == 'true') {
|
||||
if (confirm(languages[currentLanguage].jailbreakNow + currentJbFlavor)) {
|
||||
ui.exploitScreen.scrollIntoView({ block: "end" })
|
||||
jailbreak();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function loadLanguage() {
|
||||
var language = localStorage.getItem("language");
|
||||
if (language == null) {
|
||||
document.querySelector('input[name=language][value="en"]').checked = true;
|
||||
} else document.querySelector(`input[name="language"][value="${language}`).checked = true;
|
||||
}
|
||||
|
||||
// Update UI langauge
|
||||
function applyLanguage(lang) {
|
||||
currentLanguage = lang;
|
||||
const strings = languages[currentLanguage];
|
||||
|
||||
if (!strings) {
|
||||
console.error(`Language list ${lang} is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
document.title = strings.title || "PSFree Enhanced";
|
||||
document.dir = (currentLanguage === 'ar') ? 'rtl' : 'ltr';
|
||||
document.lang = currentLanguage;
|
||||
|
||||
|
||||
// Check if ps4 is supported
|
||||
if (ps4fw === null) {
|
||||
ui.ps4FwStatus.textContent = strings.notPs4 + platform;
|
||||
ui.ps4FwStatus.style.color = 'red';
|
||||
} else if (ps4fw <= 9.60) {
|
||||
ui.ps4FwStatus.textContent = strings.ps4FwCompatible.replace('{ps4fw}', ps4fw);
|
||||
ui.ps4FwStatus.style.color = 'green';
|
||||
} else {
|
||||
ui.ps4FwStatus.textContent = strings.ps4FwIncompatible.replace('{ps4fw}', ps4fw);
|
||||
ui.ps4FwStatus.style.color = 'red';
|
||||
}
|
||||
// Main screen elements
|
||||
ui.settingsBtn.title = strings.settingsBtnTitle;
|
||||
ui.clickToStartText.textContent = strings.clickToStart;
|
||||
document.querySelector('#choosejb-initial h3').textContent = strings.chooseHEN;
|
||||
|
||||
// About us popup
|
||||
ui.aboutPopup.querySelector('h2').textContent = strings.aboutPsfreeHeader;
|
||||
ui.aboutPopup.querySelectorAll('p')[0].textContent = strings.aboutVersion;
|
||||
ui.aboutPopup.querySelectorAll('p')[1].textContent = strings.aboutDescription;
|
||||
ui.aboutPopup.querySelector('#PS4FWOK h3').textContent = strings.ps4FirmwareSupportedHeader;
|
||||
ui.aboutPopup.querySelector('#close-about').textContent = strings.closeButton;
|
||||
|
||||
// Settings popup
|
||||
ui.settingsPopup.querySelector('h2').textContent = strings.settingsPsfreeHeader;
|
||||
ui.settingsPopup.querySelector('#autojbchkb p').textContent = strings.autoJailbreakText;
|
||||
ui.settingsPopup.querySelector('#chooselang h3').textContent = strings.languageHeader;
|
||||
ui.settingsPopup.querySelector('#enLang').textContent = strings.englishOption;
|
||||
ui.settingsPopup.querySelector('#arLang').textContent = strings.arabicOption;
|
||||
ui.settingsPopup.querySelector('#close-settings').textContent = strings.closeButton;
|
||||
|
||||
// Warning element (Exploit section)
|
||||
const warningHeader = document.querySelector('#warningBox p');
|
||||
const warningNotes = document.querySelector('#warningBox ul');
|
||||
if (warningNotes) {
|
||||
const items = warningNotes.querySelectorAll('li');
|
||||
if (items[0]) items[0].textContent = strings.warnings.note1;
|
||||
if (items[1]) items[1].textContent = strings.warnings.note2;
|
||||
if (items[2]) items[2].textContent = strings.warnings.note3;
|
||||
}
|
||||
warningHeader.textContent = strings.alert;
|
||||
|
||||
// Buttons
|
||||
ui.backToInitialBtn.textContent = strings.backToInitialBtn;
|
||||
ui.exploitRunBtn.title = strings.clickToStart;
|
||||
ui.aboutBtn.title = strings.aboutMenu;
|
||||
|
||||
document.querySelector('#exploit-status-panel h2').textContent = strings.exploitStatusHeader;
|
||||
ui.payloadsSectionTitle.textContent = strings.payloadsHeader;
|
||||
ui.toolsTab.textContent = strings.payloadsToolsHeader;
|
||||
ui.linuxTab.textContent = strings.payloadsLinuxHeader;
|
||||
ui.gamesTab.textContent = strings.payloadsGameHeader;
|
||||
ui.consoleElement.querySelector('center').textContent = strings.waitingUserInput;
|
||||
}
|
||||
|
||||
|
||||
function saveJbFlavor(name, value) {
|
||||
localStorage.setItem("jailbreakFlavor", value);
|
||||
// Apply hen selector to both inputs
|
||||
document.querySelector(`input[name="${name == "hen" ? "hen2" : "hen"}"][value="${value}"]`).checked = true;
|
||||
currentJbFlavor = value;
|
||||
};
|
||||
|
||||
function loadJbFlavor() {
|
||||
const flavor = currentJbFlavor || 'GoldHEN';
|
||||
const henRadio = document.querySelector(`input[name="hen"][value="${flavor}"]`);
|
||||
const hen2Radio = document.querySelector(`input[name="hen2"][value="${flavor}"]`);
|
||||
|
||||
if (henRadio && hen2Radio) {
|
||||
henRadio.checked = true;
|
||||
hen2Radio.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
function saveLanguage() {
|
||||
const language = document.querySelector('input[name="language"]:checked').value;
|
||||
localStorage.setItem('language', language);
|
||||
currentLanguage = language;
|
||||
applyLanguage(language);
|
||||
};
|
||||
|
||||
function CheckFW() {
|
||||
const userAgent = navigator.userAgent;
|
||||
const ps4Regex = /PlayStation 4/;
|
||||
let fwVersion = navigator.userAgent.substring(navigator.userAgent.indexOf('5.0 (') + 19, navigator.userAgent.indexOf(') Apple')).replace("layStation 4/","");
|
||||
const elementsToHide = [
|
||||
'ps-logo-container', 'choosejb-initial', 'exploit-main-screen', 'scrollDown',
|
||||
'payloadsbtn', 'autojbchkb', 'click-to-start-text'
|
||||
];
|
||||
|
||||
if (ps4Regex.test(userAgent)) {
|
||||
if (fwVersion >= 7.00 && fwVersion <= 9.60) {
|
||||
document.getElementById('PS4FW').style.color = 'green';
|
||||
} else {
|
||||
document.getElementById('PS4FW').style.color = 'red';
|
||||
|
||||
elementsToHide.forEach(id => {
|
||||
const el = document.getElementById(id);
|
||||
if (el) el.style.display = 'none';
|
||||
});
|
||||
}
|
||||
ps4fw = fwVersion;
|
||||
let fwElement = "fw"+fwVersion.replace('.','');
|
||||
document.getElementById(fwElement).classList.add('fwSelected');
|
||||
} else {
|
||||
platform = 'Unknown platform';
|
||||
|
||||
if (/Android/.test(userAgent)) platform = 'Android';
|
||||
else if (/iPhone|iPad|iPod/.test(userAgent)) platform = 'iOS';
|
||||
else if (/Macintosh/.test(userAgent)) platform = 'MacOS';
|
||||
else if (/Windows/.test(userAgent)) platform = 'Windows';
|
||||
else if (/Linux/.test(userAgent)) platform = 'Linux';
|
||||
|
||||
document.getElementById('PS4FW').style.color = 'red';
|
||||
// elementsToHide.forEach(id => {
|
||||
// const el = document.getElementById(id);
|
||||
// if (el) el.style.display = 'none';
|
||||
// });
|
||||
}
|
||||
}
|
||||
|
||||
// Load settings
|
||||
function loadSettings() {
|
||||
try {
|
||||
CheckFW();
|
||||
loadJbFlavor();
|
||||
loadLanguage();
|
||||
applyLanguage(currentLanguage);
|
||||
renderPayloads();
|
||||
loadAutoJb();
|
||||
} catch (e) {
|
||||
alert("Error in loadSettings: " + e.message);
|
||||
}
|
||||
}
|
||||
|
||||
function getPayloadCategoryClass(category) {
|
||||
switch (category) {
|
||||
case 'tools': return 'category-tools';
|
||||
case 'games': return 'category-games';
|
||||
case 'linux': return 'category-linux';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
function renderPayloads() {
|
||||
const payloadsToRender = payloads;
|
||||
|
||||
payloadsToRender.forEach(payload => {
|
||||
const payloadCard = document.createElement('div');
|
||||
payloadCard.id = payload.id;
|
||||
payloadCard.onclick = () => Loadpayloads(payload.funcName);
|
||||
payloadCard.className = `payload payload-card relative group cursor-pointer transition-all duration-300 hover:scale-105`;
|
||||
payloadCard.dataset.payloadId = payload.id;
|
||||
|
||||
payloadCard.innerHTML = `
|
||||
<button style="width: 100%;">
|
||||
<div class="bg-gray-800 border border-white/20 rounded-xl p-6 h-full">
|
||||
<div class="flex items-start justify-between mb-4">
|
||||
<div class="flex items-center space-x-3">
|
||||
<div class="text-2xl"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-gear" viewBox="0 0 16 16"> <path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"/> <path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"/> </svg></div>
|
||||
<div>
|
||||
<h3 class="text-start font-semibold text-white text-lg">${payload.name}</h3>
|
||||
<p class="text-start text-cyan-300 text-sm">${payload.version}</p>
|
||||
</div>
|
||||
</div>
|
||||
${payload.isRecommended ? `<span class="px-2 py-1 rounded-full text-xs border">${languages[currentLanguage] ? languages[currentLanguage].recommendedLabel : 'Recommended'}</span>` : ''}
|
||||
<span class="px-2 py-1 rounded-full text-xs border ${getPayloadCategoryClass(payload.category)}">
|
||||
${payload.category}
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-start text-white/70 text-sm leading-relaxed">${payload.description}</p>
|
||||
<div class="flex items-center justify-between text-xs text-white/60">
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
`;
|
||||
switch (payload.category) {
|
||||
case "tools":
|
||||
ui.toolsSection.appendChild(payloadCard);
|
||||
break;
|
||||
case "games":
|
||||
ui.gamesSection.appendChild(payloadCard);
|
||||
break;
|
||||
case "linux":
|
||||
ui.linuxSection.appendChild(payloadCard);
|
||||
break;
|
||||
default:
|
||||
ui.toolsSection.appendChild(payloadCard);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Handling cache
|
||||
function DLProgress(e) {
|
||||
Percent = (Math.round(e.loaded / e.total * 100));
|
||||
document.title = languages[currentLanguage].title + " " + Percent + "%";
|
||||
}
|
||||
function DisplayCacheProgress() {
|
||||
setTimeout(function () {
|
||||
document.title = "\u2713";
|
||||
}, 1000);
|
||||
setTimeout(function () {
|
||||
window.location.href =
|
||||
document.referrer;
|
||||
}, 3000);
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
export function GoldHEN(ps4fw) {
|
||||
window.payload_path = "./includes/payloads/GoldHEN/goldhen_v2.4b18.5.bin";
|
||||
}
|
||||
|
||||
export function testGoldHEN() {
|
||||
window.payload_path = './includes/payloads/testing/goldhen_2.4b18.5_allfw_test.bin';
|
||||
}
|
||||
|
||||
export function HEN() {
|
||||
window.payload_path = './includes/payloads/HEN/HEN.bin';
|
||||
}
|
||||
@@ -0,0 +1,285 @@
|
||||
//------BIG THANKS TO SISTRO FOR THIS !!!!!--------
|
||||
|
||||
var getPayload = function(payload, onLoadEndCallback) {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('GET', payload);
|
||||
req.send();
|
||||
req.responseType = "arraybuffer";
|
||||
req.onload = function (event) {
|
||||
if (onLoadEndCallback) onLoadEndCallback(req, event);
|
||||
};
|
||||
}
|
||||
|
||||
var sendPayload = function(url, data, onLoadEndCallback) {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("POST", url, true);
|
||||
req.send(data);
|
||||
|
||||
req.onload = function (event) {
|
||||
if (onLoadEndCallback) onLoadEndCallback(req, event);
|
||||
};
|
||||
}
|
||||
|
||||
//Load payloads with GoldHEN
|
||||
|
||||
function Loadpayloadlocal(PLfile){ //Loading Payload via Payload Param.
|
||||
var PS4IP = "127.0.0.1";
|
||||
|
||||
// First do an initial check to see if the BinLoader server is running, ready or busy.
|
||||
var req = new XMLHttpRequest();
|
||||
if (PS4IP == "127.0.0.1") {
|
||||
req.open("POST", `http://${PS4IP}:9090/status`);
|
||||
} else {
|
||||
req.open("GET", `http://${PS4IP}:9090/status`);
|
||||
}
|
||||
req.send();
|
||||
req.onerror = function(){
|
||||
//alert("Cannot Load Payload Because The BinLoader Server Is Not Running");//<<If server is not running, alert message.
|
||||
//ServerStatus("Cannot Load Payload Because The BinLoader Server Is Not Running");
|
||||
import('../../src/alert.mjs');
|
||||
Loadpayloadonline(PLfile);
|
||||
return;
|
||||
};
|
||||
req.onload = function(){
|
||||
var responseJson = JSON.parse(req.responseText);
|
||||
if (responseJson.status=="ready"){
|
||||
getPayload(PLfile, function (req) {
|
||||
if ((req.status === 200 || req.status === 304) && req.response) {
|
||||
//Sending bins via IP POST Method
|
||||
sendPayload(`http://${PS4IP}:9090`, req.response, function (req) {
|
||||
if (req.status === 200) {
|
||||
//alert("Payload sent !");
|
||||
}else{
|
||||
//alert('Payload not sent !');
|
||||
setTimeout(() => {
|
||||
import('../../src/alert.mjs');
|
||||
Loadpayloadonline(PLfile);
|
||||
}, 3000); // 3 seconds delay
|
||||
return;
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
} else {
|
||||
alert("Cannot Load Payload Because The BinLoader Server Is Busy");//<<If server is busy, alert message.
|
||||
return;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
|
||||
//------Payloads--------
|
||||
|
||||
// Load Payloads with exploit
|
||||
|
||||
function Loadpayloadonline(PLfile) {
|
||||
window.payload_path = PLfile;
|
||||
}
|
||||
|
||||
// Payloads
|
||||
|
||||
export function HEN(){
|
||||
Loadpayloadlocal("./includes/payloads/HEN/HEN.bin");
|
||||
}
|
||||
|
||||
// Dumpers
|
||||
|
||||
export function load_AppDumper(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Dumper/appdumper.bin");
|
||||
}
|
||||
|
||||
export function load_KernelDumper(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Dumper/kerneldumper.bin");
|
||||
}
|
||||
|
||||
export function load_VTXDumper(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Dumper/ps4-dumper-vtx-900.bin");
|
||||
}
|
||||
|
||||
export function load_ModuleDumper(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Dumper/moduledumper.bin");
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Tools
|
||||
|
||||
export function load_PS4Debug(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/ps4debug.bin");
|
||||
}
|
||||
|
||||
export function load_App2USB(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/app2usb.bin");
|
||||
}
|
||||
|
||||
|
||||
export function load_BackupDB(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/backupdb.bin");
|
||||
}
|
||||
|
||||
export function load_RestoreDB(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/exitidu.bin");
|
||||
}
|
||||
|
||||
export function load_DisableASLR(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/disableaslr.bin");
|
||||
}
|
||||
|
||||
export function load_DisableUpdates(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/disableupdates.bin");
|
||||
}
|
||||
|
||||
export function load_EnableUpdates(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/enbaleupdates.bin");
|
||||
}
|
||||
|
||||
export function load_ExitIDU(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/exitidu.bin");
|
||||
}
|
||||
|
||||
export function load_FTP(){
|
||||
Loadpayloadlocal(".includes/payloads//Bins/Tools/ftp.bin");
|
||||
}
|
||||
|
||||
export function load_HistoryBlocker(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/historyblocker.bin");
|
||||
}
|
||||
|
||||
export function load_RIFRenamer(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/rifrenamer.bin");
|
||||
}
|
||||
|
||||
export function load_Orbis(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/Orbis-Toolbox-900.bin");
|
||||
}
|
||||
|
||||
export function load_WebrRTE(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/WebRTE_900.bin");
|
||||
}
|
||||
|
||||
export function load_ToDex(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/ToDex.bin");
|
||||
}
|
||||
|
||||
export function load_ToDev(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/ToDev.bin");
|
||||
}
|
||||
|
||||
export function load_ToKratos(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/ToKratos.bin");
|
||||
}
|
||||
|
||||
export function load_ToCex(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/ToCex.bin");
|
||||
}
|
||||
|
||||
export function load_KernelClock(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/kernel-clock.bin");
|
||||
}
|
||||
|
||||
export function load_PermanentUART(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/permanent-uart.bin");
|
||||
}
|
||||
|
||||
export function load_PUPDecrypt(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/pup-decrypt.bin");
|
||||
}
|
||||
|
||||
// Linux
|
||||
|
||||
export function load_Linux(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900.bin");
|
||||
}
|
||||
|
||||
export function load_Linux2gb(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-2gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux3gb(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-3gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux4gb(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-4gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux5gb(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-5gb.bin");
|
||||
}
|
||||
|
||||
|
||||
// Mod Menu
|
||||
|
||||
// GTA
|
||||
|
||||
export function load_GTAArbic127(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/ArabicGuy-1.0-1.27-rfoodxmodz.bin");
|
||||
}
|
||||
|
||||
export function load_GTAArbic132(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/ArabicGuy-1.0-1.32-rfoodxmodz.bin");
|
||||
}
|
||||
|
||||
export function load_GTAArbic133(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/ArabicGuy-1.0-1.33-rfoodxmodz.bin");
|
||||
}
|
||||
|
||||
|
||||
export function load_GTABQ133(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/BeefQueefMod-1.33.bin");
|
||||
}
|
||||
|
||||
export function load_GTABQ134(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/BeefQueefMod-1.34.bin");
|
||||
}
|
||||
|
||||
export function load_GTABQ138(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/BeefQueefMod-1.38.bin");
|
||||
}
|
||||
|
||||
export function load_GTAWM132(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/WildeModz-1.32.bin");
|
||||
}
|
||||
|
||||
export function load_GTAWM134(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/WildeModz-1.34.bin");
|
||||
}
|
||||
|
||||
export function load_GTAWM138(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/GTA/WildeModz-1.38.bin");
|
||||
}
|
||||
|
||||
// RDR2
|
||||
|
||||
export function load_Oysters100(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/RDR2/OystersMenu-1.00-FREE.bin");
|
||||
}
|
||||
|
||||
|
||||
export function load_Oysters113(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/RDR2/OystersMenu-1.13-FREE.bin");
|
||||
}
|
||||
|
||||
export function load_Oysters119(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/RDR2/OystersMenu-1.19-FREE.bin");
|
||||
}
|
||||
|
||||
export function load_Oysters124(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/RDR2/OystersMenu-1.24-FREE.bin");
|
||||
}
|
||||
|
||||
export function load_Oysters129(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/RDR2/OystersMenu-1.29-FREE.bin");
|
||||
}
|
||||
|
||||
// AppCache
|
||||
|
||||
export function load_AppCache(){
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/appcache-install.bin");
|
||||
}
|
||||
|
||||
// Testing tools
|
||||
export function load_ps4debugTest() {
|
||||
Loadpayloadlocal("./testing/ps4debug_v1.1.19.bin");
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user