318 lines
14 KiB
Plaintext
318 lines
14 KiB
Plaintext
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
|
<meta name="description" content="Online decompiler for Java, Android, Python and C#.">
|
|
<meta name="author" content="">
|
|
|
|
<link rel="icon" href="/favicon.ico">
|
|
|
|
<title>Java decompiler online / APK decompiler - Decompiler.com</title>
|
|
|
|
<link rel="stylesheet" media="screen" href="/assets/stylesheets/main.css">
|
|
<link rel="stylesheet" media="screen" href="/assets/stylesheets/dropzone.css">
|
|
<script src="https://www.codicibancari.it/javascripts/ads/prebid/ads/unbid/ads/rebid/prebid-ads/gbid/ads-prebid/bid/facn.js" type="text/javascript"></script>
|
|
|
|
|
|
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
<link rel="stylesheet" media="screen" href="/assets/stylesheets/bootstrap.min.css">
|
|
|
|
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
|
<!--<link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">-->
|
|
|
|
<!-- Custom styles for this template -->
|
|
<!--<link href="navbar-static-top.css" rel="stylesheet">-->
|
|
|
|
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
|
|
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
|
|
<!--<script src="../../assets/js/ie-emulation-modes-warning.js"></script>-->
|
|
|
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
<![endif]-->
|
|
<!-- <script data-cfasync="false" async src="https://s.nitropay.com/ads-1502.js" data-log-level="silent"></script> -->
|
|
|
|
<script src="https://media.ethicalads.io/media/client/ethicalads.min.js"></script>
|
|
<script>
|
|
ethicalads.wait.then((placements) => {
|
|
if (!placements.length) {
|
|
|
|
var head = document.getElementsByTagName('head')[0];
|
|
|
|
var script = document.createElement('script');
|
|
script.src = "https://s.nitropay.com/ads-1502.js";
|
|
script.type = 'text/javascript';
|
|
|
|
head.appendChild(script);
|
|
|
|
div = document.querySelector('[data-ea-publisher]')
|
|
div.innerHTML = '<div id="dec-now"></div>'
|
|
window.nitroAds=window.nitroAds||{createAd:function(){return new Promise(e=>{window.nitroAds.queue.push(["createAd",arguments,e])})},addUserToken:function(){window.nitroAds.queue.push(["addUserToken",arguments])},queue:[]};
|
|
window['nitroAds'].createAd('dec-now',{"refreshLimit": 20, "refreshTime": 60, "renderVisibleOnly": false, "refreshVisibleOnly": true, "sizes": [ [ "728", "90" ]], "report":{"enabled": true, "icon": true, "wording": "Report Ad", "position": "top-right"}});
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<!-- Google tag (gtag.js) -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-9WWCS2LLPE"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
|
|
gtag('config', 'UA-256040966-2');
|
|
gtag('config', 'G-9WWCS2LLPE');
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<!-- Static navbar -->
|
|
<nav class="navbar navbar-default navbar-static-top">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand" href="/"><span style="color: red">De</span><span style="color: black">compiler<span>.</span>com</span></a>
|
|
</div>
|
|
<div id="navbar">
|
|
<ul class="nav navbar-nav navbar-left">
|
|
<li ><a href="/jar-string-editor">JAR String Editor</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li ><a href="/release-notes">Release Notes</a></li>
|
|
<li><a href="mailto:support@decompiler.com?subject=Bug%20report%2C%20feature%20request%2C%20suggestion.">support@decompiler.com</a> </li>
|
|
</ul>
|
|
</div>
|
|
<!--
|
|
//TODO
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
|
|
<ul class="nav navbar-nav">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Your uploads <span class="caret"></span></a>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="#">i-Text2.jar</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li><a href="../navbar/">Default</a></li>
|
|
<li class="active"><a href="./">Static top <span class="sr-only">(current)</span></a></li>
|
|
<li><a href="../navbar-fixed-top/">Fixed top</a></li>
|
|
</ul>
|
|
</div>--><!--/.nav-collapse -->
|
|
</div>
|
|
</nav>
|
|
<script src="/assets/javascripts/dropzone.js" type="text/javascript"></script>
|
|
<div class="container">
|
|
|
|
|
|
<div class="alert alert-warning">
|
|
Something went wrong. Please try again.
|
|
</div>
|
|
|
|
|
|
|
|
<form action="/upload" method="POST" id="myDropZone" class="dropzone needsclick dz-clickable" enctype="multipart/form-data">
|
|
|
|
|
|
<input type="hidden" name="csrfToken" value="61c1979d25493730a06bd14cd08f809360ed108e-1770190385190-80e70126cc0b3663db181b28"/>
|
|
|
|
<div class="dz-message needsclick">
|
|
Drop EXE or DLL, <br />JAR or CLASS, <br />APK, XAPK or DEX, <br />PYC or PYO, <br />LUAC or LUB, <br />SMX or AMXX file here<br />
|
|
<span style="text-decoration:underline;">Choose file</span>
|
|
</div>
|
|
|
|
<div class="fallback">
|
|
<input name="file" type="file" multiple />
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
<script type="text/javascript">
|
|
if (document.getElementById('myDropZone')) {
|
|
Dropzone.autoDiscover = false;
|
|
var myDropzone = new Dropzone("#myDropZone", {
|
|
url: "/upload",
|
|
timeout: 500000,
|
|
maxFiles: 1,
|
|
previewTemplate: "<div class=\"jumbotron\">\n" +
|
|
" <div class=\"progress\">\n" +
|
|
" <div id=\"upload-progress\" class=\"progress-bar progress-bar-striped active\" role=\"progressbar\"\n" +
|
|
" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">\n" +
|
|
" Uploading 0%\n" +
|
|
" </div>\n" +
|
|
" </div>\n" +
|
|
" <div class=\"progress\">\n" +
|
|
" <div id=\"decompile-progress\" class=\"progress-bar progress-bar-striped active\" role=\"progressbar\"\n" +
|
|
" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">\n" +
|
|
" Decompiling 0%\n" +
|
|
" </div>\n" +
|
|
" </div>\n" +
|
|
" </div>"
|
|
});
|
|
myDropzone.on("success", function(file) {
|
|
window.location.replace(file.xhr.response);
|
|
/*alert(file.xhr.response);*/
|
|
/* Maybe display some more file information on your page */
|
|
});
|
|
myDropzone.on("uploadprogress", function(file){
|
|
//alert(file.upload.progress);
|
|
if (file.upload.progress < 100) {
|
|
|
|
//alert(file.upload.progress);
|
|
}
|
|
var uploadProgressBar = document.querySelector('#upload-progress');
|
|
uploadProgressBar.style.width = file.upload.progress + '%';
|
|
uploadProgressBar.innerHTML = "Uploading "+ file.upload.progress + '%';
|
|
if (file.upload.progress == 100) {
|
|
//alert(file.size);
|
|
var progressBar = document.querySelector('#decompile-progress'),
|
|
width = 0;
|
|
|
|
progressBar.style.width = width + '%';
|
|
|
|
var interval = setInterval(function() {
|
|
|
|
width += 1;
|
|
|
|
progressBar.style.width = width + '%';
|
|
progressBar.innerHTML = "Decompiling " + width + '%';
|
|
|
|
if (width >= 100) {
|
|
clearInterval(interval);
|
|
}
|
|
}, 300);
|
|
}
|
|
});
|
|
} else {
|
|
alert('lol');
|
|
}
|
|
</script>
|
|
</div> <!-- /container -->
|
|
|
|
<div class="container" style="min-height: 105px">
|
|
<div data-ea-publisher="decompilercom" data-ea-type="text" id="banner"></div>
|
|
</div>
|
|
|
|
|
|
|
|
<br>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
|
<div class="feature">
|
|
<img src="/assets/images/dragdrop.svg" alt="Java decompiler" height="100 px">
|
|
<h4>Upload your artifact</h4>
|
|
<p>Drag and drop your artifact into the online decompiler to view the content online or download it.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
|
<div class="feature">
|
|
<img src="/assets/images/cloud.svg" alt="Online decompiler" height="100 px">
|
|
<h4>All online</h4>
|
|
<p>Navigate through and inspect decompiled code online without installing anything.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
|
<div class="feature">
|
|
<img src="/assets/images/cvbf.svg" alt="C# decompiler" height="100 px">
|
|
<h4>F#, Visual Basic, C# decompiler</h4>
|
|
<p>.exe and .dll .NET decompilation back to C# project.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-12 col-sm-6 col-md-3">
|
|
<div class="feature">
|
|
<img src="/assets/images/java.svg" alt="Java decompiler" height="100 px">
|
|
<h4>Java decompiler</h4>
|
|
<p>.jar and .class decompilation back to Java source code.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-3">
|
|
<div class="feature">
|
|
<img src="/assets/images/android.svg" alt="Android decompiler" height="100 px">
|
|
<h4>Android decompiler</h4>
|
|
<p>.apk, .xapk and .dex decompilation back to Java source code.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-3">
|
|
<div class="feature">
|
|
<img src="/assets/images/python.svg" alt="Python decompiler" height="100 px">
|
|
<h4>Python decompiler</h4>
|
|
<p>.pyc and .pyo decompilation back to Python source code.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-3">
|
|
<div class="feature">
|
|
<img src="/assets/images/lua.svg" alt="Lua decompiler" height="100 px">
|
|
<h4>Lua decompiler</h4>
|
|
<p>.luac and .lub decompilation back to Lua source code.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> <!-- /container -->
|
|
|
|
|
|
<!-- Bootstrap core JavaScript
|
|
================================================== -->
|
|
<!-- Placed at the end of the document so the pages load faster -->
|
|
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> -->
|
|
<!--<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>-->
|
|
<!--<script src="../../dist/js/bootstrap.min.js"></script>-->
|
|
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
|
<!-- <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>-->
|
|
|
|
|
|
<script>
|
|
if( window.mxxeq === undefined ){
|
|
function disableLink(linkId) {
|
|
var link = document.getElementById(linkId);
|
|
if (link) {
|
|
link.classList.add("disabled-link");
|
|
link.href = "#";
|
|
}
|
|
}
|
|
function replaceSubmitWithAlertButton(submitButtonId, alertMessage) {
|
|
var oldButton = document.getElementById(submitButtonId);
|
|
|
|
if (oldButton) {
|
|
var newButton = document.createElement("button");
|
|
newButton.textContent = oldButton.value;
|
|
newButton.className = oldButton.className;
|
|
newButton.id = oldButton.id;
|
|
newButton.type = "button";
|
|
|
|
// Add click event to show alert
|
|
newButton.addEventListener("click", function() {
|
|
alert(alertMessage);
|
|
});
|
|
|
|
oldButton.parentNode.replaceChild(newButton, oldButton);
|
|
}
|
|
}
|
|
replaceSubmitWithAlertButton("download_zip_button", "Download is blocked by an advertisement filtering extension in your browser. Please disable it and reload the page.");
|
|
disableLink("firstDownloadFileLink");
|
|
disableLink("secondDownloadFileLink");
|
|
}
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|
|
|