任何人都可以解释下面的Flash ActionScript吗?

时间:2009-12-31 23:03:02

标签: actionscript

var \x01 = -712 + \x04\x05();
for (\x01 = eval("\x01") + 242; eval("\x01") == 765; \x01 = eval("\x01") - 27)
{
} 

这是有效的ActionScript吗?如果是这样的话呢?

2 个答案:

答案 0 :(得分:2)

好吧,如果它来自一个ActionScript文件,那么是的,它可能 工作。

在使用变量和函数的奇怪标识符方面肯定是一致的。这意味着它几乎可以肯定地通过某种混淆器来使你更难以完成你想要做的事情(反编译它是我的猜测,但我可能是错的)。

我不完全确定它在当前形式中有什么用处,因为for循环中没有正文。但代码本身似乎:

  • 将变量\x01设置为函数\x04\x05()返回的值少于712。
  • 循环使用特定值\x01,直到它不是765(这些似乎不常见 - 终止条件通常是不等式而不是等式 - 在这种情况下,似乎循环只会执行一次,因为您更改{{1}每次通过循环)。

基本上,对于有瑕疵的代码,你应该用更明智的代码替换奇怪的标识符,看看是否有意义。这是理解代码的第一步(但可能不是唯一需要的步骤)。

答案 1 :(得分:0)

如果这是SWFEncrypt之类的产品,那么这个输出并不反映出被混淆和加密的代码中实际发生的事情。我已经在示例之前/之后看过,并且没有任何押韵或理由产生它,至少在代码编辑器中查看时。除非你有办法解密二进制文件,否则几乎没有机会进行逆向工程。