Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь в расшифровке через AS3 
:(
    Опции темы
netsecuritate
Дата 4.5.2014, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.5.2014

Репутация: нет
Всего: нет



Добрый день!

Впервые столкнулся с AS3, и необходима помощь:
Есть два скрипта которые раскриптовывают определенную константу.
Для меня, как человека не знакомого даже с синтаксисом AS, перевести их на
С или VB будет достаточно долго. А запустить эти скрипты в среде AS не получается.

Если кто-то мне может помочь, расшифруйте пожалуйста константу _key. Спасибо заранее...

Скрипт Key.as6:

Код

package 
{
   public class SecureKey extends Object
   {
      
      public function SecureKey () {
         super();
      }
      
      public static const _key:String = "`165`dgc`8dg580:7f1:`60e63`e76`:";
      
      public static function key(param1:Function) : String {
         return MD5.encrypt(param1(_key));
      }
   }
}


Скрипт MD5.as:
Код

package 
{
   public class MD5 extends Object
   {
      
      public function MD5() {
         super();
      }
      
      public static function encrypt(param1:String) :0 String {
         var _loc2_:Array = null;
         var _loc3_:uint = 0;
         var _loc4_:uint = 0;
         var _loc5_:uint = 0;
         var _loc6_:uint = 0;
         var _loc7_:uint = 0;
         var _loc8_:uint = 0;
         var _loc9_:uint = 0;
         var _loc10_:uint = 0;
         var _loc11_:uint = 0;
         var _loc12_:uint = 7;
         var _loc13_:uint = 12;
         var _loc14_:uint = 17;
         var _loc15_:uint = 22;
         var _loc16_:uint = 5;
         var _loc17_:uint = 9;
         var _loc18_:uint = 14;
         var _loc19_:uint = 20;
         var _loc20_:uint = 4;
         var _loc21_:uint = 11;
         var _loc22_:uint = 16;
         var _loc23_:uint = 23;
         var _loc24_:uint = 6;
         var _loc25_:uint = 10;
         var _loc26_:uint = 15;
         var _loc27_:uint = 21;
         var param1:String = u8e(due(param1));
         _loc2_ = cwa(param1);
         _loc8_ = 1732584193;
         _loc9_ = 4.023233417E9;
         _loc10_ = 2.562383102E9;
         _loc11_ = 271733878;
         _loc3_ = 0;
         while(_loc3_ < _loc2_.length)
         {
            _loc4_ = _loc8_;
            _loc5_ = _loc9_;
            _loc6_ = _loc10_;
            _loc7_ = _loc11_;
            _loc8_ = FF(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 0],_loc12_,3.61409036E9);
            _loc11_ = FF(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 1],_loc13_,3.90540271E9);
            _loc10_ = FF(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 2],_loc14_,606105819);
            _loc9_ = FF(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 3],_loc15_,3.250441966E9);
            _loc8_ = FF(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 4],_loc12_,4.118548399E9);
            _loc11_ = FF(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 5],_loc13_,1200080426);
            _loc10_ = FF(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 6],_loc14_,2.821735955E9);
            _loc9_ = FF(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 7],_loc15_,4.249261313E9);
            _loc8_ = FF(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 8],_loc12_,1770035416);
            _loc11_ = FF(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 9],_loc13_,2.336552879E9);
            _loc10_ = FF(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 10],_loc14_,4.294925233E9);
            _loc9_ = FF(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 11],_loc15_,2.304563134E9);
            _loc8_ = FF(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 12],_loc12_,1804603682);
            _loc11_ = FF(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 13],_loc13_,4.254626195E9);
            _loc10_ = FF(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 14],_loc14_,2.792965006E9);
            _loc9_ = FF(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 15],_loc15_,1236535329);
            _loc8_ = GG(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 1],_loc16_,4.129170786E9);
            _loc11_ = GG(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 6],_loc17_,3.225465664E9);
            _loc10_ = GG(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 11],_loc18_,643717713);
            _loc9_ = GG(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 0],_loc19_,3.921069994E9);
            _loc8_ = GG(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 5],_loc16_,3.593408605E9);
            _loc11_ = GG(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 10],_loc17_,38016083);
            _loc10_ = GG(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 15],_loc18_,3.634488961E9);
            _loc9_ = GG(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 4],_loc19_,3.889429448E9);
            _loc8_ = GG(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 9],_loc16_,568446438);
            _loc11_ = GG(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 14],_loc17_,3.275163606E9);
            _loc10_ = GG(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 3],_loc18_,4.107603335E9);
            _loc9_ = GG(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 8],_loc19_,1163531501);
            _loc8_ = GG(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 13],_loc16_,2.850285829E9);
            _loc11_ = GG(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 2],_loc17_,4.243563512E9);
            _loc10_ = GG(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 7],_loc18_,1735328473);
            _loc9_ = GG(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 12],_loc19_,2.368359562E9);
            _loc8_ = HH(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 5],_loc20_,4.294588738E9);
            _loc11_ = HH(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 8],_loc21_,2.272392833E9);
            _loc10_ = HH(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 11],_loc22_,1839030562);
            _loc9_ = HH(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 14],_loc23_,4.25965774E9);
            _loc8_ = HH(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 1],_loc20_,2.763975236E9);
            _loc11_ = HH(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 4],_loc21_,1272893353);
            _loc10_ = HH(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 7],_loc22_,4.139469664E9);
            _loc9_ = HH(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 10],_loc23_,3.200236656E9);
            _loc8_ = HH(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 13],_loc20_,681279174);
            _loc11_ = HH(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 0],_loc21_,3.936430074E9);
            _loc10_ = HH(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 3],_loc22_,3.572445317E9);
            _loc9_ = HH(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 6],_loc23_,76029189);
            _loc8_ = HH(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 9],_loc20_,3.654602809E9);
            _loc11_ = HH(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 12],_loc21_,3.873151461E9);
            _loc10_ = HH(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 15],_loc22_,530742520);
            _loc9_ = HH(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 2],_loc23_,3.299628645E9);
            _loc8_ = II(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 0],_loc24_,4.096336452E9);
            _loc11_ = II(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 7],_loc25_,1126891415);
            _loc10_ = II(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 14],_loc26_,2.878612391E9);
            _loc9_ = II(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 5],_loc27_,4.237533241E9);
            _loc8_ = II(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 12],_loc24_,1700485571);
            _loc11_ = II(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 3],_loc25_,2.39998069E9);
            _loc10_ = II(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 10],_loc26_,4.293915773E9);
            _loc9_ = II(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 1],_loc27_,2.240044497E9);
            _loc8_ = II(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 8],_loc24_,1873313359);
            _loc11_ = II(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 15],_loc25_,4.264355552E9);
            _loc10_ = II(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 6],_loc26_,2.734768916E9);
            _loc9_ = II(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 13],_loc27_,1309151649);
            _loc8_ = II(_loc8_,_loc9_,_loc10_,_loc11_,_loc2_[_loc3_ + 4],_loc24_,4.149444226E9);
            _loc11_ = II(_loc11_,_loc8_,_loc9_,_loc10_,_loc2_[_loc3_ + 11],_loc25_,3.174756917E9);
            _loc10_ = II(_loc10_,_loc11_,_loc8_,_loc9_,_loc2_[_loc3_ + 2],_loc26_,718787259);
            _loc9_ = II(_loc9_,_loc10_,_loc11_,_loc8_,_loc2_[_loc3_ + 9],_loc27_,3.951481745E9);
            _loc8_ = adu(_loc8_,_loc4_);
            _loc9_ = adu(_loc9_,_loc5_);
            _loc10_ = adu(_loc10_,_loc6_);
            _loc11_ = adu(_loc11_,_loc7_);
            _loc3_ = _loc3_ + 16;
         }
         var _loc28_:String = wth(_loc8_) + wth(_loc9_) + wth(_loc10_) + wth(_loc11_);
         return _loc28_.toLowerCase();
      }
      
      private static function rot_l(param1:uint, param2:uint) : uint {
         return param1 << param2 | param1 >>> 32 - param2;
      }
      
      private static function adu(param1:uint, param2:uint) : uint {
         var _loc3_:uint = 0;
         var _loc4_:uint = 0;
         var _loc5_:uint = 0;
         var _loc6_:uint = 0;
         var _loc7_:uint = 0;
         _loc5_ = param1 & 2.147483648E9;
         _loc6_ = param2 & 2.147483648E9;
         _loc3_ = param1 & 1073741824;
         _loc4_ = param2 & 1073741824;
         _loc7_ = (param1 & 1073741823) + (param2 & 1073741823);
         if(_loc3_ & _loc4_)
         {
            return _loc7_ ^ 2.147483648E9 ^ _loc5_ ^ _loc6_;
         }
         if(_loc3_ | _loc4_)
         {
            if(_loc7_ & 1073741824)
            {
               return _loc7_ ^ 3.221225472E9 ^ _loc5_ ^ _loc6_;
            }
            return _loc7_ ^ 1073741824 ^ _loc5_ ^ _loc6_;
         }
         return _loc7_ ^ _loc5_ ^ _loc6_;
      }
      
      private static function F(param1:uint, param2:uint, param3:uint) : uint {
         return param1 & param2 | ~param1 & param3;
      }
      
      private static function G(param1:uint, param2:uint, param3:uint) : uint {
         return param1 & param3 | param2 & ~param3;
      }
      
      private static function H(param1:uint, param2:uint, param3:uint) : uint {
         return param1 ^ param2 ^ param3;
      }
      
      private static function I(param1:uint, param2:uint, param3:uint) : uint {
         return param2 ^ (param1 | ~param3);
      }
      
      private static function FF(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint) : uint {
         var param1:uint = adu(param1,adu(adu(F(param2,param3,param4),param5),param7));
         return adu(rot_l(param1,param6),param2);
      }
      
      private static function GG(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint) : uint {
         var param1:uint = adu(param1,adu(adu(G(param2,param3,param4),param5),param7));
         return adu(rot_l(param1,param6),param2);
      }
      
      private static function HH(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint) : uint {
         var param1:uint = adu(param1,adu(adu(H(param2,param3,param4),param5),param7));
         return adu(rot_l(param1,param6),param2);
      }
      
      private static function II(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint) : uint {
         var param1:uint = adu(param1,adu(adu(I(param2,param3,param4),param5),param7));
         return adu(rot_l(param1,param6),param2);
      }
      
      private static function cwa(param1:String) : Array {
         var _loc2_:uint = 0;
         var _loc3_:uint = param1.length;
         var _loc4_:* = _loc3_ + 8;
         var _loc5_:uint = (_loc4_ - _loc4_ % 64) / 64;
         var _loc6_:uint = (_loc5_ + 1) * 16;
         var _loc7_:Array = new Array(_loc6_ - 1);
         var _loc8_:uint = 0;
         var _loc9_:uint = 0;
         while(_loc9_ < _loc3_)
         {
            _loc2_ = (_loc9_ - _loc9_ % 4) / 4;
            _loc8_ = _loc9_ % 4 * 8;
            _loc7_[_loc2_] = _loc7_[_loc2_] | param1.charCodeAt(_loc9_) << _loc8_;
            _loc9_++;
         }
         _loc2_ = (_loc9_ - _loc9_ % 4) / 4;
         _loc8_ = _loc9_ % 4 * 8;
         _loc7_[_loc2_] = _loc7_[_loc2_] | 128 << _loc8_;
         _loc7_[_loc6_ - 2] = _loc3_ << 3;
         _loc7_[_loc6_ - 1] = _loc3_ >>> 29;
         return _loc7_;
      }
      
      private static function wth(param1:uint) : String {
         var _loc4_:uint = 0;
         var _loc5_:uint = 0;
         var _loc2_:* = "";
         var _loc3_:* = "";
         _loc5_ = 0;
         while(_loc5_ <= 3)
         {
            _loc4_ = param1 >>> _loc5_ * 8 & 255;
            _loc3_ = "0" + _loc4_.toString(16);
            _loc2_ = _loc2_ + _loc3_.substr(_loc3_.length - 2,2);
            _loc5_++;
         }
         return _loc2_;
      }
      
      private static function u8e(param1:String) : String {
         var _loc4_:uint = 0;
         var _loc2_:* = "";
         var _loc3_:uint = 0;
         while(_loc3_ < param1.length)
         {
            _loc4_ = param1.charCodeAt(_loc3_);
            if(_loc4_ < 128)
            {
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_);
            }
            else if(_loc4_ > 127 && _loc4_ < 2048)
            {
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_ >> 6 | 192);
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_ & 63 | 128);
            }
            else
            {
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_ >> 12 | 224);
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_ >> 6 & 63 | 128);
               _loc2_ = _loc2_ + String.fromCharCode(_loc4_ & 63 | 128);
            }
            
            _loc3_++;
         }
         return _loc2_;
      }
      
      private static function due(param1:String) : String {
         var _loc2_:* = "";
         var _loc3_:* = 0;
         while(_loc3_ < param1.length)
         {
            _loc2_ = _loc2_ + String.fromCharCode(param1.charCodeAt(_loc3_) ^ (!_loc3_?param1.length % 5:(param1.charCodeAt(_loc3_ - 1) + _loc3_) % 5));
            _loc3_++;
         }
         return _loc2_;
      }
   }
}

PM MAIL   Вверх
SoWa
Дата 5.5.2014, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



Вопрос непонятен. В коде происходит следующее: есть константа. Методу класса передается некая функция F(String):String, которой обрабатывается эта константа, а полученный результат хэшируется с помощью MD5.
Т.е. константа служит только для получения новых данных, и что в ней лежит - одному автору кода известно.
Так что нужно сделать?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
netsecuritate
Дата 5.5.2014, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.5.2014

Репутация: нет
Всего: нет



Спасибо. То есть скрипт MD5.as является стандартным криптованием алгоритма MD5? И функция encrypt в нем является аналогом действия библиотек MD5 в других языках?
PM MAIL   Вверх
Sanchezzz
Дата 6.5.2014, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: нет
Всего: 60



Цитата

 И функция encrypt в нем является аналогом действия библиотек MD5 в других языках? 

да.
Если в нужном вам ЯП это реализовано. Но за частую такие простые вещи уже написаны кем то).


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.1467 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.