Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var key:* = new getDefinitionByName("flash.utils.ByteArray")();
- var AuthentificationManager:Object = getDefinitionByName("com.ankamagames.dofus.logic.connection.managers::AuthentificationManager");
- var ciMsg:Class = getDefinitionByName("com.ankamagames.dofus.network.messages.security::CheckIntegrityMessage") as Class;
- var ConnectionsHandler:Object = getDefinitionByName("com.ankamagames.dofus.kernel.net::ConnectionsHandler");
- key["writeByte"](_SLXGMDWX(-450) ^ -827787 ^ _SLIOWOMDLD);
- key["writeByte"](_SIMDXLGXXL(-297) ^ -100687 ^ _SEMHMXXIHOG);
- key["writeByte"](-37694 - _SEIOWEGOMMW(759) ^ _SOOHEHOHLD);
- key["writeByte"](_SEWXDEEXIGO(427) ^ -155009 ^ _SEHGMODLLGX);
- key["writeByte"](-2415766 - _SLXGMDWX(-822) ^ _SDXHWGEWOHL);
- key["writeByte"](-37786 - _SEIOWEGOMMW(-130) ^ _SMIODMMMGE);
- key["writeByte"](_SEMMGXEELDL(-538) + -65998 ^ _SOWHMLEEH);
- key["writeByte"](_SEWXDEEXIGO(468) ^ -155030 ^ _SEMHIXDHGOH);
- key["writeByte"](58127 - _SEEEXWGOEGI(923) ^ _SEWWEELGEXD);
- key["writeByte"](_SEEEXWGOEGI(1) + -58918 ^ _SWOHMEODG);
- key["writeByte"](_SEMMGXEELDL(593) + -65981 ^ _SEXHLHGMELM);
- key["writeByte"](_SEWXDEEXIGO(154) ^ -155134 ^ _SLGHXEEGXD);
- key["writeByte"](_SEMMGXEELDL(624) ^ -65939 ^ _SEWIMEEXWOD);
- key["writeByte"](_SEEEXWGOEGI(-504) + -59561 ^ _SEGXIGWOLMG);
- key["writeByte"](_SEEEXWGOEGI(-449) ^ -179689 ^ _SLDGOMOEMI);
- key["writeByte"](-29118 - _SEMDMOMMGXX(-785) ^ _SEWGGHMEXHX);
- var FastBase64:Object = lfc["contentLoaderInfo"]["applicationDomain"]["getDefinition"]("by.blooddy.crypto.Base64");
- var xorKey:ByteArray = FastBase64["decode"]("499O/gT1b8borJMuqCgKVA==");
- var keyLen:uint = 128; // Là
- hashKey = new ByteArray(); // Là
- var i:int = 0; // Là
- while(i < keyLen / 8) // Là
- {
- hashKey["writeByte"](Math["random"]() * 256 - 128); // Là
- i++;
- }
- var dataToEncrypt:ByteArray = new getDefinitionByName("flash.utils.ByteArray")(); // Là
- dataToEncrypt["writeUTF"](!!AuthentificationManager["getInstance"]()["gameServerTicket"]?AuthentificationManager["getInstance"]()["gameServerTicket"]:""); // Là
- dataToEncrypt["writeShort"](hashKey["length"]); // Là
- dataToEncrypt["writeBytes"](hashKey); // Là
- dataToEncrypt["position"] = 0; // Là
- var key2:ByteArray = new ByteArray(); // Là
- i = 0;
- while(i < key.length)
- {
- key2["writeByte"](key[key["length"] - i - 1] ^ xorKey[i % xorKey["length"]] ^ decoyXorKey); // Là
- i++;
- }
- var s:Stage = getDefinitionByName("com.ankamagames.jerakine.utils.display::StageShareManager")["stage"];
- var tMc:int = getTimer();
- var q:String = s["quality"];
- s["quality"] = StageQuality["HIGH"];
- var mc2:MovieClip = new HumanCheck(_passer); // Là
- mc2["gotoAndStop"](_SLXGMDWX(-978) + 778663);
- var bd2:BitmapData = new getDefinitionByName("flash.display.BitmapData")(300,225);
- bd2["draw"](mc2);
- var color:uint = 0;
- var colorCount:uint = 0;
- var colorIndex:Dictionary = new Dictionary();
- var pba:ByteArray = bd2["getPixels"](bd2["rect"]);
- pba["position"] = 0;
- while(pba["bytesAvailable"])
- {
- color = pba["readUnsignedInt"]();
- if(!colorIndex[color])
- {
- colorIndex[color] = 1;
- colorCount++;
- }
- else
- {
- colorIndex[color]++;
- }
- }
- var threshold:uint = bd2["rect"]["width"] * bd2["rect"]["height"] * 0.005;
- var colors:Array = [];
- var k:uint = 0;
- for(c in colorIndex)
- {
- if(colorIndex[c] > threshold)
- {
- colors["push"]({
- "color":c,
- "count":colorIndex[c]
- });
- }
- }
- colors["sortOn"]("count",Array["DESCENDING"] | Array["NUMERIC"]);
- hashColor = new ByteArray();
- lastColorCount = uint["MAX_VALUE"];
- ci = 0;
- while(ci < colors.length)
- {
- if(lastColorCount - colors[ci]["count"] > 100)
- {
- lastColorCount = colors[ci]["count"];
- hashColor["writeUnsignedInt"](colors[ci]["color"]);
- }
- ci++;
- }
- var key3:ByteArray = new ByteArray();
- key3["writeUTFBytes"](lfc["contentLoaderInfo"]["applicationDomain"]["getDefinition"]("by.blooddy.crypto.MD5")["hashBytes"](hashColor)); // Là
- key3["position"] = 0;
- i = 0;
- while(i < key.length)
- {
- key2[i] = key2[i] ^ key3[i]; // Là
- i++;
- }
- s["quality"] = q;
- var dataIndex:uint = 0;
- while(dataIndex < dataToEncrypt.length)
- {
- dataToEncrypt[dataIndex] = dataToEncrypt[dataIndex] ^ key2[dataIndex % key2["length"]]; // Là
- dataIndex++;
- }
- var tsRsa:int = getTimer();
- var publicModulo:ByteArray = pad["decodeToByteArray"]("ANVSLM7puohleitNeLl26XK2Bu/hUPVYbgQiFxx0qT3cHGfVmWkb+dgWYAnbvzstsdxVlW5mE3WcFJHw1mwRdQoI/PZXbjM/8MRbSEsrpBVlsVlFXuVmy4vslba5k6eZ8arlzB7o3GOGUIPKBLthVEPd+6ePfK7v6HVKUwRh8zsaagVE5GNLGM51Ems6N96Q3xUuinlyK0eWXFUXJEmQKDnZIs6+HlRkBAcRdGDKSPRr0+RkYt1oHmcSgL6M368daPHGsOj/yFd1BBEl3g1brQhxxmENDFfLmNQkNNH17QIyJqwMy0QT+b/3ljuERqXLdXq0TgdQ1UjwVYIyLxR6/zs=");
- var rsaKeyNetwork:RSAKey = new RSAKey(new BigInteger(publicModulo),parseInt("65537")); // Là
- var rsaCryptedData:ByteArray = new ByteArray(); // Là
- rsaKeyNetwork["encrypt"](dataToEncrypt,rsaCryptedData,dataToEncrypt["length"]); // Là
- var _AESKey:Class = lfc["contentLoaderInfo"]["applicationDomain"]["getDefinition"]("com.hurlant.crypto.symmetric.AESKey") as Class; // Là
- dofusInstance.stage.loaderInfo.applicationDomain.getDefinition("com.ankamagames.jerakine.network::NetworkMessage")["HASH_FUNCTION"] = function(param1:ByteArray):void
- {
- var _loc2_:ByteArray = new ByteArray();
- _loc2_["writeBytes"](HumanCheck["hash"](param1));
- _loc2_["position"] = 0;
- pad = new TLSPad();
- mode = new SimpleIVMode(new CBCMode(new _AESKey(hashKey),pad));
- pad["setBlockSize"](mode["getBlockSize"]());
- mode["encrypt"](_loc2_);
- param1["position"] = param1["length"];
- param1["writeBytes"](_loc2_);
- }; // Là
- var ret:Vector.<int> = new Vector.<int>();
- rsaCryptedData["position"] = 0; // Là
- i = 0;
- while(rsaCryptedData["bytesAvailable"] != 0)
- {
- n = rsaCryptedData["readByte"](); // Là
- ret[i] = n; // Là
- i++;
- }
- var msg:* = new ciMsg(); // Là
- msg["initCheckIntegrityMessage"](ret); // Là
- ConnectionsHandler["getConnection"]()["send"](msg); // Là PUTAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement