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:
@@ -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(){
|
||||
Loadpayloadonline(undefined);
|
||||
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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user