Add Installation Page and Addon-Signing bypass

This commit is contained in:
Bommels05 committed 2026-04-26 14:12:10 +02:00
1 parent a44e4c1a3d
commit 69ec93b0ca
17 files changed
+149 -4

No files matched your search

+15 -4
View File
@@ -46,31 +46,42 @@ test {
TaskProvider<Task> prepareExtension = tasks.register("prepareExtension") {
Provider<Directory> tempDir = layout.buildDirectory.dir("tmp/extension-build")
inputs.dir("extension")
inputs.dir("extension/xul")
outputs.dir(tempDir)
doLast {
delete(tempDir)
copy {
from("extension") {
from("extension/xul") {
exclude("extension.xpi")
}
into(tempDir)
}
copy {
from("extension/modules")
from("extension/xul/modules")
into(tempDir.get().dir("content"))
}
}
}
tasks.register("extension", Zip) {
tasks.register("xul", Zip) {
dependsOn(prepareExtension)
from(prepareExtension.map { it.outputs.files.singleFile })
archiveFileName = "extension.xpi"
destinationDirectory = layout.projectDirectory.dir("extension")
}
tasks.register("xulLanguage", Zip) {
from("extension/xul_language")
archiveFileName = "language.xpi"
destinationDirectory = layout.projectDirectory.dir("extension")
}
tasks.register("extension", Zip) {
dependsOn(tasks.named("xul"), tasks.named("xulLanguage"))
}
+33
View File
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Befator Inc. Secure-Web Extension Compatibility Detector</title>
</head>
<body>
<p>Die zum Browser passende Extension wird jetzt ermittelt...</p>
<script>
var string = "<h1>Ergebniss</h1><p>";
if (navigator.userAgent.indexOf("Firefox/") == -1) {
string += "Dein Browser wird leider nicht unterstützt.";
} else {
var version = navigator.userAgent.split("Firefox/")[1].split(" ")[0];
var major = version.split(".")[0];
if (major < 2) {
string += "Die Firefox XUL Extension braucht mindestens Firefox 2.0.0.";
} else if (major < 43) {
string += "Dein Browser ist mit der Firefox XUL Extension kompatibel die du einfach <a href=\"extension.xpi\">hier</a> installieren kannst.";
} else if (major < 48) {
string += "Dein Browser ist mit der Firefox XUL Extension kompatibel, aber erlaubt standartmäßig keine unsigned extensions. Zur Installation musst du: <ol><li>In <code>about:config</code> die Preference <code>xpinstall.signatures.required</code> auf <b>false</b> setzen</li><li>Die extension <a href=\"extension.xpi\">hier</a> installieren</li></ol>";
} else if (major < 56) {
string += "<h2>ESR, Nightly, Developer Edition, Unbranded</h2>Dein Browser ist mit der Firefox XUL Extension kompatibel, aber erlaubt standartmäßig keine unsigned extensions. Zur Installation musst du: <ol><li>In <code>about:config</code> die Preference <code>xpinstall.signatures.required</code> auf <b>false</b> setzen</li><li>Die extension <a href=\"extension.xpi\">hier</a> installieren</li></ol>";
string += "<h2>Release, Beta</h2><p style=\"background-color: yellow; padding: 5px; border-style: solid;\">Achtung: <br>Bei dieser Installationsmethode wird der Browser permanent modifiziert (Die Extension kann aber wieder deinstalliert werden)</p>Dein Browser ist mit der Firefox XUL Extension kompatibel, aber erlaubt eigentlich unter keinen Umständen unsigned extensions. Zur Installation musst du: <ol><li>In <code>about:config</code> die Preference <code>xpinstall.signatures.required</code> auf <b>false</b> setzen</li><li>Die Befator Inc Exploit Locale <a href=\"language.xpi\">hier</a> installieren</li><li>Auf die Seite <code>chrome://befatorlocale/content/install.xul</code> gehen</li><li>Den Browser neustarten</li><li>Die extension <a href=\"extension.xpi\">hier</a> installieren</li></ol>";
} else {
string += "Die Firefox XUL Extension unterstützt höchstens Firefox 56.";
}
}
string += "</p>";
document.body.innerHTML += string;
</script>
</body>
</html>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
content befatorlocale content/
Binary file not shown.
Binary file not shown.
+67
View File
@@ -0,0 +1,67 @@
Components.utils.import('resource://gre/modules/Services.jsm').Services;
Components.utils.import("resource://gre/modules/FileUtils.jsm");
Components.utils.import("resource://gre/modules/NetUtil.jsm");
let installDir = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("CurProcD", Components.interfaces.nsIFile).parent;
let omniJar = installDir.clone();
omniJar.append("omni.ja");
let jsmFile = installDir.clone();
jsmFile.append("AddonConstants.jsm");
let exeFile = installDir.clone();
exeFile.append("7z.exe");
let dllFile = installDir.clone();
dllFile.append("7z.dll");
let batFile = installDir.clone();
batFile.append("install.bat");
let zipWriter = Components.Constructor("@mozilla.org/zipwriter;1", "nsIZipWriter");
let zipReader = Components.Constructor("@mozilla.org/libjar/zip-reader;1", "nsIZipReader");
let reader = new zipReader();
reader.open(omniJar);
let stream = reader.getInputStream("modules/addons/AddonConstants.jsm");
let data = NetUtil.readInputStreamToString(stream, stream.available());
stream.close();
reader.close();
data = data.slice(0, data.lastIndexOf("value: true")) + "value: false" + data.slice(data.lastIndexOf("value: true") + "value: true".length)
let fileStream = FileUtils.openAtomicFileOutputStream(jsmFile);
fileStream.write(data, data.length);
FileUtils.closeAtomicFileOutputStream(fileStream);
fileStream = FileUtils.openAtomicFileOutputStream(batFile);
let batContents = "7z x -otemp omni.ja || del temp\\jsloader\\resource\\gre\\modules\\addons\\AddonConstants.jsm && del temp\\modules\\addons\\AddonConstants.jsm && move AddonConstants.jsm temp\\modules\\addons\\AddonConstants.jsm && cd temp && ..\\7z a omni.jar * && move omni.jar ..\\omni.jar && cd .. && del /S /Q 7z.exe 7z.dll temp install.bat && del omni.ja && move omni.jar omni.ja";
fileStream.write(batContents, batContents.length);
FileUtils.closeAtomicFileOutputStream(fileStream);
NetUtil.asyncFetch(Services.io.newURI("chrome://befatorlocale/content/7z.exe", null, null), function(inputStream, aResult) {
if (!Components.isSuccessCode(aResult)) {
Services.prompt.alert(window, "Befator Inc Secure-Web", "Unexpected error left installation in inconsistent state!");
return;
}
let exeStream = FileUtils.openAtomicFileOutputStream(exeFile);
NetUtil.asyncCopy(inputStream, exeStream, function(aResult) {
if (!Components.isSuccessCode(aResult)) {
Services.prompt.alert(window, "Befator Inc Secure-Web", "Unexpected error left installation in inconsistent state!");
return;
}
NetUtil.asyncFetch(Services.io.newURI("chrome://befatorlocale/content/7z.dll", null, null), function(inputStream, aResult) {
if (!Components.isSuccessCode(aResult)) {
Services.prompt.alert(window, "Befator Inc Secure-Web", "Unexpected error left installation in inconsistent state!");
return;
}
let dllStream = FileUtils.openAtomicFileOutputStream(dllFile);
NetUtil.asyncCopy(inputStream, dllStream, function(aResult) {
if (!Components.isSuccessCode(aResult)) {
Services.prompt.alert(window, "Befator Inc Secure-Web", "Unexpected error left installation in inconsistent state!");
return;
}
Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].getService(Components.interfaces.nsIExternalProtocolService).loadURI(Services.io.newURI("file:///" + batFile.path, null, null))
})
});
})
});
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<!DOCTYPE window>
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="Befator Inc. Exploit Locale"
width="400"
height="200">
<script type="application/x-javascript" src="chrome://befatorlocale/content/init.js" />
<label value='Im "Launch Application" Fenster einfach auf Ok bzw. "Open Link" drücken. Nachdem sich die CMD geschlossen hat den Browser neustarten.'/>
</window>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:type>8</em:type>
<em:id>befatorlocale@jetpack</em:id>
<em:name>Befator Inc. Exploit Locale</em:name>
<em:creator>Bommels05</em:creator>
<em:description>Aktiviert deaktivierte Präferenzen</em:description>
<em:version>1.0.0</em:version>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!--Firefox-->
<em:minVersion>48</em:minVersion>
<em:maxVersion>56.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>