Rebased PSFree enhanced

Rebased PSFree Enhanced to make it easier to update the exploit
This commit is contained in:
ArabPixel
2025-08-09 14:17:05 +02:00
parent 52d7ba4d46
commit 1246537503
72 changed files with 2106 additions and 214 deletions

502
includes/index.css Normal file
View File

@@ -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;
}

882
includes/js/index.js Normal file
View File

@@ -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.

View File

@@ -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';
}

View File

@@ -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.