Как это расшифровать?

Discussion in 'PHP' started by master13, 20 Jun 2009.

  1. master13

    master13 New Member

    Joined:
    31 Dec 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Что это за кодировка? И Как расшифровать, заранее спасибо.
    Code:
    6N9b2fuHkayL0dJNnjRHtCn8n59IUaJ80cnHOHnVtgAVtgAHvC9cnjRctgA8n5yL0xz40Ioj0aWL3HnenjZcU1G4kHn8n59Lki4j0aWL3HnenjAHvC9V0iu8Uxy4njRH0dw5GCn8nIo73dkL0Ioj0aWL3HnenjZcU1G4kHn8nIwV3dJZnjRHG54ZkxsHvC9j0IoN0dyL0dJNnjRHOQGjyaw5nHVH2CneygAVvC9b2fAHOjE8n5yBGi982d4ZkSnetSVHUaJM0xwBGd9IUxWV2dEHOjY8n5yBGi980xFNka4BnjRzvC9j0amb35J83NnenIu8UfZ83coL3CWb2xz4fcu8UfZ80d4BkSWb2xz4fa9hUa88G5J8Gxz4vikL0d9h35W705Y8XCW5GxW8viybUf9bnHVHk54N3co535FMkSnetHVHUamb35Wj0aWL35JakfnHOH95k5k5k5UHvC9MnjRHG54ZkxsHvC9j0IoN0d9IUxWV2dENnjRVvjt8n5yBGi980xFNka4B0dw5GCnetNVH0dFBkNnenI9znHVHUamb35Wh054MkSnetSVHGd4VU5GLnjRVvjY8n5yBGi98U5Gh0iuRUQEHOjABtNVH3ahLGamh0xYHOjE8n5yBGi980xFNka4B354I2iTHOjt8nIu8GiwMUItHOjE8n5k70dYHOH9RGioVOHsLUaoBvIoz359Lk5480SmNGSJIkfoa2xo40NsbOgZLyg94UQk5UaUltjnVyQu4Uj3zUayhyat1OxnWUaFjOgTHvC9V0cybkfnHOH9RGioVOHsL2xzIvIoz359Lk5480SmNGSJn0cw1kSsbyg3ct1tVtjtNtan1yaUbtgTWUjTlyakZkQUataEcUanB2IuInHVHUaJM0xwBGCnenZhLGfy4nEbBoClDvNgT4yC+bv=oDMC+bUADbKfT8ydgbUEDnCARbKiTMGCcbvpTLQRDtgY8nyCMbv/TByCcbvpTMCAVtSZsUInDv1mE6x4BkNug2dFBkaw1nEwakf9mGdh7053DvNgTRGCsbvfoDydCbUVDbv1TMGCJbU/TMGdCnyCNbUioZSn8nIyb35wh0SnetSVH3coNkxFMGi4VkSnen5J5kIy4GC9J
     
  2. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Если выложил бы строку до обфускации(шифрования) и после то можно было еще подумать, а так хз.
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    master13 Если есть только эта строка без ничего - то никак (это не банальный base64 или gzdeflate). Если есть скрипт, который это использует - то скрипт в студию
     
    _________________________
  4. master13

    master13 New Member

    Joined:
    31 Dec 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    не это не скрипт, это зашифрованый файл стиля в uppod.ru.
    Code:
    package com.util 
    {
        import flash.utils.*;
        
        public class Base64 extends Object
        {
            public function Base64()
            {
                super();
                throw new Error("Base64 class is static container only");
            }
    
            public static function enc_replace_ab(arg1:String, arg2:String, arg3:String):String
            {
                var loc1:*;
                loc1 = new RegExp(arg1, "g");
                var loc2:*;
                loc2 = new RegExp(arg2, "g");
                arg3 = arg3.replace(loc1, "___");
                arg3 = arg3.replace(loc2, arg1);
                arg3 = arg3.replace(new RegExp("___", "g"), arg2);
                return arg3;
            }
    
            public static function encode(arg1:String):String
            {
                var loc1:*;
                loc1 = new flash.utils.ByteArray();
                loc1.writeUTFBytes(arg1);
                var loc2:*;
                loc2 = encodeByteArray(loc1);
                loc2 = enc_replace(loc2, "e");
                return loc2;
            }
    
            public static function enc_replace(arg1:String, arg2:String):String
            {
                var loc3:*;
                loc3 = null;
                var loc4:*;
                loc4 = null;
                var loc1:*;
                loc1 = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "W", "G", "X", "M", "H", "R", "U", "Z", "I", "D", "=", "N", "Q", "V", "B", "L"];
                var loc2:*;
                loc2 = ["b", "z", "a", "c", "l", "m", "e", "p", "s", "J", "x", "d", "f", "t", "i", "o", "Y", "k", "n", "g", "r", "y", "T", "w", "u", "v"];
                if (arg2 == "e")
                {
                    loc3 = loc1;
                    loc4 = loc2;
                }
                if (arg2 == "d")
                {
                    loc3 = loc2;
                    loc4 = loc1;
                }
                var loc5:*;
                loc5 = 0;
                while (loc5 < loc3.length) 
                {
                    arg1 = enc_replace_ab(loc3[loc5], loc4[loc5], arg1);
                    ++loc5;
                }
                return arg1;
            }
    
            public static function encodeByteArray(arg1:flash.utils.ByteArray):String
            {
                var loc2:*;
                loc2 = null;
                var loc4:*;
                loc4 = 0;
                var loc5:*;
                loc5 = 0;
                var loc6:*;
                loc6 = 0;
                var loc1:*;
                loc1 = "";
                var loc3:*;
                loc3 = new Array(4);
                arg1.position = 0;
                while (arg1.bytesAvailable > 0) 
                {
                    loc2 = new Array();
                    loc4 = 0;
                    while (loc4 < 3 && arg1.bytesAvailable > 0) 
                    {
                        loc2[loc4] = arg1.readUnsignedByte();
                        loc4 = (loc4 + 1);
                    }
                    loc3[0] = (loc2[0] & 252) >> 2;
                    loc3[1] = (loc2[0] & 3) << 4 | loc2[1] >> 4;
                    loc3[2] = (loc2[1] & 15) << 2 | loc2[2] >> 6;
                    loc3[3] = loc2[2] & 63;
                    loc5 = loc2.length;
                    while (loc5 < 3) 
                    {
                        loc3[(loc5 + 1)] = 64;
                        loc5 = (loc5 + 1);
                    }
                    loc6 = 0;
                    while (loc6 < loc3.length) 
                    {
                        loc1 = loc1 + BASE64_CHARS.charAt(loc3[loc6]);
                        loc6 = (loc6 + 1);
                    }
                }
                return loc1;
            }
    
            public static function decode(arg1:String):String
            {
                arg1 = enc_replace(arg1, "d");
                var loc1:*;
                loc1 = decodeToByteArray(arg1);
                return loc1.readUTFBytes(loc1.length);
            }
    
            public static function decodeToByteArray(arg1:String):flash.utils.ByteArray
            {
                var loc5:*;
                loc5 = 0;
                var loc6:*;
                loc6 = 0;
                var loc1:*;
                loc1 = new flash.utils.ByteArray();
                var loc2:*;
                loc2 = new Array(4);
                var loc3:*;
                loc3 = new Array(3);
                var loc4:*;
                loc4 = 0;
                while (loc4 < arg1.length) 
                {
                    loc5 = 0;
                    while (loc5 < 4 && loc4 + loc5 < arg1.length) 
                    {
                        loc2[loc5] = BASE64_CHARS.indexOf(arg1.charAt(loc4 + loc5));
                        loc5 = (loc5 + 1);
                    }
                    loc3[0] = (loc2[0] << 2) + ((loc2[1] & 48) >> 4);
                    loc3[1] = ((loc2[1] & 15) << 4) + ((loc2[2] & 60) >> 2);
                    loc3[2] = ((loc2[2] & 3) << 6) + loc2[3];
                    loc6 = 0;
                    while (loc6 < loc3.length) 
                    {
                        if (loc2[(loc6 + 1)] == 64)
                        {
                            break;
                        }
                        loc1.writeByte(loc3[loc6]);
                        loc6 = (loc6 + 1);
                    }
                    loc4 = loc4 + 4;
                }
                loc1.position = 0;
                return loc1;
            }
    
            public static const version:String="1.0.0";
    
            private static const BASE64_CHARS:String="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        }
    }
    
    этот код вроде зашифровывает исходный текст... это flex..
     
    #4 master13, 20 Jun 2009
    Last edited: 20 Jun 2009
  5. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Это base64, по всей видимости исходный "текст" - ByteArray(возможно SWF-данные(или поток) как текст в Base64) поэтому после декодирования получаем такой результат.
     
    #5 PaCo, 20 Jun 2009
    Last edited: 20 Jun 2009
  6. master13

    master13 New Member

    Joined:
    31 Dec 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
  7. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    2master13 возможно я ошибаюсь, но что я хотел сказать что данные находятся в base64 и эти самые данные бинарные, то есть это не строка а например какая то часть flash ролика и etc, вопрос:
    что ты с ними хочешь делать и откуда это?
     
  8. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Один символ занимает 1 байт => В байтовом массиве может быть представлена как байтовая так и строкова информация.
    А судя из кода - харится текст
     
    #8 FireFenix, 20 Jun 2009
    Last edited: 20 Jun 2009
  9. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Молодец сумел в гугле вбить ByteArray
    Судя из кода там может "харится" все что хочешь.
     
    1 person likes this.
  10. master13

    master13 New Member

    Joined:
    31 Dec 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Ещё раз повтрою это стиль в сервисе uppod.ru. Я хо4у настроить плеер произвольным образом. Там скорее всего храняться переменные и их значения, т.к плеер настраиваеться спомощью этого стиля(в плеере все функции уже определены, а стиль включает нужные).
     
    #10 master13, 20 Jun 2009
    Last edited: 20 Jun 2009
  11. master13

    master13 New Member

    Joined:
    31 Dec 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    вот ещё что нашол. Там на сайте есть приложения, на флексе тоже. Оно генерирует стили эти, я попробовал перехватить данные при сохранении стиля, вот что получилось:
    Code:
    media=video&jstr%5F=%7C601%7C414%7C500%7C414%7Cffffff%7C0%7C0&jstr=6N9a0aWz0xYHOjABOSVHGNneyQAVvC9H0aomUaJ80cnHOHnVnHVH3dFZkd4BkNnetSVH3dWV0dFjkSnenI97kahbnHVH3dWb2CneygA8n59IUaJ80cnHOH95k5k5k5UHvC9j0amb35J83NnenIu8UfZ8U5Fj2NWb2xz4fcu8UfZ80d4BkSWb2xz4faF80CWa0aWz0xY8G5J8U5FN0d4BkSW5GxW8viu8Uf482fybvd9zk5k43Hn8n5bHOH9a2xo40Nn8nIu8GiwMUItVUxWV2dEHOjAByCVH3dJ1GdwNnjRH2iob3gRLvcGcGNm50ik52xWMvI9zvcuNkfk7kf3B2IuInHVHUamb35WMUf9I2xlHOjT8n5DHOjtcySVH0dFBkNnenI9znHVH3ahLGamh0xYHOjE8n5yBGi980cwbnjRWvC9b2fAHOjE8n5yBGi980cwb2dw7kahbnjR1Ofbr&id=85
    
    это другой стиль, не тот что в первом посте.
     
  12. alexz006

    alexz006 New Member

    Joined:
    28 Jan 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    вот тут расшифровывали nulled.ws но теперь там поменялся алгоритм (
    может кто поможет?
    вот что получается (без пробелов):
    Code:
    61AEEZykZ2NGnT31l1fwrcpsNkbSail1kwVG30shIdwbzC5yk1uYf1kOYkZ2MkbCayItj1m9BwdbzC5k42Qii63Gktj1KozC588CaDl1SNtHBw8hT30cLWNDkbSYfZjOEk0v1XAuYGl1CMcTd0ekbSal1C0BV9v1X1SQiopBwnQms9Dpv0Xe3wSVTWsDpv0dX1sQ3Q2GskTCGDpWNYnzB0XZv0zh9m0XbdwnIQd56L2MsXzsNkTWwZWTSQopBw5nQB5XT2Nsyp2wV9B5k4TSUhTd0eyp2wV9B5r6L2MXTfM7jF3NXisNBXHv1l1f07XR30cLWwrjzC5Ttj1KJz2wI9BwZbzC5kN3QQ3Q3Q3zkOnk1mwXRWNfvz31X1fa8JaJaJaj1Dl1k0nTWwzjL2Q6zmNbJzC5I1Jayl1CMkbSael1SQi6dMYXzBGDY31eXexaDAjOTk1xNtHBw8hG3NXzBGTDY31X1fwb692MWzkODkZWwbHsGNkbk18NdOy3hjQktj1afRdwnYdwHf9vwjzC52kev0ktj1avL2NXzfUrr
    новый класс Base64 в плеере:
    Code:
    //      class Base64
    package com.util 
    {
        import com.uppod.*;
        import flash.utils.*;
        public class Base64 extends Object
        {
            public function Base64()
            {
                super();
                throw new Error("Base64 class is static container only");
            }
            public static function enc_replace_ab(arg1:String, arg2:String, arg3:String):String
            {
                var loc4:*;
                var loc5:*;
                loc4 = new RegExp(arg1, "g");
                loc5 = new RegExp(arg2, "g");
                arg3 = arg3.replace(loc4, "___");
                arg3 = arg3.replace(loc5, arg1);
                arg3 = arg3.replace(new RegExp("___", "g"), arg2);
                return arg3;
            }
            public static function encode(arg1:String):String
            {
                var loc2:*;
                var loc3:*;
                loc2 = new ByteArray();
                loc2.writeUTFBytes(arg1);
                loc3 = encodeByteArray(loc2);
                loc3 = enc_replace(loc3, "e");
                return loc3;
            }
            private static function enc_replace(arg1:String, arg2:String, arg3:Boolean=false):String
            {
                var loc4:*;
                var loc5:*;
                var loc6:*;
                var loc7:*;
                var loc8:*;
                var loc9:*;
                loc5 = null;
                loc7 = null;
                loc8 = null;
                loc4 = new ByteObject();
                loc5 = [];
                loc5 = loc4.V[0];
                loc6 = loc4.V[1];
                arg1 = loc4.tr(arg1, 114, 65);
                if (arg1.substr(-1) == "!")
                {
                    arg1 = arg1.substr(0, -1);
                    loc5 = loc4.I[0];
                    loc6 = loc4.I[1];
                }
                if (!(loc4.Client == null) && !arg3)
                {
                    if (loc4.Client.codec_a != null)
                    {
                        loc5 = loc4.Client.codec_a;
                        loc6 = loc4.Client.codec_b;
                    }
                }
                if (arg2 == "e")
                {
                    loc7 = loc5;
                    loc8 = loc6;
                }
                if (arg2 == "d")
                {
                    loc7 = loc6;
                    loc8 = loc5;
                }
                loc9 = 0;
                while (loc9 < loc7.length) 
                {
                    arg1 = enc_replace_ab(loc7[loc9], loc8[loc9], arg1);
                    ++loc9;
                }
                return arg1;
            }
            public static function encodeByteArray(arg1:flash.utils.ByteArray):String
            {
                var loc2:*;
                var loc3:*;
                var loc4:*;
                var loc5:*;
                var loc6:*;
                var loc7:*;
                loc3 = null;
                loc5 = 0;
                loc6 = 0;
                loc7 = 0;
                loc2 = "";
                loc4 = new Array(4);
                arg1.position = 0;
                while (arg1.bytesAvailable > 0) 
                {
                    loc3 = new Array();
                    loc5 = 0;
                    while (loc5 < 3 && arg1.bytesAvailable > 0) 
                    {
                        loc3[loc5] = arg1.readUnsignedByte();
                        loc5 = (loc5 + 1);
                    }
                    loc4[0] = (loc3[0] & 252) >> 2;
                    loc4[1] = (loc3[0] & 3) << 4 | loc3[1] >> 4;
                    loc4[2] = (loc3[1] & 15) << 2 | loc3[2] >> 6;
                    loc4[3] = loc3[2] & 63;
                    loc6 = loc3.length;
                    while (loc6 < 3) 
                    {
                        loc4[(loc6 + 1)] = 64;
                        loc6 = (loc6 + 1);
                    }
                    loc7 = 0;
                    while (loc7 < loc4.length) 
                    {
                        loc2 = loc2 + BASE64_CHARS.charAt(loc4[loc7]);
                        loc7 = (loc7 + 1);
                    }
                }
                return loc2;
            }
            public static function decode(arg1:String, arg2:Boolean=false):String
            {
                var loc3:*;
                arg1 = enc_replace(arg1, "d", arg2);
                loc3 = decodeToByteArray(arg1);
                return loc3.readUTFBytes(loc3.length);
            }
            public static function decodeToByteArray(arg1:String):flash.utils.ByteArray
            {
                var loc2:*;
                var loc3:*;
                var loc4:*;
                var loc5:*;
                var loc6:*;
                var loc7:*;
                loc6 = 0;
                loc7 = 0;
                loc2 = new ByteArray();
                loc3 = new Array(4);
                loc4 = new Array(3);
                loc5 = 0;
                while (loc5 < arg1.length) 
                {
                    loc6 = 0;
                    while (loc6 < 4 && loc5 + loc6 < arg1.length) 
                    {
                        loc3[loc6] = BASE64_CHARS.indexOf(arg1.charAt(loc5 + loc6));
                        loc6 = (loc6 + 1);
                    }
                    loc4[0] = (loc3[0] << 2) + ((loc3[1] & 48) >> 4);
                    loc4[1] = ((loc3[1] & 15) << 4) + ((loc3[2] & 60) >> 2);
                    loc4[2] = ((loc3[2] & 3) << 6) + loc3[3];
                    loc7 = 0;
                    while (loc7 < loc4.length) 
                    {
                        if (loc3[(loc7 + 1)] == 64)
                        {
                            break;
                        }
                        loc2.writeByte(loc4[loc7]);
                        loc7 = (loc7 + 1);
                    }
                    loc5 = loc5 + 4;
                }
                loc2.position = 0;
                return loc2;
            }
            public static const version:String="1.0.0";
            private static const BASE64_CHARS:String="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        }
    }
     
    #12 alexz006, 26 Oct 2009
    Last edited: 26 Oct 2009
  13. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Code:
    {"lang":"ru","cntrlcolor":"f8f8f8","uppod":"video","cntrlbgalpha2":0.15,"cntrlhide":1,"h":325,"screencolor":"333333","bgcolor":"ffffff","pltumbs":1,"controls":"play,back,line,time_play,|,time_all,volume,volbarline,full,start,procent,buffer,run_line,run_volume","tip":1,"plth":40,"w":425,"cntrlalpha":0.8,"m":"video","pltw":50,"id":"242","plmargin":1,"auto":"load"}