使用grunt-hazy的混淆PHP有语法错误

时间:2016-04-08 15:08:20

标签: php gruntjs obfuscation

我开始了解Grunt,试图对我的测试php文件进行一些模糊处理。

这里是原始代码,只是一个简单的hello world

<?php
echo 'hello world';

使用grunt-hazy进行混淆:

<?php eval("?>".base64_decode("PD9waHANCmVjaG8gJ2hlbGxvIHdvcmxkJzs=")."<?"); ?>

错误:

Parse error: syntax error, unexpected '<' in D:\Projects\Grunter\hazed\index.php(1) : eval()'d code on line 2

这是我的Gruntfile

module.exports = function(grunt){
    grunt.initConfig({
        hazy: {
            php: {
                expand: true,
                cwd: '',
                dest: 'hazed',
                src: [ '*.php' ]
            }
        },
        watch: {
            scripts: {
                files: ['*.php'],
                tasks: ['hazy']
            }
        }
    });

    grunt.loadNpmTasks('grunt-hazy');
    grunt.loadNpmTasks('grunt-contrib-watch');
};

我做错了什么?这是插件的错误吗?

1 个答案:

答案 0 :(得分:4)

查看通过eval运行的已解码代码,您就可以了。

?><?php
echo 'hello world';<?

正如您所看到的,您关闭了一个PHP标记,然后它打开一个新标记,回显一些文本,然后尝试打开另一个标记而不关闭第一个标记。

如果您尝试在测试脚本中添加一个结束的PHP标记,我猜它会正常工作。