feat:Support for loading payloads using GoldHEN
This commit adds the ability to load payloads using GoldHENs BinLoader by visiting the mirrored http host. Improvements in blocking payloads loading if your firmware is unsupported..
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
CACHE MANIFEST
|
||||
# v2
|
||||
# Generated on 2025-09-15 22:40:21.616759
|
||||
# v1
|
||||
# Generated on 2025-10-03 09:54:36.120085
|
||||
|
||||
CACHE:
|
||||
index.html
|
||||
@@ -31,8 +31,12 @@ includes/payloads/Bins/RDR2/OystersMenu-1.13-FREE.bin
|
||||
includes/payloads/Bins/RDR2/OystersMenu-1.19-FREE.bin
|
||||
includes/payloads/Bins/RDR2/OystersMenu-1.24-FREE.bin
|
||||
includes/payloads/Bins/RDR2/OystersMenu-1.29-FREE.bin
|
||||
includes/payloads/Bins/Tools/appcache-install.bin
|
||||
includes/payloads/Bins/Tools/Orbis-Toolbox-900.bin
|
||||
includes/payloads/Bins/Tools/ToCex.bin
|
||||
includes/payloads/Bins/Tools/ToDev.bin
|
||||
includes/payloads/Bins/Tools/ToKratos.bin
|
||||
includes/payloads/Bins/Tools/WebRTE_900.bin
|
||||
includes/payloads/Bins/Tools/appcache-install.bin
|
||||
includes/payloads/Bins/Tools/ps4-app2usb.bin
|
||||
includes/payloads/Bins/Tools/ps4-backup.bin
|
||||
includes/payloads/Bins/Tools/ps4-disable-aslr.bin
|
||||
@@ -49,10 +53,6 @@ includes/payloads/Bins/Tools/ps4-rif-renamer.bin
|
||||
includes/payloads/Bins/Tools/ps4-todex.bin
|
||||
includes/payloads/Bins/Tools/ps4debug.bin
|
||||
includes/payloads/Bins/Tools/pup-decrypt.bin
|
||||
includes/payloads/Bins/Tools/ToCex.bin
|
||||
includes/payloads/Bins/Tools/ToDev.bin
|
||||
includes/payloads/Bins/Tools/ToKratos.bin
|
||||
includes/payloads/Bins/Tools/WebRTE_900.bin
|
||||
includes/payloads/GoldHEN/goldhen_v2.3_702L.bin
|
||||
includes/payloads/GoldHEN/goldhen_v2.3_755L.bin
|
||||
includes/payloads/GoldHEN/goldhen_v2.4b18.2.bin
|
||||
@@ -61,11 +61,11 @@ includes/payloads/GoldHEN/goldhen_v2.4b18.5.bin
|
||||
includes/payloads/GoldHEN/goldhen_v2.4b18.6.bin
|
||||
includes/payloads/GoldHEN/goldhen_v2.4b18.bin
|
||||
includes/payloads/HEN/HEN.bin
|
||||
src/alert.mjs
|
||||
src/config.mjs
|
||||
src/lapse.mjs
|
||||
src/psfree.mjs
|
||||
src/send.mjs
|
||||
src/alert.mjs
|
||||
src/fonts/FONTS.LICENSE
|
||||
src/fonts/LiberationMono-Regular.ttf
|
||||
src/kpatch/700.bin
|
||||
|
||||
@@ -41,8 +41,12 @@ _Note: Support for other firmwares listed in the "Vulnerability Scope" table may
|
||||
- HEN flavor selector
|
||||
- GoldHEN version selector
|
||||
- Descriptive payload selection
|
||||
- Up to date
|
||||
- Unsuported payload loading protection
|
||||
- Load payloads with GoldHEN's BinLoader through a mirrored [http host](http://psfree-enhanced.free.nf/)
|
||||
- Up to date
|
||||
|
||||
## Contribution
|
||||
- Feel free to contribute and improve the host by modefying, updating or adding new features!
|
||||
## Copyright and Authors:
|
||||
|
||||
AGPL-3.0-or-later (see [LICENSE](LICENSE)). This repo belongs to the group `anonymous`. We refer to anonymous contributors as "anonymous" as well.
|
||||
|
||||
@@ -55,7 +55,7 @@ input[type="radio"]:checked {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.henSelection {
|
||||
#henSelection {
|
||||
padding: 12px 0;
|
||||
margin: 12px;
|
||||
-webkit-box-shadow: 0px -25px 8px -20px rgba(0, 0, 0, 0.2);
|
||||
|
||||
@@ -30,9 +30,11 @@ const ui = {
|
||||
gamesTab: document.getElementById('games-tab'),
|
||||
linuxSection: document.getElementById('linux'),
|
||||
linuxTab: document.getElementById('linux-tab'),
|
||||
payloadsSection: document.getElementById('payloadsSection'),
|
||||
payloadsList: document.getElementById("payloadsGrid"),
|
||||
payloadsSectionTitle: document.getElementById('payloads-section-title'),
|
||||
exploitRunBtn: document.getElementById('exploitRun'),
|
||||
backToInitialBtn: document.getElementById('backToInitialBtn'),
|
||||
secondHostBtn: document.querySelectorAll('.secondHostBtn'),
|
||||
// Popups
|
||||
aboutPopupOverlay: document.getElementById('about-popup-overlay'),
|
||||
aboutPopup: document.getElementById('about-popup'),
|
||||
@@ -71,11 +73,12 @@ const languages = {
|
||||
"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",
|
||||
"secondHostBtn": "Load payloads using GoldHEN's BinLoader - External link",
|
||||
"alert": "Important notice",
|
||||
"waitingUserInput": "Waiting for user action",
|
||||
"jailbreakNow": "Jailbreak process will start with ",
|
||||
"cache": "Installing Cache: ",
|
||||
"httpsHost":"Loading payloads through GoldHEN's BinLoader is not possible at the moment, click the blue button below to use the supported host."
|
||||
},
|
||||
"ar": {
|
||||
"title": "PSFree محسن",
|
||||
@@ -105,11 +108,12 @@ const languages = {
|
||||
"note2": "تأكد من ان تقوم بمسح الملفات المؤقته قبل تنفيذ الثغرة لأول مرة",
|
||||
"note3": "قم يتطلب الأمر المحاولة اكثر من مرة",
|
||||
},
|
||||
"backToInitialBtn": "الرجوع",
|
||||
"secondHostBtn": "تنفيذ التعديلات بإستخدام خادم GoldHEN - رابط خارجي",
|
||||
"alert": "ملاحظات هامة",
|
||||
"waitingUserInput": "في انتظار التنفيذ من المستخدم",
|
||||
"jailbreakNow": "عملية تحميل الثغرة ستبدأ بإستحدام ",
|
||||
"cache": "جاري تحميل الموقع في الذاكرة المحلية: "
|
||||
"cache": "جاري تحميل الموقع في الذاكرة المحلية: ",
|
||||
"httpsHost":"تنفيذ الإضافات بإستخدام GoldHEN غير مدعوم حاليا, إضغط على الزر الأزرق ادناه للإنتقال الى الهوست المدعوم"
|
||||
}
|
||||
}
|
||||
const payloads = [
|
||||
@@ -538,6 +542,7 @@ ui.toolsTab.addEventListener('click', () =>{
|
||||
ui.linuxSection.classList.add('hidden');
|
||||
ui.gamesSection.classList.add('hidden');
|
||||
}
|
||||
ui.payloadsList.scrollTop = 0;
|
||||
})
|
||||
|
||||
ui.linuxTab.addEventListener('click', () =>{
|
||||
@@ -546,6 +551,7 @@ ui.linuxTab.addEventListener('click', () =>{
|
||||
ui.linuxSection.classList.remove('hidden');
|
||||
ui.gamesSection.classList.add('hidden');
|
||||
}
|
||||
ui.payloadsList.scrollTop = 0;
|
||||
})
|
||||
|
||||
ui.gamesTab.addEventListener('click', () =>{
|
||||
@@ -554,6 +560,7 @@ ui.gamesTab.addEventListener('click', () =>{
|
||||
ui.linuxSection.classList.add('hidden');
|
||||
ui.gamesSection.classList.remove('hidden');
|
||||
}
|
||||
ui.payloadsList.scrollTop = 0;
|
||||
})
|
||||
|
||||
// popups
|
||||
@@ -629,16 +636,9 @@ 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];
|
||||
@@ -724,9 +724,14 @@ function applyLanguage(lang) {
|
||||
if (items[2]) items[2].textContent = strings.warnings.note3;
|
||||
}
|
||||
warningHeader.textContent = strings.alert;
|
||||
if (isHttps()){
|
||||
document.getElementById("httpsHost").innerText = strings.httpsHost;
|
||||
ui.secondHostBtn[1].style.display = "block";
|
||||
}
|
||||
|
||||
// Buttons
|
||||
ui.backToInitialBtn.textContent = strings.backToInitialBtn;
|
||||
ui.secondHostBtn[0].textContent = strings.secondHostBtn;
|
||||
ui.secondHostBtn[1].textContent = strings.secondHostBtn;
|
||||
ui.exploitRunBtn.title = strings.clickToStart;
|
||||
ui.aboutBtn.title = strings.aboutMenu;
|
||||
|
||||
@@ -768,9 +773,9 @@ 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 = [
|
||||
let elementsToHide = [
|
||||
'ps-logo-container', 'choosejb-initial', 'exploit-main-screen', 'scrollDown',
|
||||
'payloadsbtn', 'click-to-start-text', 'chooseGoldHEN'
|
||||
'click-to-start-text', 'chooseGoldHEN'
|
||||
];
|
||||
|
||||
if (ps4Regex.test(userAgent)) {
|
||||
@@ -782,6 +787,18 @@ function CheckFW() {
|
||||
document.getElementById(fwElement).classList.add('fwSelected');
|
||||
} else {
|
||||
document.getElementById('PS4FW').style.color = 'red';
|
||||
if (isHttps()){
|
||||
ui.secondHostBtn[0].style.display = "block";
|
||||
}else{
|
||||
// modify elements inside elementsToHide for unsupported ps4 firmware to load using GoldHEN's BinLoader
|
||||
const toRemove = ['exploit-main-screen', 'scrollDown'];
|
||||
elementsToHide = elementsToHide.filter(e => !toRemove.includes(e));
|
||||
elementsToHide.push('initial-screen', 'exploit-status-panel', 'henSelection');
|
||||
document.getElementById('exploitContainer').style.display = "block";
|
||||
// Sizing the payload's section
|
||||
ui.payloadsSection.style.width = "75%";
|
||||
ui.payloadsSection.style.margin = "auto";
|
||||
}
|
||||
|
||||
elementsToHide.forEach(id => {
|
||||
const el = document.getElementById(id);
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
var getPayload = function(payload, onLoadEndCallback) {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('GET', payload);
|
||||
req.send();
|
||||
req.responseType = "arraybuffer";
|
||||
req.send();
|
||||
req.onload = function (event) {
|
||||
if (onLoadEndCallback) onLoadEndCallback(req, event);
|
||||
};
|
||||
@@ -34,9 +34,19 @@ function Loadpayloadlocal(PLfile){ //Loading Payload via Payload Param.
|
||||
}
|
||||
req.send();
|
||||
req.onerror = function(){
|
||||
if (ps4fw >= 7.00 && ps4fw <= 9.60){
|
||||
if (!isHttps()){
|
||||
if (confirm("Binloader is not running, load payload using the exploit instead?")){
|
||||
Loadpayloadonline(PLfile);
|
||||
}
|
||||
}else Loadpayloadonline(PLfile);
|
||||
}else {
|
||||
alert("GoldHEN's BinLoader is not running, enable it first!");
|
||||
return;
|
||||
}
|
||||
|
||||
//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");
|
||||
Loadpayloadonline(PLfile);
|
||||
return;
|
||||
};
|
||||
req.onload = function(){
|
||||
@@ -95,8 +105,9 @@ export function load_KernelDumper(){
|
||||
}
|
||||
|
||||
export function load_VTXDumper(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Dumper/ps4-dumper-vtx-900.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Dumper/ps4-dumper-vtx-900.bin");
|
||||
}
|
||||
|
||||
export function load_ModuleDumper(){
|
||||
@@ -107,7 +118,9 @@ export function load_ModuleDumper(){
|
||||
// Tools
|
||||
|
||||
export function load_BinLoader(){
|
||||
if (ps4fw >= 7.00 && ps4fw <= 9.60){
|
||||
Loadpayloadonline(undefined);
|
||||
}else alert(`Unsupported firmware ${ps4fw}`);
|
||||
}
|
||||
|
||||
export function load_PS4Debug(){
|
||||
@@ -156,13 +169,15 @@ export function load_RIFRenamer(){
|
||||
}
|
||||
|
||||
export function load_Orbis(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/Orbis-Toolbox-900.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Tools/Orbis-Toolbox-900.bin");
|
||||
}
|
||||
|
||||
export function load_WebrRTE(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Tools/WebRTE_900.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Tools/WebRTE_900.bin");
|
||||
}
|
||||
|
||||
export function load_ToDex(){
|
||||
@@ -200,28 +215,33 @@ export function load_EnableBrowser(){
|
||||
// Linux
|
||||
|
||||
export function load_Linux(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900.bin");
|
||||
}
|
||||
|
||||
export function load_Linux2gb(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-2gb.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-2gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux3gb(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-3gb.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-3gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux4gb(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-4gb.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-4gb.bin");
|
||||
}
|
||||
|
||||
export function load_Linux5gb(){
|
||||
if (ps4fw != 9.00) return alert(`Unsupported firmware ${ps4fw}`);
|
||||
Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-5gb.bin");
|
||||
if (ps4fw != 9.00){
|
||||
alert(`Unsupported firmware ${ps4fw}`);
|
||||
}else Loadpayloadlocal("./includes/payloads/Bins/Linux/LinuxLoader-900-5gb.bin");
|
||||
}
|
||||
|
||||
|
||||
|
||||
17
index.html
17
index.html
@@ -43,6 +43,9 @@
|
||||
|
||||
<!-- Compatibility message -->
|
||||
<p id="PS4FW" class="text-white/70 text-lg mt-4 mb-6">-</p>
|
||||
<a hidden href="http://psfree-enhanced.free.nf" style="text-decoration: none;" class="secondHostBtn w bg-blue-600 hover:bg-blue-700 p-3 rounded font-semibold disabled:opacity-50 transition-colors text-white text-center" >
|
||||
Load payloads using GoldHEN's BinLoader - External link
|
||||
</a>
|
||||
|
||||
<!-- Jailbreak flavor options -->
|
||||
<div id="choosejb-initial" class="bg-gray-800 p-6 rounded-lg shadow-xl w-full max-w-sm text-center">
|
||||
@@ -74,7 +77,7 @@
|
||||
<section id="exploit-main-screen"
|
||||
class="w-full inset-0 bg-gray-900 text-white p-6 transition-opacity duration-700">
|
||||
<div class="container mx-auto" style="width: 100% !important;">
|
||||
<div class="grid md:grid-cols-2 gap-8 h-screen">
|
||||
<div id="exploitContainer" class="grid md:grid-cols-2 gap-8 h-screen">
|
||||
<!-- Exploit console panel -->
|
||||
<div id="exploit-status-panel" class="bg-gray-800 p-6 rounded-lg flex flex-col h-full">
|
||||
<h2 class="text-xl font-semibold mb-4">Exploit status</h2>
|
||||
@@ -100,8 +103,9 @@
|
||||
</div>
|
||||
|
||||
<!-- Payloads section -->
|
||||
<div class="bg-gray-800 p-6 rounded-lg flex flex-col h-full">
|
||||
<div id="payloadsSection" class="bg-gray-800 p-6 rounded-lg flex flex-col h-full">
|
||||
<h2 class="text-xl font-semibold mb-4" id="payloads-section-title">Payloads</h2>
|
||||
<p id="httpsHost"></p>
|
||||
<div
|
||||
class="mb-4 border-b border-gray-200 border-gray-700 w-full sticky top-0 bg-gray-800 z-10 tabs">
|
||||
<ul class="flex flex-wrap -mb-px text-sm font-medium text-center w-full"
|
||||
@@ -138,7 +142,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="henSelection flex items-center justify-center gap-4 mb-4">
|
||||
<div id="henSelection" class="flex items-center justify-center gap-4 mb-4">
|
||||
<label
|
||||
class="flex items-center px-2 py-1 rounded bg-gray-700/60 hover:bg-gray-700 cursor-pointer shadow border-2 border-transparent focus-within:border-blue-500">
|
||||
<input type="radio" name="hen2" value="GoldHEN" class="accent-blue-500 w-4 h-4 ml-2"
|
||||
@@ -156,10 +160,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" class="bi bi-play" viewBox="0 0 16 16"> <path d="M10.804 8 5 4.633v6.734L10.804 8zm.792-.696a.802.802 0 0 1 0 1.392l-6.363 3.692C4.713 12.69 4 12.345 4 11.692V4.308c0-.653.713-.998 1.233-.696l6.363 3.692z"/> </svg>
|
||||
</button>
|
||||
</div>
|
||||
<button id="backToInitialBtn" onclick="ui.initialScreen.scrollIntoView({block: 'end'});"
|
||||
class="w-full bg-blue-600 hover:bg-blue-700 p-3 rounded mt-4 font-semibold disabled:opacity-50 transition-colors">
|
||||
Back
|
||||
</button>
|
||||
<a hidden href="http://psfree-enhanced.free.nf" style="text-decoration: none;" class="secondHostBtn w bg-blue-600 hover:bg-blue-700 p-3 rounded font-semibold disabled:opacity-50 transition-colors text-white text-center" >
|
||||
Load payloads using GoldHEN's BinLoader - External link
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -39,4 +39,6 @@ addEventListener("error", (event) => {
|
||||
|
||||
// we have to dynamically import the program if we want to catch its syntax
|
||||
// errors
|
||||
import("./psfree.mjs");
|
||||
if (ps4fw >= 7.00 && ps4fw <= 9.60 ){
|
||||
import("./psfree.mjs");
|
||||
}else alert("Unsupported firmware to run the exploit")
|
||||
Reference in New Issue
Block a user