Помогите исправить функцию

Discussion in 'Реверсинг' started by Fak1r, 25 Feb 2012.

  1. Fak1r

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

    Joined:
    3 Jun 2007
    Messages:
    36
    Likes Received:
    2
    Reputations:
    0
    Вытащил из флэшки функцию генерирующую hash.
    Запускаю функцию в Flash Builder получаю хэш отличный от создаваемого флэшкой.
    У меня получается - 6bb671486a1f2990ac5bbe25904dd11a
    У фэлехи - 33008d1daab632d3b2324d2b3db0b805
    Проект для Flash Builder http://narod.ru/disk/41874077001.54d3290d45ae3ae8fa8ae45733e3327b/funcsig.zip.html

    Функция:
    Code:
            //данные
            var rdata:Object = {sk:"0",dn:"0",uid:"0",c:"load"};
            public static function getSig(param1:Object) : URLRequest
            {
                var i:String;
                var request4:URLRequest;
                var j:int;
                var aa:int;
                var bb:int;
                var cc:int;
                var dd:int;
                var param:* = param1;
                var transform:* = function (param1:Function, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int, param8:int) : int
                {
                    var _loc_9:* = param2 + int(null.param1(param3, param4, param5)) + param6 + param8;
                    return IntUtil.rol(_loc_9, param7) + param3;
                }// end function
                ;
                var request:* = new URLRequest();
                var $44$:Array;
                var $33$:String;
                request.data = param;
                request.method = URLRequestMethod.POST;
                var _loc_3:int = 0;
                var _loc_4:* = request.data;
                while (_loc_4 in _loc_3)
                {
                    
                    i = _loc_4[_loc_3];
                    $44$.push({field:i, value:request.data[i]});
                }
                request4 = new URLRequest();
                $44$.sortOn("field");
                $44$.reverse();
                $33$;
                $44$.reverse();
                j;
                while (j < $44$.length)
                {
                    
                    $33$ = $33$ + ($44$[j].field + "=" + $44$[j].value + ",");
                    j = (j + 1);
                }
                $44$.reverse();
                $44$.reverse();
                if (param.t)
                {
                }
                if (param.t % 2)
                {
                    $33$ = $33$ + "j9rfOvopijmlear3";
                }
                else
                {
                    $33$ = $33$ + "gf65hgh78h5emvvq";
                }
                var a:int;
                var b:int;
                var c:int;
                var d:int;
                var md5:* = MD5.hash($33$);
                $44$.reverse();
                $44$.reverse();
                j;
                while (j < 32)
                {
                    
                    j = (j + 1);
                }
                request.data.x = md5;
                var digest:* = new ByteArray();
                digest.writeInt(a);
                digest.writeInt(b);
                digest.writeInt(c);
                digest.writeInt(d);
                digest.position = 0;
                return request;
            }
    
     
  2. focusnick

    focusnick New Member

    Joined:
    27 Feb 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    А оригинал флэшки можете вылить? И сказать где именно эта функция там находится - может декомпилятор что вы использовали напортачил?
    Ну и то что вы передаёте в эту функцию совпадает с тем, что туда передаётся в оригинальной swf?