Advertisement
Bcadren

Inside Unity

Jan 30th, 2014
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var seed : String;
  2. var hash : String;
  3. private var N0 : int;
  4. private var sbox : int[];
  5. var password : String;
  6. var text : String;
  7. var test : String;
  8. var output : String;
  9. var orange : boolean = true;
  10. var toSend : String;
  11. var medalID : int;
  12. var green : boolean = false;
  13. var receive : WWW;
  14.  
  15. function Start () {
  16.     N0 = 256;
  17.     yield WaitForSeconds (3);
  18.     unlockMedal (medalID);
  19. }
  20.  
  21. function unlockMedal (a : int) {
  22.     text = '{"command_id":"unlockMedal","publisher_id":' + PublisherId + ',"session_id":"' + SessionID + '","medal_id":' + a +'}';
  23.     guiText.text += text + "\n";
  24.     yield WaitForSeconds (2);
  25.     SecurePacket ();   
  26. }
  27.  
  28. var encoding = new System.Text.UTF8Encoding();
  29.  
  30. function SecurePacket () {
  31.     genSeed ();
  32.     hash = Md5Sum (seed);
  33.     test = EnDeCrypt();
  34.     test = StrToHexStr(test);
  35.     test = hash + test;
  36.     radix(test);
  37.     toSend = '{"command_id":"securePacket","tracker_id":"' + APIID + '","secure":"' + output + '"}';
  38.     guiText.text += toSend + "\n";
  39.     var headers : Hashtable = new Hashtable();
  40.     headers.Add("Content-type", "application/json");
  41.     receive = new WWW ("http://www.ngads.com/gateway_v2.php", encoding.GetBytes(toSend), headers);
  42.     green = true;
  43. }
  44.  
  45. function Update () {
  46.     if (orange) {
  47.         Application.ExternalEval(" UnityObject2.instances[0].getUnity().SendMessage('Newgrounds', 'bob', document.location.href);");
  48.         orange = false;
  49. }   if (green && receive.isDone) {
  50.         guiText.text += receive.text;
  51.         green = false;
  52. }}
  53.  
  54. function genSeed () {
  55.     seed = "";
  56.     iter = Random.Range (10,32);
  57.     for (i = 0; i < iter; i++) {
  58.         a = Random.Range (-26,36);
  59.         if (a == -26)
  60.             seed += "z";
  61.         else if (a == -25)
  62.             seed += "y";
  63.         else if (a == -24)
  64.             seed += "x";
  65.         else if (a == -23)
  66.             seed += "w";
  67.         else if (a == -22)
  68.             seed += "v";
  69.         else if (a == -21)
  70.             seed += "u";
  71.         else if (a == -20)
  72.             seed += "t";
  73.         else if (a == -19)
  74.             seed += "s";
  75.         else if (a == -18)
  76.             seed += "r";
  77.         else if (a == -17)
  78.             seed += "q";
  79.         else if (a == -16)
  80.             seed += "p";
  81.         else if (a == -15)
  82.             seed += "o";
  83.         else if (a == -14)
  84.             seed += "n";
  85.         else if (a == -13)
  86.             seed += "m";
  87.         else if (a == -12)
  88.             seed += "l";
  89.         else if (a == -11)
  90.             seed += "k";
  91.         else if (a == -10)
  92.             seed += "j";
  93.         else if (a == -9)
  94.             seed += "i";
  95.         else if (a == -8)
  96.             seed += "h";
  97.         else if (a == -7)
  98.             seed += "g";
  99.         else if (a == -6)
  100.             seed += "f";
  101.         else if (a == -5)
  102.             seed += "e";
  103.         else if (a == -4)
  104.             seed += "d";
  105.         else if (a == -3)
  106.             seed += "c";
  107.         else if (a == -2)
  108.             seed += "b";
  109.         else if (a == -1)
  110.             seed += "a";
  111.         else if (a == 26)
  112.             seed += "Z";
  113.         else if (a == 25)
  114.             seed += "Y";
  115.         else if (a == 24)
  116.             seed += "X";
  117.         else if (a == 23)
  118.             seed += "W";
  119.         else if (a == 22)
  120.             seed += "V";
  121.         else if (a == 21)
  122.             seed += "U";
  123.         else if (a == 20)
  124.             seed += "T";
  125.         else if (a == 19)
  126.             seed += "S";
  127.         else if (a == 18)
  128.             seed += "R";
  129.         else if (a == 17)
  130.             seed += "Q";
  131.         else if (a == 16)
  132.             seed += "P";
  133.         else if (a == 15)
  134.             seed += "O";
  135.         else if (a == 14)
  136.             seed += "N";
  137.         else if (a == 13)
  138.             seed += "M";
  139.         else if (a == 12)
  140.             seed += "L";
  141.         else if (a == 11)
  142.             seed += "K";
  143.         else if (a == 10)
  144.             seed += "J";
  145.         else if (a == 9)
  146.             seed += "I";
  147.         else if (a == 8)
  148.             seed += "H";
  149.         else if (a == 7)
  150.             seed += "G";
  151.         else if (a == 6)
  152.             seed += "F";
  153.         else if (a == 5)
  154.             seed += "E";
  155.         else if (a == 4)
  156.             seed += "D";
  157.         else if (a == 3)
  158.             seed += "C";
  159.         else if (a == 2)
  160.             seed += "B";
  161.         else if (a == 1)
  162.             seed += "A";
  163.         else if (a == 0)
  164.             seed += "0";
  165.         else
  166.             seed += (a-26);
  167. }}
  168.  
  169. function Md5Sum (strToEncrypt: String) {
  170.     var encoding = System.Text.UTF8Encoding();
  171.     var bytes = encoding.GetBytes(strToEncrypt);
  172.     var md5 = System.Security.Cryptography.MD5CryptoServiceProvider();
  173.     var hashBytes:byte[] = md5.ComputeHash(bytes);
  174.     var hashString = "";
  175.     for (var i = 0; i < hashBytes.Length; i++) {
  176.         hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, "0"[0]);
  177. }   return hashString.PadLeft(32, "0"[0]);
  178. }
  179.  
  180. function EnDeCrypt() {
  181.     RC4Initialize();
  182.     var i : int = 0;
  183.     var j : int = 0;
  184.     var k : int = 0;
  185.         var cipher = "";
  186.         for (a = 0; a < text.Length; a++) {
  187.             i = ((i + 1) % N0);
  188.             j = ((j + sbox[i]) % N0);
  189.             var tempSwap : int = sbox[i];
  190.             sbox[i] = sbox[j];
  191.             sbox[j] = tempSwap;
  192.             k = sbox[(sbox[i] + sbox[j]) % N0];
  193.             var cipherBy : int = text[a];
  194.             cipherBy = cipherBy ^ k;
  195.             cipher += (System.Convert.ToChar(cipherBy));
  196. }       return cipher;
  197. }  
  198.  
  199. function StrToHexStr(str : String) {
  200.     var sb = "";
  201.     for (i = 0; i < str.Length; i++) {
  202.         var v : int = str[i];
  203.         sb += (String.Format("{0:X2}", v));
  204. }   return sb;
  205. }
  206.  
  207. function HexStrToStr(hexStr : String) {
  208.     var sb = "";
  209.     for (i = 0; i < hexStr.Length; i += 2) {
  210.         var n : int = parseInt(hexStr.Substring(i, 2));
  211.             sb += (System.Convert.ToChar(n));
  212. }   return sb;        
  213. }
  214.  
  215. private var key : int[];
  216. private var n : int;
  217.    
  218. function RC4Initialize() {
  219.     sbox = new int[N0];
  220.     key = new int[N0];
  221.     n = password.Length;
  222.     for (a = 0; a < N0; a++)    {
  223.         key[a] = (password[a % n]);
  224.         sbox[a] = a;
  225. }   var b : int = 0;
  226.         for (a = 0; a < N0; a++)    {
  227.             b = (b + sbox[a] + key[a]) % N0;
  228.             var tempSwap : int = sbox[a];
  229.             sbox[a] = sbox[b];
  230.             sbox[b] = tempSwap;
  231. }}
  232.  
  233. private var rad : String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
  234. private var block : String = "";
  235. private var car : char;
  236. private var l : int;
  237.  
  238. function radix (g : String) {
  239.     output = "";
  240.     for (i = 0; (i< g.Length-6); i+=6) {
  241.         block = "";
  242.         var d : int = System.Int32.Parse(g.Substring(i,6), System.Globalization.NumberStyles.AllowHexSpecifier);
  243.         for (j = 0; j<4; j++){
  244.             l = d % 79;
  245.             car = rad[l];
  246.             d -= l;
  247.             d /= 79;
  248.             block = car + block;
  249. }       output +=block;
  250. }   block = "";
  251.     var o : int = System.Int32.Parse(g.Substring(g.Length-(g.Length%6),(g.Length%6)), System.Globalization.NumberStyles.AllowHexSpecifier);
  252.     for (j = 0; j<4; j++){
  253.         l = o % 79;
  254.         car = rad[l];
  255.         o -= l;
  256.         o /= 79;
  257.         block = car + block;
  258. }   output +=block;
  259.     output = (output.Length % 6) + output;
  260. }
  261.  
  262. private var parameters : String[];
  263. var SessionID : String;
  264. var UserID : int;
  265. var UserName : String;
  266. var DefaultUsername : String;
  267. var APIID : String;
  268. var PublisherId : int;
  269.  
  270. //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");
  271. //copy of a valid URL for offline testing
  272.  
  273. function bob (data : String) {
  274.     var Delimiters : String[] = ['?','&','='];
  275.     parameters = data.Split (Delimiters, System.StringSplitOptions.RemoveEmptyEntries);
  276.     for (i = 0; i < parameters.length; i++)
  277.         parameters[i] = WWW.UnEscapeURL (parameters[i]);
  278.     for (j = 0; j < parameters.length; j++){
  279.         guiText.text += parameters[j] + "\n";
  280.         if (parameters[j] == "NewgroundsAPI_SessionID")
  281.             SessionID = parameters[j+1];
  282.         else if (parameters[j] == "NewgroundsAPI_UserID")
  283.             UserID = parseInt(parameters[j+1]);
  284.         else if (parameters[j] == "NewgroundsAPI_UserName")
  285.             UserName = parameters[j+1];
  286.         else if (parameters[j] == "NewgroundsAPI_PublisherID")
  287.             PublisherId = parseInt(parameters[j+1]);
  288. }   if (UserName == "&lt;deleted&gt;")
  289.         UserName = DefaultUsername;
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement