10

我有一个无法读取的 php 文件,因为所有变量/函数都有奇怪的名称!我的文件的一个功能块是:

public static function    …………  …… …  ($   ………  …  ……  , $   …… ………  ……  )
{
    $   …… ……   ……   = strpos(   …………… … ……  ::   ……… ……… …   ($   ………  …  ……  ) , $   …… ………  ……  );

    return (false !== $   …… ……   ……  ) ? (int)floor($   …… ……   ……   / 4) : false;
}

据我所知,php 标准不允许在可变名称中使用点和空格。

如果有什么相关的,我自己就来了character encoding!我发现,文件编码是windows-1252.

这些空格可以转换为可读的东西吗?

也因为它们是变量/函数,它们在文件中不止一次出现。

编辑#1

我像往常一样在 Widnows OS 下使用 Notepad++/Sublime Text 打开文件,但它没有付费或其他东西。

编辑#2

脚本没有问题!

编辑#3

文件链接:https://www.dropbox.com/s/hoegvk0vz53cnyn/include.php

4

2 回答 2

6

看来您的“空格”和“点”不是它们的样子。在您在问题中发布的代码中,这些实际上是“不间断空格”(c2 a0)和“省略号”(e2 80 a6)。这些是标识符中完全有效的字符。

(感谢 StackOverflow 100% 兼容 UTF-8)。

[编辑]

...但是查看了您链接的文件,文件编码是 Windows-1252(又名 CP1252)。答案仍然是正确的,但相应的二进制值与我上面提到的有点不同。

于 2013-07-19T13:19:05.913 回答
3

这是它转换为更具可读性的东西。

public static function    …………  …… …  ( $a , $b )
{
    $c = strpos( some_class::some_function($a), $b );
    return (false !== $c) ? (int)floor($c / 4) : false;
}

如果没有看到它引用的其他函数或它给出的错误消息,就很难看出它失败的原因。

这段代码被故意混淆是有原因的。也许是为了阻止人们摆弄,或者可能是因为它已获得许可。如果它不起作用,也许你应该尝试联系作者。

于 2013-07-19T13:10:38.213 回答