Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var seed : String;
- var hash : String;
- private var N0 : int;
- private var sbox : int[];
- var password : String;
- var text : String;
- var test : String;
- var output : String;
- var orange : boolean = true;
- var toSend : String;
- var medalID : int;
- var green : boolean = false;
- var receive : WWW;
- function Start () {
- N0 = 256;
- yield WaitForSeconds (3);
- unlockMedal (medalID);
- }
- function unlockMedal (a : int) {
- text = '{"command_id":"unlockMedal","publisher_id":' + PublisherId + ',"session_id":"' + SessionID + '","medal_id":' + a +'}';
- guiText.text += text + "\n";
- yield WaitForSeconds (2);
- SecurePacket ();
- }
- var encoding = new System.Text.UTF8Encoding();
- function SecurePacket () {
- genSeed ();
- hash = Md5Sum (seed);
- test = EnDeCrypt();
- test = StrToHexStr(test);
- test = hash + test;
- radix(test);
- toSend = '{"command_id":"securePacket","tracker_id":"' + APIID + '","secure":"' + output + '"}';
- guiText.text += toSend + "\n";
- var headers : Hashtable = new Hashtable();
- headers.Add("Content-type", "application/json");
- receive = new WWW ("http://www.ngads.com/gateway_v2.php", encoding.GetBytes(toSend), headers);
- green = true;
- }
- function Update () {
- if (orange) {
- Application.ExternalEval(" UnityObject2.instances[0].getUnity().SendMessage('Newgrounds', 'bob', document.location.href);");
- orange = false;
- } if (green && receive.isDone) {
- guiText.text += receive.text;
- green = false;
- }}
- function genSeed () {
- seed = "";
- iter = Random.Range (10,32);
- for (i = 0; i < iter; i++) {
- a = Random.Range (-26,36);
- if (a == -26)
- seed += "z";
- else if (a == -25)
- seed += "y";
- else if (a == -24)
- seed += "x";
- else if (a == -23)
- seed += "w";
- else if (a == -22)
- seed += "v";
- else if (a == -21)
- seed += "u";
- else if (a == -20)
- seed += "t";
- else if (a == -19)
- seed += "s";
- else if (a == -18)
- seed += "r";
- else if (a == -17)
- seed += "q";
- else if (a == -16)
- seed += "p";
- else if (a == -15)
- seed += "o";
- else if (a == -14)
- seed += "n";
- else if (a == -13)
- seed += "m";
- else if (a == -12)
- seed += "l";
- else if (a == -11)
- seed += "k";
- else if (a == -10)
- seed += "j";
- else if (a == -9)
- seed += "i";
- else if (a == -8)
- seed += "h";
- else if (a == -7)
- seed += "g";
- else if (a == -6)
- seed += "f";
- else if (a == -5)
- seed += "e";
- else if (a == -4)
- seed += "d";
- else if (a == -3)
- seed += "c";
- else if (a == -2)
- seed += "b";
- else if (a == -1)
- seed += "a";
- else if (a == 26)
- seed += "Z";
- else if (a == 25)
- seed += "Y";
- else if (a == 24)
- seed += "X";
- else if (a == 23)
- seed += "W";
- else if (a == 22)
- seed += "V";
- else if (a == 21)
- seed += "U";
- else if (a == 20)
- seed += "T";
- else if (a == 19)
- seed += "S";
- else if (a == 18)
- seed += "R";
- else if (a == 17)
- seed += "Q";
- else if (a == 16)
- seed += "P";
- else if (a == 15)
- seed += "O";
- else if (a == 14)
- seed += "N";
- else if (a == 13)
- seed += "M";
- else if (a == 12)
- seed += "L";
- else if (a == 11)
- seed += "K";
- else if (a == 10)
- seed += "J";
- else if (a == 9)
- seed += "I";
- else if (a == 8)
- seed += "H";
- else if (a == 7)
- seed += "G";
- else if (a == 6)
- seed += "F";
- else if (a == 5)
- seed += "E";
- else if (a == 4)
- seed += "D";
- else if (a == 3)
- seed += "C";
- else if (a == 2)
- seed += "B";
- else if (a == 1)
- seed += "A";
- else if (a == 0)
- seed += "0";
- else
- seed += (a-26);
- }}
- function Md5Sum (strToEncrypt: String) {
- var encoding = System.Text.UTF8Encoding();
- var bytes = encoding.GetBytes(strToEncrypt);
- var md5 = System.Security.Cryptography.MD5CryptoServiceProvider();
- var hashBytes:byte[] = md5.ComputeHash(bytes);
- var hashString = "";
- for (var i = 0; i < hashBytes.Length; i++) {
- hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, "0"[0]);
- } return hashString.PadLeft(32, "0"[0]);
- }
- function EnDeCrypt() {
- RC4Initialize();
- var i : int = 0;
- var j : int = 0;
- var k : int = 0;
- var cipher = "";
- for (a = 0; a < text.Length; a++) {
- i = ((i + 1) % N0);
- j = ((j + sbox[i]) % N0);
- var tempSwap : int = sbox[i];
- sbox[i] = sbox[j];
- sbox[j] = tempSwap;
- k = sbox[(sbox[i] + sbox[j]) % N0];
- var cipherBy : int = text[a];
- cipherBy = cipherBy ^ k;
- cipher += (System.Convert.ToChar(cipherBy));
- } return cipher;
- }
- function StrToHexStr(str : String) {
- var sb = "";
- for (i = 0; i < str.Length; i++) {
- var v : int = str[i];
- sb += (String.Format("{0:X2}", v));
- } return sb;
- }
- function HexStrToStr(hexStr : String) {
- var sb = "";
- for (i = 0; i < hexStr.Length; i += 2) {
- var n : int = parseInt(hexStr.Substring(i, 2));
- sb += (System.Convert.ToChar(n));
- } return sb;
- }
- private var key : int[];
- private var n : int;
- function RC4Initialize() {
- sbox = new int[N0];
- key = new int[N0];
- n = password.Length;
- for (a = 0; a < N0; a++) {
- key[a] = (password[a % n]);
- sbox[a] = a;
- } var b : int = 0;
- for (a = 0; a < N0; a++) {
- b = (b + sbox[a] + key[a]) % N0;
- var tempSwap : int = sbox[a];
- sbox[a] = sbox[b];
- sbox[b] = tempSwap;
- }}
- private var rad : String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
- private var block : String = "";
- private var car : char;
- private var l : int;
- function radix (g : String) {
- output = "";
- for (i = 0; (i< g.Length-6); i+=6) {
- block = "";
- var d : int = System.Int32.Parse(g.Substring(i,6), System.Globalization.NumberStyles.AllowHexSpecifier);
- for (j = 0; j<4; j++){
- l = d % 79;
- car = rad[l];
- d -= l;
- d /= 79;
- block = car + block;
- } output +=block;
- } block = "";
- var o : int = System.Int32.Parse(g.Substring(g.Length-(g.Length%6),(g.Length%6)), System.Globalization.NumberStyles.AllowHexSpecifier);
- for (j = 0; j<4; j++){
- l = o % 79;
- car = rad[l];
- o -= l;
- o /= 79;
- block = car + block;
- } output +=block;
- output = (output.Length % 6) + output;
- }
- private var parameters : String[];
- var SessionID : String;
- var UserID : int;
- var UserName : String;
- var DefaultUsername : String;
- var APIID : String;
- var PublisherId : int;
- //bob ("http://uploads.ungrounded.net/tmp/744000/744865/file/alternate/alternate_2.zip?NewgroundsAPI_PublisherID=1&NewgroundsAPI_SandboxID=52ea469359f8b&NewgroundsAPI_SessionID=4C8yz2cRRIATpvA2JGQS813ce389f27095b178f1ec742f35d0ccba83d9f6ICF8&NewgroundsAPI_UserName=Bcadren&NewgroundsAPI_UserID=4889253&ng_username=Bcadren");
- //copy of a valid URL for offline testing
- function bob (data : String) {
- var Delimiters : String[] = ['?','&','='];
- parameters = data.Split (Delimiters, System.StringSplitOptions.RemoveEmptyEntries);
- for (i = 0; i < parameters.length; i++)
- parameters[i] = WWW.UnEscapeURL (parameters[i]);
- for (j = 0; j < parameters.length; j++){
- guiText.text += parameters[j] + "\n";
- if (parameters[j] == "NewgroundsAPI_SessionID")
- SessionID = parameters[j+1];
- else if (parameters[j] == "NewgroundsAPI_UserID")
- UserID = parseInt(parameters[j+1]);
- else if (parameters[j] == "NewgroundsAPI_UserName")
- UserName = parameters[j+1];
- else if (parameters[j] == "NewgroundsAPI_PublisherID")
- PublisherId = parseInt(parameters[j+1]);
- } if (UserName == "<deleted>")
- UserName = DefaultUsername;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement