Hi pr0f4n,
ich habe scheinbar immer etwas zu bemängeln, mehr oder minder berechtigt.
Deine JS-Funktion funktioniert natürlich einwandfrei, aber mir gefällt die Weise nicht, wie du das Skript in die HTML Seite einbettest. Deswegen habe ich es "überarbeitet".
Außerdem habe ich, ohne bei dir abzuspicken, ein Skript in PHP geschrieben, das den gleichen Effekt hat (
nicht PHP-CLI). Es ist bereit für die Benutzung (/Upload auf Webspace, auf dem PHP interpretiert wird) und kommt mit einem minimalen Interface

Leider musste ich das PHP Skript archivieren und hochladen, da die PHP-Tags total verbuggt sind.
Edit: Manche Freehoster verhindern die Verwendung der PHP-Funktion "file_get_contents", weshalb das Skript nicht unbedingt funktionieren muss.
Und um zu zeigen, wie bekloppt die Entwickler dieses Spiels sind, habe ich den entsprechenden Part aus dem ActionScript des Spiels extrahiert. Die haben ihre Funktion doch glatt Encr
pytString genannt!
JS:
HTML Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>nop0x90 wuz here :3</title>
</head>
<body>
<script type="text/javascript">
function param(str) {
var pc = "aHfEjcDebChGiAfIjDbEjacD";
var nLen = pc.length;
var nLen2 = str.length;
var _loc1 = "";
var _loc2 = 0;
var _loc3 = 0;
var _loc4;
var _loc5;
var _loc6;
for (i = 0; i < nLen2; ++i) {
_loc4 = str.charCodeAt(i);
if (_loc4 >= 128) {
_loc4 = "X";
}
_loc5 = pc.charCodeAt(_loc2);
_loc2 = _loc2 + 1;
if (_loc2 >= nLen) {
_loc2 = 0;
}
_loc6 = _loc4 % 16 + _loc5;
_loc1 = _loc1 + String.fromCharCode(_loc6);
_loc3 = _loc3 + _loc6;
_loc5 = pc.charCodeAt(_loc2);
_loc2 = _loc2 + 1;
if (_loc2 >= nLen) {
_loc2 = 0;
}
_loc6 = Math.floor(_loc4 / 16) + _loc5;
_loc1 = _loc1 + String.fromCharCode(_loc6);
_loc3 = _loc3 + _loc6;
}
_loc3 = _loc3 % 256;
_loc5 = pc.charCodeAt(_loc2);
_loc2 = _loc2 + 1;
if (_loc2 >= nLen) {
_loc2 = 0;
}
_loc6 = _loc3 % 16 + _loc5;
_loc1 = _loc1 + String.fromCharCode(_loc6);
_loc5 = pc.charCodeAt(_loc2);
_loc2 = _loc2 + 1;
if (_loc2 >= nLen) {
_loc2 = 0;
}
_loc6 = Math.floor(_loc3 / 16) + _loc5;
_loc1 = _loc1 + String.fromCharCode(_loc6);
return _loc1;
}
alert('URL: http://www.arcadetown.com/deadfrontiernighttwo/hs.asp?' + param('pr0f4n|666'));
</script>
<noscript>
<h1>Time to enable JavaScript :P</h1>
</noscript>
</body>
</html>
AS:
Code:
function EncrpytString(strVal) {
var v7 = 'aHfEjcDebChGiAfIjDbEjacD';
var v8 = v7.length;
var v11 = '0';
var v3 = '';
var v9 = strVal.length;
var v1 = 0;
v3 = '';
var v4;
var v6;
var v2;
var v5 = 0;
nCnt = 0;
while (nCnt < v9) {
v4 = strVal.charCodeAt(nCnt);
if (v4 >= 128) {
v4 = 'X';
}
v6 = v7.charCodeAt(v1);
v1 += 1;
if (v1 >= v8) {
v1 = 0;
}
v2 = v4 % 16 + v6;
v3 += String.fromCharCode(v2);
v5 += v2;
v6 = v7.charCodeAt(v1);
v1 += 1;
if (v1 >= v8) {
v1 = 0;
}
v2 = Math.floor(v4 / 16) + v6;
v3 += String.fromCharCode(v2);
v5 += v2;
++nCnt;
}
v5 %= 256;
v6 = v7.charCodeAt(v1);
v1 += 1;
if (v1 >= v8) {
v1 = 0;
}
v2 = v5 % 16 + v6;
v3 += String.fromCharCode(v2);
v6 = v7.charCodeAt(v1);
v1 += 1;
if (v1 >= v8) {
v1 = 0;
}
v2 = Math.floor(v5 / 16) + v6;
v3 += String.fromCharCode(v2);
return v3;
}