Minify / Obfuscate PHP Kodu [kapalı]

6 Cevap php

I haXe php kodu oluşturmak için kullanabilirsiniz. (Bu size haXe dilde kod ve derleme sonra php dosyaları bir demet olsun yazmak anlamına gelir.) Bugün bir müşteri o haXe ile yapılan eski bir proje üzerinde yeni bir özellik ihtiyacı olduğunu söyledi. O da kendi ihtiyaçları için kod bazı küçük şeyler değişmiş söyledi. Şimdi ben ilk benim haxe koduna liman onun değişiklikleri ve aksi takdirde onun değişiklikleri ben projeyi derlemek sonraki zaman yazılır olacak çünkü sonra, yeni özellik eklemek.

To prevent that this happens again I am looking for some kind of program that minifies / obfuscates the PHP code. The goal is to make the code unreadable / uneditable as possible.
The ideal tool would run under Linux and could process whole folders and all it containing files.

Herkes herhangi bir öneriniz?

6 Cevap

Ben açıklama, ne yapıyorsun çok gizli olduğunu katılıyorum, ama bu biz 10 yıl sonra ben bir şey kanıtlamak olsun: Yarım kod yanı minified olabilir yani kıvrık ve gerçekten / var işlev adları sık sık tamamen keyfi vardır, ben minified js düzenlenmiş ettik ve bazı unminified kod daha bir güçlük kadar fazla değildi.

Bu daha az asla, biraz el altından PHP ruhuna aykırı tür ve çünkü büyük olasılıkla böyle bir script / program bulamadı.

İlk: Php öylesine bir dize dışında tüm satırsonlarını ve boşluk kaldırmak için adım, duyarlı boşluk değildir.

İşte bu karışıklık zor ortalama tamirci için, bir ara programcı sadece bulmak ve tüm yerini alacak ile yapacak; {} $ 1 \ n ya da bu yönde bir şey.

Bir sonraki adım get_defined_functions olmak ve bu diziyi (dönen dizide 'kullanıcı' tuşu) kaydetmek istiyorsunuz, bunu yapmak için tüm dosyaları dahil etmek gerekir.

O oo kod varsa, siz de get_defined_classes gerekir. Bu diziyi kaydedin.

Esasen, bunu sınıf ve get_object_vars örneğini gerekecek, değişkenleri, yöntemleri ve sınıf örneklerini almak gerekiyor, ve etrafında kurcalamak ve diğer bilgi bir sürü alabilirsiniz görmek, sabitleri gibi ve sınıf vb değişkenler olabilir .

Sonra, onlar aracılığıyla, döngü bu listeleri almak her şey için benzersiz bir ad oluşturun ve sonra preg_replace veya str_replace bu dosyaların tüm.

Bir test kopyası üzerinde bunu yapmak, ve ne olsun hataları görmek emin olun.

Rağmen, sadece temiz olması için, şaşırtmaca aşkına allak bullak insanlar için ayrılmış cehennemde özel bir yeri var.

Çıkış: get_defined_functions get_declared_classes ve sadece ne yapabileceğini görmek için etrafında bağlantıları takip edin.

Neden fonksiyonu php Buid php_strip_whitespace() kullanmayın

string php_strip_whitespace ( string $filename )

PHP boşluklar ve yorumlardan kaldırıldı ile dosya içinde PHP kaynak kodunu döndürür. Bu yorumların miktarı ile karşılaştırıldığında asıl PHP kod miktarını belirlemek için yararlı olabilir. Bu komut ile php-w kullanmaya benzer.

Biz Zend Guard, belirli müşterileri ile PHP kodu kodlamak için kullanabilirsiniz, ancak Papağanlar da dediği gibi, you kodunu kendi emin olmak gerekir. Biz sadece belirli durumlarda kodlamak, sadece ve sadece biz kod sahipliğini korumak olduğunu açık bulunuyor, aksi takdirde Papağanlar doğru, istemci değiştirmek hakkına sahiptir.

I Zendguard, hayyam, onların deneme sürümü çekirdek kodunu şifrelemek için kullanılan biliyorum. Her zaman bunun için ödemek zorunda rağmen gitmek verebilir.

Ben noktasına onun değişiklikleri sahip hayal kırıklığını anlıyorum Ancak, ben sizden kodunu satın varsayıyorum? Onlar bunu değiştirme hakkına sahiptir. Sen sadece kendi değişiklikler onlar için durmuşsa, nasıl onlar hiç kodu güncellemek için başkasına kiralamak olabilir düşünün ;) noktasına ekstra onları şarj etmek hakkına sahip?

Sen PHP Obfuscator veya bcompiler PHP extension deneyebilirsiniz.

Bizim PHP Obfuscator yorum, whitespaces sıyırma ve tanımlayıcıları çabalıyorlar tam iş yok.

It operates across a complete set of PHP files to ensure that scrambled symbols are scrambled consistently across those files, ensuring correct operation even after scrambling.

EDIT 2013: Şimdi bunları okunmaz hale getirmek için dize değişmezleri şifreler. Windows altında, ve Wine altında Linux üzerinde çalışır.