Merhaba,
Ioncube sistemi gibi kendi php kodlarımı şifrelemek istiyorum. Bunu nasıl yapabilirim?
Kendi Şifrelememi Yapmak İstiyorum
5
●256
- 08-08-2023, 16:11:52
- 10-08-2023, 05:01:012017 yılında bunun için şöyle bir şey düşünmüşüm..
Diyelim ki projenin en kafa sınıf dosyası var.
Örneğin bir haber çekme botu yapmışım..
Kodların başlama şekli bu şekilde;


Daha sonra bunları şifreleyebilecek bir PHP fonksiyonu düşünmüşüm..
Bu fonksiyon ile kodları aşağıdaki hale getirmişim, bu şekilde bir kaç kişiye verdiğimi hatırlıyorum;


Şifreleme fonksiyonumda şunlar;
<?php // Belirli uzunlukta rastgele bir dize oluşturan fonksiyon function generateRandomString($length = 10, $type = false) { if ($type) $salt = "0123456789"; else $salt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $len = strlen($salt); $makepass = ''; mt_srand(10000000*(double)microtime()); for ($i = 0; $i < $length; $i++) { $makepass .= $salt[mt_rand(0, $len - 1)]; } return $makepass; } // Dosyadaki fonksiyonları değiştiren ve yeniden adlandıran ana işlev $file = file_get_contents('newsBot.php'); $fnc = array(); preg_match_all("/function\s(.+?)\((.*?)\)/i", $file, $matches); foreach ($matches[1] as $key) { $file = str_replace('function ' . $key . '(', 'function ' . md5($key) . '(', $file); $file = str_replace('$this->' . $key . '(', '$this->' . md5($key) . '(', $file); $fnc[md5($key)] = $key; } // "$this->" ile başlayan anahtarları değiştiren ana işlev preg_match_all("/\\\$this->([A-Z0-9][A-Z0-9_]+)\s=/i", $file, $matches); $keys = array(); foreach ($matches[1] as $key) { $to = generateRandomString(3) . generateRandomString(3, true) . generateRandomString(10); if (isset($keys[$key])) $to = $keys[$key]; else $keys[$key] = $to; $file = str_replace('$this->' . $key . ',', '$this->' . $to . ',', $file); // Diğer değişiklikler benzer şekilde yapılır... } // "$" ile başlayan anahtarları değiştiren işlev preg_match_all("/\\$([A-Z0-9][A-Z0-9_]+)\s=/i", $file, $matches); foreach ($matches[1] as $key) { $to = generateRandomString(3) . generateRandomString(3, true) . generateRandomString(10); if (isset($keys[$key])) $to = $keys[$key]; else $keys[$key] = $to; // Değişiklikler benzer şekilde yapılır... } // Array anahtarlarını değiştiren işlev preg_match_all("/\\['(.*)'\\]\s/i", $file, $matches2); $keys = array(); $allowed_keys = array('Site', 'title', 'meta_keywords', 'meta_description', 'short_content', 'site', 'content', 'image', 'id', 'lastId', 'username', 'password', 'link', 'Session'); foreach ($matches2[1] as $key) { if (!in_array($key, $keys)) $keys[] = $key; } foreach ($allowed_keys as $key) { $str = ''; for ($i=0; $i<=strlen($key); $i++) { if ($i) $str .= ". /* " . generateRandomString() . " */\n\r"; $str .= "'" . substr($key, $i, 1) . "'"; } $file = str_replace("'{$key}'", $str, $file); } // Fonksiyon isimlerini geri değiştirme foreach ($fnc as $k => $v) { $file = str_replace('function ' . $k . '(', 'function ' . $v . '(', $file); $file = str_replace('$this->' . $k . '(', '$this->' . $v . '(', $file); } $file = str_replace("\t", "", $file); // İşlenmiş kodu bir dosyaya yazma file_put_contents('newsBot.min.php', $file); ?>Umarım fikir verir.. - 11-08-2023, 15:55:45@aponkral; tarafından yapılan PHPKoru var. ioncube gibi extension olarak çalışıyor. CPanel, plesk desteği de varsinanyilmaz47 adlı üyeden alıntı: mesajı görüntüle
- 11-08-2023, 16:01:01Evet, o sistemi biliyorum. Fakat dediğim gibi ioncube, phpkoru gibi kendi kodlarımı şifreleyebileceğim bir sistem yapmak istiyorum.rmzonl adlı üyeden alıntı: mesajı görüntüle



