奇怪的变量/方法/类名-PHP
我有一个无法读取的php文件,因为所有变量/函数都有奇怪的名称! 我的文件的一个功能块是:奇怪的变量/方法/类名-PHP,php,Php,我有一个无法读取的php文件,因为所有变量/函数都有奇怪的名称! 我的文件的一个功能块是: public static function ………… …… … ($ ……… … …… , $ …… ……… …… ) { $ …… …… …… = strpos( …………… … …… :: ……… ……… … ($ ……… … …… ) , $ …… ……… …… ); return (false !== $
public static function ………… …… … ($ ……… … …… , $ …… ……… …… )
{
$ …… …… …… = strpos( …………… … …… :: ……… ……… … ($ ……… … …… ) , $ …… ……… …… );
return (false !== $ …… …… …… ) ? (int)floor($ …… …… …… / 4) : false;
}
我知道php标准不允许在变量名中使用点和空格
如果有什么与字符编码相关的东西,我自己就来了!我发现,文件编码是windows-1252
这些点和空格可以转换成可读的东西吗
此外,因为它们是变量/函数,所以它们在文件中有多个引用
已编辑#1
我像往常一样在Widnows操作系统下用Notepad++/Sublime文本打开文件,但它没有付费或其他东西
编辑#2
脚本工作没有问题
编辑#3
链接到文件:
https://www.dropbox.com/s/hoegvk0vz53cnyn/include.php
这里将其转换为更具可读性的内容
public static function ………… …… … ( $a , $b )
{
$c = strpos( some_class::some_function($a), $b );
return (false !== $c) ? (int)floor($c / 4) : false;
}
如果看不到它引用的其他函数或它给出的错误消息,就很难理解它失败的原因
然而,这段代码被故意混淆是有原因的。也许是为了阻止人们摆弄,也许是因为它是有执照的。如果它不起作用,也许你应该试着联系作者。看来你的“空格”和“点”不是它们看起来的样子。在您在问题中发布的代码中,这些实际上是“不间断空格”(c2 a0)和“省略号”(e2 80 a6)。这些是标识符中完全有效的字符
(感谢StackOverflow 100%兼容UTF-8)
[编辑]
。。。但是查看了链接的文件后,文件编码相当于Windows-1252(又名.CP1252)。答案仍然正确,但相应的二进制值与我上面提到的有点不同。这个文件是从哪里得到的?您获得的许可证是否允许您修改它?很明显,无论是谁提供的,都会费尽心思去混淆。当然,您可以使用可读性更强的字符替换垃圾,但除非您了解代码的作用,否则不能使用有用的变量名。可能是这样的一种变体:因为人们愚蠢,并且希望看到这样的结果:为什么我的sql查询不执行。。回到主题,如果代码是使用zend guard进行模糊处理的,则需要运行时扩展来消除代码的模糊code@revo它不是被盗就是恶意的。人们不会仅仅为了好玩而混淆代码。“我只知道这是不收费的,因为在脚本中许可有更多的步骤要做。”不确定这意味着什么,但它显然不是开源的,或者你会有可读的源代码。。。。我假设您的文件的实际编码是UTF-8。所以故事是这样的,它们是有效字符@revo是的,但是您发现您的文件确实是用Windows-1252编码的。