Я знакомлюсь с Грантом, пытаюсь запутать мой тестовый php-файл.
Вот оригинальный код, просто привет мир
<?php
echo 'hello world';
Обфусцируется с помощью хрюканства:
<?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');
};
Что я делаю неправильно? Это ошибка с плагином?
Глядя на декодированный код, который прошел через eval, вы получите это.
?><?php
echo 'hello world';<?
Итак, как вы можете видеть, вы закрываете тег PHP, затем он открывает новый, повторяет некоторый текст, затем пытается открыть другой тег, не закрывая первый.
Если вы попытаетесь добавить закрывающий тег PHP в ваш тестовый скрипт, я думаю, он будет работать нормально.
Других решений пока нет …