-
Notifications
You must be signed in to change notification settings - Fork 23
/
make_obfuscate.php
110 lines (98 loc) · 3.79 KB
/
make_obfuscate.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
/*
*
* File ini bagian dari:
*
* OpenSID
*
* Sistem informasi desa sumber terbuka untuk memajukan desa
*
* Aplikasi dan source code ini dirilis berdasarkan lisensi GPL V3
*
* Hak Cipta 2009 - 2015 Combine Resource Institution (http://lumbungkomunitas.net/)
* Hak Cipta 2016 - 2024 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
*
* Dengan ini diberikan izin, secara gratis, kepada siapa pun yang mendapatkan salinan
* dari perangkat lunak ini dan file dokumentasi terkait ("Aplikasi Ini"), untuk diperlakukan
* tanpa batasan, termasuk hak untuk menggunakan, menyalin, mengubah dan/atau mendistribusikan,
* asal tunduk pada syarat berikut:
*
* Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam
* setiap salinan atau bagian penting Aplikasi Ini. Barang siapa yang menghapus atau menghilangkan
* pemberitahuan ini melanggar ketentuan lisensi Aplikasi Ini.
*
* PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, BAIK TERSURAT MAUPUN
* TERSIRAT. PENULIS ATAU PEMEGANG HAK CIPTA SAMA SEKALI TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU
* KEWAJIBAN APAPUN ATAS PENGGUNAAN ATAU LAINNYA TERKAIT APLIKASI INI.
*
* @package OpenSID
* @author Tim Pengembang OpenDesa
* @copyright Hak Cipta 2009 - 2015 Combine Resource Institution (http://lumbungkomunitas.net/)
* @copyright Hak Cipta 2016 - 2024 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
* @license http://www.gnu.org/licenses/gpl.html GPL V3
* @link https://github.com/OpenSID/OpenSID
*
*/
if (! file_exists('Obfuscator.php')) {
file_put_contents('Obfuscator.php', file_get_contents('https://raw.githubusercontent.com/pH-7/Obfuscator-Class/master/src/Obfuscator.php'));
}
require 'Obfuscator.php';
$onlyDirectory = [
'app',
'donjo-app/core',
'donjo-app/helpers',
'donjo-app/controllers',
'donjo-app/models',
'donjo-app/third_party/pelanggan/libraries',
'donjo-app/third_party/MX',
];
$exceptDirectory = [
'Providers',
'migrations',
'views',
'DevelBar',
'security',
];
$onlyFile = [
// 'general_helper.php',
];
$exceptFile = [
'general_helper.php',
'Install.php',
'ViewServiceProvider.php',
'Router.php',
];
foreach ($onlyDirectory as $list) {
cekFile($list, $exceptDirectory, $onlyFile, $exceptFile);
}
function cekFile($onlyDirectory, $exceptDirectory, $onlyFile, $exceptFile)
{
if ($onlyDirectory) {
foreach (glob($onlyDirectory . '/*') as $cek) {
if (is_file($cek) && pathinfo($cek)['extension'] === 'php') {
// Only File
if ($onlyFile && ! (in_array($cek, $onlyFile) || preg_match('/' . implode('|', $onlyFile) . '/', basename($cek)))) {
continue;
}
// Except File
if ($exceptFile && (in_array($cek, $exceptFile) || preg_match('/' . implode('|', $exceptFile) . '/', basename($cek)))) {
continue;
}
if (file_exists($cek)) {
$sData = file_get_contents($cek);
$sData = str_replace(['<?php', '<?', '?>'], '', $sData); // We strip the open/close PHP tags
$sObfusationData = new Obfuscator($sData, $cek);
file_put_contents($cek, '<?php ' . "\r\n" . $sObfusationData);
}
} else {
// Except Directory
// contoh 1 : donjo-app/models/migrasi
// contoh 2 : migrasi
if ($exceptDirectory && (in_array($cek, $exceptDirectory) || preg_match('/' . implode('|', $exceptDirectory) . '/', basename($cek)))) {
continue;
}
cekFile($cek, $exceptDirectory, $onlyFile, $exceptFile);
}
}
}
}