XploitSPY/server/assets/views/builder.ejs

107 lines
4.2 KiB
Plaintext

<!DOCTYPE html>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<html>
<% include partials/head.ejs %>
<body>
<div class="ui container">
<% include partials/header.ejs %>
<div class="ui segment">
<div id="dimmer" class="ui dimmer">
<div class="ui indeterminate text loader" id="loadingText">Submitting</div>
</div>
<h1 class="ui" style="text-align: center">APK Builder</h1>
<div class="ui form" id="form">
<div class="inline fields">
<div class="six wide field">
<div class="ui labeled input">
<div class="ui label">
http://
</div>
<input type="text" id="uriInput" placeholder="IP / Public URL" title="This is the public url of your server (domain.com)">
</div>
</div>
<!-- <div class="two wide field">
<label>:</label>
<input type="number" id="portInput" placeholder="PORT" min="2048" max="25565" title="This is the `control_port` set in the consts" value="<%= myPort %>">
</div> -->
</div>
<div class="inline fields">
<div class="eight wide field">
<button id="gobuild" class="positive ui fluid button"><i class="wrench icon"></i>Build</button>
</div>
</div>
</div>
<div class="ui form" id="download" style="display: none">
<div class="inline fields">
<div class="eight wide field">
<a class="blue ui fluid button" download="XploitSPY.apk" href="/build-aligned-signed.apk"><i
class="download icon"></i>Download</a>
</div>
</div>
</div>
</div>
</div>
<style>
.inline.fields {
justify-content: center;
}
</style>
<script>
var loadingTexts = [
"Decompiling APK",
"Patching Server Information",
"Compiling APK",
"Signing APK",
"Verifying Build",
"Finalizing"
];
document.getElementById('uriInput').value = window.location.hostname;
var loadingIndex = 0;
var isDone = false;
$('#gobuild').click((e) => {
$('#dimmer').addClass('active');
build($('#uriInput').val(), "80");
setTimeout(loaderText, 500);
});
function loaderText() {
var nextTimeout = Math.floor(Math.random() * 1500) + 700;
$('#loadingText').text(loadingTexts[loadingIndex]);
loadingIndex++;
if (loadingIndex !== loadingTexts.length) setTimeout(loaderText, nextTimeout);
else
while (isDone) {
isDone = false;
$('#dimmer').fadeOut(500, () => {
$('#download').removeClass('active');
})
$('#form').fadeOut(500, () => {
$('#download').fadeIn(200);
})
}
}
function build(URI, PORT) {
$.post("/builder?uri=" + URI + "&port=" + PORT, function(data) {
if (!data.error) {
isDone = true
} else showNotification('#f03434', data.error)
});
}
</script>
<% include partials/footer.ejs %>
</body>
</html>