Я работаю через функцию дешифрования и ударил стену. Я не очень разбираюсь в ActionScript, но когда я запускаю эту функцию, он переходит в бесконечный цикл.Функция mcrypt_decrypt, застрявшая в вечной петле
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 удаляется каждый раз, но в каком случае будет это удовлетворяет условию время? Есть идеи?
Вы уверены, что после каждой итерации? В наши дни я немного ржавый, используя ActionScript, поскольку это были годы, но эта строка _loc4_ = _loc4_ -1640531527; мне кажется, что он добавляет 1640531527 вместо вычитания ... всякий раз, когда я вижу знак двойного минуса, я вижу знак плюса. –
Из того, что я вижу, вывод после одной итерации составляет 683130215.0, а затем за другим его 2323661742.0, после третьего - 3964193269.0. Таким образом, вы были бы правы в этом, но это только усложняет его дальнейшее, когда условие while будет удовлетворено ... –
время будет выходить только тогда, когда _loc4_ действительно равно 0, которое никогда не будет в вашем случае. – BotMaster