Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczanie aplikacji przed kradzieżą
Forum PHP.pl > Forum > PHP
Stron: 1, 2, 3
Jarod
MMCache, eAccelerator nie działa z php >= 5.2.x. Pozostały mi tylko obfuscatory php, ale okazuje się, że z nimi też są problemy. Przetestowałem różne, większość wersje trial (POBS i http://www.semdesigns.com/Products/Obfusca...Obfuscator.html wykłada się - tzn nie działa).

Jedyny darmowy soft, który zwrócił moją uwagę to: http://www.raizlabs.com/software/phpobfuscator/

Ale i tak mam problem. Każdą klasę trzymam w osobnym pliku i po przepuszczeniu przez taki obfuscator wszystko nadaje się do poprawy (po zmianie nazw klas i ich właściwości). Potrzebuję softu, który po zmianie np nazwy klasy Config, zmieni tę nazwę na taką samą we wszystkich plikach, do której jest odwołanie do tej klasy. Nie uśmiecha mi się poprawiać tego ręcznie, tym bardziej, że aplikację ciągle rozbudowuje i jest masa plików..

Znacie jakiś soft, który radziłby sobie z tym problemem?
fredzio90
a czy jakiś program do kodowania kodu php nie wystarczy, nie chodzi mi tutaj o Zend Encodera.... znalazłem taki zwykły programik do kodowania kodu. nie pamiętam nazwy, ale probowałem znaleźć dekoder takich zakodowanych plików i pierwsza strona w goglach w załączniku pobrałem taki rosyjski programik.... lecz nie w temacie może by nie wiedzieli jakim programem był zakodowany plik.....
nazwy peogramu nie pamiętam, ale znalazłem pliczki któe kodowałęm, org i zakodowany... a więc oryginalny wyglądał tak:

  1. <?php
  2. /**
  3.  * @author sHu 2007
  4.  * @copyright 2007
  5.  */
  6. echo date("H:i:s d/m/y");
  7. ?>


a zakodowany tak:

  1. <?php /* WARNING: This file is protected by copyright law. To reverse engineer or decod
    e this file is strictly prohibited. */
  2. $o="QAAAOzh3b3cKDQoNKC0tCg0nLQAAJ0dmcnNvaHUndE9yJzU3N0AUMAFTZGh3fnVuYG9zAUYoA1F
    iZAAA
  3. 2gnY2ZzYi8lTz1uPXQnYwEAKGoofiUuPAHRODk=";eval(base64_decode("JGxsbD0wO2V2YWwoYmFzZTY0X2RlY29kZSgiSkd4c2JHeHNiR3hzYkd4c1BTZGlZWE5sTmpSZlp
    HVmpi
  4. lJsSnpzPSIpKTskbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd3OUoyOXlaQ2M3I
  5. kpOyRsbGxsPTA7JGxsbGxsPTM7ZXZhbCgkbGxsbGxsbGxsbGwoIkpHdzlKR3hzYkd4c2JHeHNiR3hzS0
  6. SdktUcz0iKSk7JGxsbGxsbGw9MDskbGxsbGxsPSgkbGxsbGxsbGxsbCgkbFsxXSk8PDgpKyRsbGxsbGx
  7. bGxsKCRsWzJdKTtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JHdzlKM04wY214bGJp
  8. zciKSk7JGxsbGxsbGxsbD0xNjskbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGxsbGxsbGwoJ
  9. wpOyl7aWYoJGxsbGxsbGxsbD09MCl7JGxsbGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OC
  10. 7JGxsbGxsbCs9JGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTskbGxsbGxsbGxsPTE2O31pZigkbGxsbGx
  11. JjB4ODAwMCl7JGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8NCk7JGxsbCs9KCRsbGxsbGxs
  12. GxsKCRsWyRsbGxsbF0pPj40KTtpZigkbGxsKXskbGw9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSkmM
  13. gwZikrMztmb3IoJGxsbGw9MDskbGxsbDwkbGw7JGxsbGwrKykkbGxsbGxsbGxbJGxsbGxsbGwrJGxsbG
  14. dPSRsbGxsbGxsbFskbGxsbGxsbC0kbGxsKyRsbGxsXTskbGxsbGxsbCs9JGxsO31lbHNleyRsbD0oJGx
  15. bGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsKz0kbGxsbGxsbGxsbCgkbFskbGxsbGwrK10pKzE2
  16. 2ZvcigkbGxsbD0wOyRsbGxsPCRsbDskbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGwrK109JGxsbGxsbGxsb
  17. woJGxbJGxsbGxsXSkpOyRsbGxsbCsrOyRsbGxsbGxsKz0kbGw7fX1lbHNlJGxsbGxsbGxsWyRsbGxsbG
  18. sKytdPSRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSk7JGxsbGxsbDw8PTE7JGxsbGxsbGxsbC0tO31ldmF
  19. KCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JEMG5ZMmh5SnpzPSIpKTskbGxsbGw9MDtldmFs
  20. CRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkQwaVB5SXVKR3hzYkd4c2JHeHNiR3hzYkNnMk1pazciK
  21. k7JGxsbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGw7KXskbGxsbGxsbGxsbC49JGxsbGxsbG
  22. sbGxsbCgkbGxsbGxsbGxbJGxsbGxsKytdXjB4MDcpO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHN
  23. R3hzYkM0OUpHeHNiR3hzYkd4c2JHd3VKR3hzYkd4c2JHeHNiR3hzYkNnMk1Da3VJajhpT3c9PSIpKTtl
  24. mFsKCRsbGxsbGxsbGwpOw=="));return;?>
Spirit86
ej no sorry, ale to co napisałeś jest bez sensu, bez najmniejszego problemu można wyciągnąć z tego kod źródłowy, a takie coś to tylko niepotrzebnie opóźnia aplikacje....
Jarod
Panowie to nie jest rozwiązanie problemu. Czy ktoś z Was używa zaciemniacza kodu (pytanie do tych, którzy dzielą aplikacje na pliki - myślę tu o OOP) ?
.radex
Nie wiem czy już ktoś to zaproponował, ale:

dac wszystko zakodowane jakims szyfrem wedlug klucza, dac w konfigu kod, i sprawdza czy taki istnieje i nie jest uzywany przez inna domene, a pozniej za pomocą evala czy coś takiego za pomocą klucza przysłanego od serwera potwierdzającego i wykonywać to - pomysł głupi, bo wystarczyłoby przechwycić ten klucz i sprawa załatwiona, zapisujesz takie rozszyfrowane pliki, i puszczasz bez "DRM-ów"

w przypadku aplikacji kompilowanych jest dużo prościej, tj. jeśli aplikacja wymaga internetu
Jarod
Nie chodzi mi o to. Chcę zaciemnić kod obfuscatorem. Znalazłem nawet darmowy, który działa http://www.raizlabs.com/software/phpobfuscator/

Problem: mamy trzy pliki php, w każdym jest jakaś klasa, np:

1.php -> zawiera klasę o nazwie Klasa1
2.php -> zawiera klasę o nazwie Klasa2
3.php -> zawiera klasę o nazwie Klasa3


Powyższy obfuscator zmienia nazwy klas, funkcji i zmiennych. Załóżmy że nazwę Klasa1 zamieni na $Klasa1$, nazwę Klasa2 zamienia na @Klasa2@ i nazwę Klasa3 na #Klasa3, to jeśli w pliku z klasą2 istnieje odwołanie/wywołanie/includowanie pliku z Klasa1, to nie zamieni nazwy na $Klasa1$ tylko na kolejno wygenerowany ciąg. I wszystko się sypie. Podejrzewam, że nie byłoby problemu, gdybym wszystko wrzucił do jednego pliku ale to nie jest możliwe ze względu na ilość plików i częstość aktualizacji softu..

Edit:

Przykład:
------------

/
|
--Klasy (katalog)
| |
| \- Klasa1.php
| \- Klasa2.php
|
|- index.php


Zawartość plików:

Klasa1.php
  1. <?php
  2. class Klasa1
  3. {
  4. private $k='Klasa1<br/>';
  5.  
  6. public function showK1()
  7. {
  8. echo $this->k;
  9. }
  10.  
  11. }
  12. ?>


Klasa2.php
  1. <?php
  2. class Klasa2
  3. {
  4. private $k='Klasa2<br/>';
  5.  
  6. public function showK2()
  7. {
  8. echo $this->k;
  9. }
  10.  
  11. }
  12. ?>


index.php
  1. <?php
  2. require_once('Klasy/Klasa1.php');
  3. require_once('Klasy/Klasa2.php');
  4.  
  5. $oKlasa1=new Klasa1();
  6. $oKlasa1->showK1();
  7. $oKlasa2=new Klasa2();
  8. $oKlasa2->showK2();
  9. ?>


Znacie taki obfuscator, który zaciemni powyższy kod i który będzie działał? Testowałem już różne i główne problemy to np. odwołania przez $this, itp. Ogólnie problemy jeśli ktoś pisze OOP
.radex
rozumiem, że było to odwołanie do mojej propozycji, więc mój post nie był odpowiedzią na twój problem winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.