mcrypt_decrypt函数卡在永恒循环中

时间:2015-10-27 17:42:46

标签: actionscript-3 flash actionscript mcrypt

我正在通过解密功能解决问题。我对Actionscript不太熟悉,但是当我运行这个函数时,它会进行无限循环。

private function mcrypt_decrypt(param1:Array, param2:Number,param3:Number): Array {
 var _loc4_:* = -9.57401312E8;
 while(_loc4_)
 {
    var param3:Number = param3 - ((param2 << 4 ^ param2 >>> 5) + param2 ^ _loc4_ + param1[_loc4_ >>> 11 & 3]);
    _loc4_ = _loc4_ - -1640531527;
    var param2:Number = param2 - ((param3 << 4 ^ param3 >>> 5) + param3 ^ _loc4_ + param1[_loc4_ & 3]);
 }
 return [param2,param3];
}

从测试中我看到 loc4 以-9.57401312E8开始,然后每次删除迭代继续-1640531527,但在什么情况下这会满足while条件?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

因为这个原因,你的功能陷入了永恒的循环:

_loc4_ = _loc4_ - -1640531527;

双减号与加号相同。由于该值永远不为零,因此循环中的求值始终返回true。