├── 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 | }
--------------------------------------------------------------------------------