pk-fr / yakpro-po

YAK Pro - Php Obfuscator
http://www.php-obfuscator.com
Other
1.3k stars 368 forks source link

Failing to obfuscate anonymous classes #72

Closed CortexPE closed 4 years ago

CortexPE commented 4 years ago

I'm trying to obfuscate a class that contains abstract classes, code below:

class PressurePlateBoundingBoxFixer extends ModuleBase {
    public function onLoad(): void {
        BlockFactory::registerBlock(new class extends StonePressurePlate {
            protected function recalculateBoundingBox(): ?AxisAlignedBB {
                return PressurePlateBoundingBoxFixer::getBoundingBox($this);
            }
        }, true);
        /* ... */
    }

    public static function getBoundingBox(Block $block): AxisAlignedBB {
        return new AxisAlignedBB(/* ... */);
    }
}

This then results to the error below with the specific stacktrace:

Obfuscating /var/lib/jenkins/workspace/TeaSpoon/obf/src/CortexPE/TeaSpoon/module/impl/PressurePlateBoundingBoxFixer.php

Fatal error: Uncaught TypeError: Argument 1 passed to MyNodeVisitor::get_identifier_name() must implement interface PhpParser\Node, null given, called in /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/include/classes/parser_extensions/my_node_visitor.php on line 83 and defined in /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/include/classes/parser_extensions/my_node_visitor.php:45
Stack trace:
#0 /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/include/classes/parser_extensions/my_node_visitor.php(83): MyNodeVisitor->get_identifier_name(NULL)
#1 /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/PHP-Parser/lib/PhpParser/NodeTraverser.php(123): MyNodeVisitor->enterNode(Object(PhpParser\Node\Stmt\Class_))
#2 /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/PHP-Parser/lib/PhpParser/NodeTraverser.php(146): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Expr\New_))
#3 /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/PHP-Parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Arg)) in /var/lib/jenkins/workspace/TeaSpoon/yakpro-po/include/classes/parser_extensions/my_node_visitor.php on line 45
pk-fr commented 4 years ago

thanx for your report... fixed in 2.0.12