├── README.md ├── composer.json └── src ├── Facades └── Obfuscator.php ├── Obfuscator.php └── ObfuscatorServiceProvider.php /README.md: -------------------------------------------------------------------------------- 1 | # laravel-obfuscator 2 | Obfuscator class for laravel. Basics on https://github.com/pH-7/Obfuscator-Class 3 | 4 | # Installation 5 | 6 | 1. Run `composer require denis-kisel/laravel-obfuscator` 7 | 2. Register a service provider in the `app.php` configuration file 8 | `DenisKisel\Obfuscator\ObfuscatorServiceProvider::class,` 9 | 3. Add facade in the same file 10 | `'Obfuscator' => DenisKisel\Obfuscator\Facade\Obfuscator::class` 11 | 12 | # Usage 13 | 14 | Example 1 15 | ```php 16 | Obfuscator::obfuscateFileFromTo($originalFile, $obfuscatedFile); 17 | ``` 18 | 19 | Example 2 20 | ```php 21 | $data = File::get($originalFile); 22 | File::put($obfuscatedFile, Obfuscator::obfuscateData($data)); 23 | ``` 24 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "denis-kisel/laravel-obfuscator", 3 | "description": "Class for obfuscate php script/class/code basics on https://github.com/pH-7/Obfuscator-Class.", 4 | "keywords": ["laravel","obfuscator"], 5 | "authors": [ 6 | { 7 | "name": "Denis Kisel", 8 | "email": "denis.kisel92@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "php": ">=7.0.0", 13 | "laravel-obfuscator": "dev-master" 14 | }, 15 | "autoload": { 16 | "psr-4": { 17 | "DenisKisel\\Obfuscator\\": "src/" 18 | } 19 | }, 20 | "extra": { 21 | "branch-alias": { 22 | "dev-master": "stable" 23 | }, 24 | "laravel": { 25 | "providers": [ 26 | "DenisKisel\\Obfuscator\\ObfuscatorServiceProvider" 27 | ], 28 | "aliases": { 29 | "Obfuscator": "DenisKisel\\Obfuscator\\Facades\\Obfuscator" 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Facades/Obfuscator.php: -------------------------------------------------------------------------------- 1 | sName = $sName; 22 | $this->sData = $sData; 23 | 24 | $this->prepareData(); 25 | $this->encrypt(); 26 | 27 | return $this->prepareOutput(); 28 | } 29 | 30 | public function obfuscateFileFromTo($originalFile, $obfuscatedFile) { 31 | $content = file_get_contents($originalFile); 32 | return file_put_contents($obfuscatedFile, $this->obfuscateData($content)); 33 | } 34 | 35 | private function prepareData() 36 | { 37 | $this->sData = str_replace(array(''), '', $this->sData); 38 | } 39 | 40 | private function prepareOutput() 41 | { 42 | return 'sOutput; 43 | } 44 | 45 | private function encrypt() 46 | { 47 | $this->sData = base64_encode($this->sData); 48 | $this->sPreOutput = <<<'DATA1' 49 | $____='printf';$___________='[NAME] Class...'; 50 | [BREAK] 51 | $___ = 'Y3JlYXRlX0ZVTkNUSU9O' ; 52 | $______= 'cmV0dXJuIGV2YWwoJF9fXyk7' ; 53 | $____ = 'base64_decode'; $___________='[DATA]'; 54 | $______=$____($______); $___=$____($___); $_____=$___('$___',$______); 55 | [BREAK] 56 | $_____($____($___________)); 57 | DATA1; 58 | $this->sOutput = <<<'DATA2' 59 | $__='printf';$_='Loading the [NAME] ...'; 60 | [BREAK] 61 | $_____=' b2JfZW5kX2NsZWFu'; $______________='cmV0dXJuIGV2YWwoJF8pOw=='; 62 | $__________________='Q1JFQXRlX2Z1bkNUaU9u'; 63 | $______=' Z3p1bmNvbXByZXNz'; $___=' b2Jfc3RhcnQ='; $____='b2JfZ2V0X2NvbnRlbnRz'; $__= 'base64_decode' ; $______=$__($______); $__________________=$__($__________________); $______________=$__($______________); 64 | $__________=$__________________('$_',$______________); $_____=$__($_____); $____=$__($____); $___=$__($___); $_='[PRE_OUTPUT]'; 65 | $___();$__________($______($__($_))); $________=$____(); 66 | $_____(); echo [BREAK] $________; 67 | DATA2; 68 | $this->make(); 69 | } 70 | private function make() 71 | { 72 | $sSpaces = $this->makeBreak(99 + (strlen($this->sName) * 4)); // Most people will have their PC bugged if they want to modify the code with an editor 73 | $this->sPreOutput = str_replace(array('[DATA]', '[NAME]', '[BREAK]'), array($this->sData, $this->sName, $sSpaces . "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), $this->sPreOutput); 74 | $this->sOutput = str_replace(array('[PRE_OUTPUT]', '[NAME]', '[BREAK]'), array(base64_encode(gzcompress($this->sPreOutput, 9)), $this->sName, $sSpaces), $this->sOutput); 75 | } 76 | /** 77 | * @param int $iNum 78 | * 79 | * @return string 80 | */ 81 | private function makeBreak($iNum) 82 | { 83 | $sToken = "\r\n"; 84 | return str_repeat($sToken, $iNum); 85 | } 86 | } -------------------------------------------------------------------------------- /src/ObfuscatorServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->singleton('obfuscator', function() 31 | { 32 | return new Obfuscator; 33 | }); 34 | } 35 | 36 | /** 37 | * Get the services provided by the provider. 38 | * 39 | * @return array 40 | */ 41 | public function provides() 42 | { 43 | return ['obfuscator']; 44 | } 45 | 46 | } --------------------------------------------------------------------------------