php yakpro-po混淆解密,yakpro-po.php

#!/usr/bin/env php

//========================================================================

// Author: Pascal KISSIAN

// Resume: http://pascal.kissian.net

//

// Copyright (c) 2015-2019 Pascal KISSIAN

//

// Published under the MIT License

// Consider it as a proof of concept!

// No warranty of any kind.

// Use and abuse at your own risks.

//========================================================================

if (isset($_SERVER["SERVER_SOFTWARE"]) && ($_SERVER["SERVER_SOFTWARE"]!="") ){ echo "

Comand Line Interface Only!

"; die; }

const PHP_PARSER_DIRECTORY = 'PHP-Parser';

require_once 'include/check_version.php';

require_once 'include/get_default_defined_objects.php'; // include this file before defining something....

require_once 'include/classes/config.php';

require_once 'include/classes/scrambler.php';

require_once 'include/functions.php';

require_once 'version.php';

include 'include/retrieve_config_and_arguments.php';

require_once 'include/classes/parser_extensions/my_autoloader.php';

require_once 'include/classes/parser_extensions/my_pretty_printer.php';

require_once 'include/classes/parser_extensions/my_node_visitor.php';

if ($clean_mode && file_exists("$target_directory/yakpro-po/.yakpro-po-directory") )

{

if (!$conf->silent) fprintf(STDERR,"Info:\tRemoving directory\t= [%s]%s","$target_directory/yakpro-po",PHP_EOL);//清楚模式 清空目标文件夹

remove_directory("$target_directory/yakpro-po");

exit;

}

use PhpParser\Error;

use PhpParser\ParserFactory;

use PhpParser\NodeTraverser;

use PhpParser\PrettyPrinter;

switch($conf->parser_mode)//php班恩

{

case 'PREFER_PHP7': $parser_mode = ParserFactory::PREFER_PHP7; break;

case 'PREFER_PHP5': $parser_mode = ParserFactory::PREFER_PHP5; break;

case 'ONLY_PHP7': $parser_mode = ParserFactory::ONLY_PHP7; break;

case 'ONLY_PHP5': $parser_mode = ParserFactory::ONLY_PHP5; break;

default: $parser_mode = ParserFactory::PREFER_PHP5; break;

}

$parser = (new ParserFactory)->create($parser_mode);

$traverser = new NodeTraverser;//节点转换器

if ($conf->obfuscate_string_literal) $prettyPrinter = new myPrettyprinter;

else $prettyPrinter = new PrettyPrinter\Standard;//格式化

$t_scrambler = array();

foreach(array('variable','function','method','property','class','class_constant','constant','label') as $scramble_what)

{

$t_scrambler[$scramble_what] = new Scrambler($scramble_what, $conf, ($process_mode=='directory') ? $target_directory : null);

}

if ($whatis!=='')

{

if ($whatis{0} == '$') $whatis = substr($whatis,1);

foreach(array('variable','function','method','property','class','class_constant','constant','label') as $scramble_what)

{

if ( ( $s = $t_scrambler[$scramble_what]-> unscramble($whatis)) !== '')

{

switch($scramble_what)

{

case 'variable':

case 'property':

$prefix = '$';

break;

default:

$prefix = '';

}

echo "$scramble_what: {$prefix}{$s}".PHP_EOL;

}

}

exit;

}

$traverser->addVisitor(new MyNodeVisitor);//节点访问器

switch($process_mode)

{

case 'file':

$obfuscated_str = obfuscate($source_file);

if ($obfuscated_str===null) { exit; }

if ($target_file ==='' ) { echo $obfuscated_str.PHP_EOL.PHP_EOL; exit; }

file_put_contents($target_file,$obfuscated_str);

exit;

case 'directory':

if (isset($conf->t_skip) && is_array($conf->t_skip)) foreach($conf->t_skip as $key=>$val) $conf->t_skip[$key] = "$source_directory/$val";

if (isset($conf->t_keep) && is_array($conf->t_keep)) foreach($conf->t_keep as $key=>$val) $conf->t_keep[$key] = "$source_directory/$val";

obfuscate_directory($source_directory,"$target_directory/yakpro-po/obfuscated");

exit;

}

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值