IonCube czyli zaciemnianie kodu PHP
Artykuł dla programistów PHP, więc jeśli nie wiesz co jest, to lepiej nie czytaj ;)
Jak wszyscy wiemy, aplikacje pisane w PHP to nic innego jak pliki ASCII, które każdy może odczytać i edytować, wystarczy dostęp do FTP. Powoduje to problem, że autorskie rozwiązania mogą w prosty sposób wpaść w ręce nieodpowiednich ludzi. Wyobraźmy sobie system napisany na specjalne zamówienie. Klient dostaje co zamówił, a potem bierze kod źródłowy i grzebie w nim sam, albo zleca to komuś innemu. Można tu zabezpieczyć się umową, ale co z tego, jeśli kod źródłowy można bez problemu fizycznie odczytać i zmieniać.
Ostatnio miałem okazję bawić się programem IonCube PHP Encoder. Krótki opis ze strony polskiego dystrybutora:
ionCube PHP Encoder kompiluje przetwarzane skrypty do postaci binarnej, zrozumiałej dla interpretera PHP a następnie tak powstałe dane binarne koduje. Tak przygotowany skrypt jest całkowicie nieczytelny dla człowieka, a dodatkowo, z racji stosowanej kompilacji, nie zawiera w sobie żadnej pierwotnej wersji źródłowej.
Fajne, ale o co chodzi? Ano chodzi o to, że po zakodowaniu, nasze pliki PHP wyglądają mniej więcej tak:

I wciąż działają :) Prawda, że nieczytelne? Prawdę mówiąc nie wiem w jaki sposób jest to kodowane, ani jak można to odkodować samemu. Aby zakodowane pliki PHP działały na naszym serwerze, potrzebny jest zainstalowany moduł ionCube Loader. Jest on bezpłatny, jeśli nasz hosting nie obsługuje tego modułu, dzwonimy do admina!
Takie rozwiązanie chroni nasze autorskie skrypty PHP przed wykorzystaniem ich przez niepowołane osoby i myślę, że to bardzo przydatny program. Oto co jeszcze można zrobić przy pomocy ionCube:
- Kodowanie i szyfrowanie skryptów
- Kodowanie dowolnych plikow (HTML, JS etc)
- Pełne zabezpieczanie skryptów PHP 4 i 5

Dodatkowo droższa wersja PRO posiada bardzo przydatne opcje wprowadzanie ograniczenia czasowego, jak długo ma działać nasz skrypt. Nie zapłaciłeś za projekt w ustalonym terminie? Baj Baj Maszkaro ;)
Dodatkowo możemy wprowadzać ograniczenia na adres IP, domenę, czy generować własne licencje.
Niezwykle przydatne jest określenie które pliki mają być zakodowane, a które nie. Przykładowo pliki konfiguracyjne i zewnętrzne biblioteki mogą zostać niezakodowane, a cała reszta tak. IonCube testowałem na projekcie napisanym w oparciu o framework CakePHP, całość śmiga aż miło.
Ile to kosztuje? Niestety za darmo nie jest. Wersja demo działa 7 dni, a zakodowane nią skrypty przestają działać po 36 godzinach. Wersja PRO to wydatek rzędu 800zł. Dla porównania Zend Guard (Zend Encoder) kosztuje około 600 dolarów.
Porównując ionCube z Zend Guard warto jeszcze dodać, że licencja na ten pierwszy jest dożywotnia, a na ten drugi roczna :) A jeśli używacie ionCube to godnym polecenia jest jeszcze Iono Licensing.
To mnie zaskoczyłeś, że Zend jest tylko na rok… Tymbardziej opłaca się kupić ionCube’a.
No, muszę powiedzieć, że bardzo przydatna rzecz. Przetestuję i zobaczymy jak to sie sprawuje.
Jako zielonka zakupiłem Zenda razem ze Studio, tyle że nauka-projekt-nauka trwała dłużej i zostałem z wywalnonym dolcami oraz bez programu (licencja roczna). Odradzam Zenda, to dla dużych firm opylających masowo skrypty.
to jak można odkodowac pliki php zakodowane ioncube??
Teoretycznie nie można, po to właśnie jest ten program.
Można odkodować do tego też są programy, nie sprawdzałem ich ale według producenta działaja.
http://www.phpdecoders.com/
http://www.qinvent.com/cyrj/deZender/index-en.php
“mozna odkodowac” -> to zalezy jaki encoder. Zenda mozna w dosc sporej liczbie przypadkow, ioncuba na chwile obecna nie (v6.5+).
Strona http://www.phpdecoders.com/ to scam (czyli w uproszczeniu kant sluzacy kasowaniu naiwniakow :). Wczesniej robili to jako de-ioncube.com – widac sie tam juz skonczylo zrodelko $$
Świetny wpis, IonCube ponoć można zdeszyfrować jakimiś metodami więc chyba aby być bezpiecznym trzeba w jakieś droższe komercyjne narzędzia zainwestować ;)
Wszyscy co mówią, że ioncube i/lub zenda da się zdekodować używają słów ponoć/podobno/słyszałem, że.. Nie mamy nikogo komu się to udało. Na bardzo podobnej zasadzie działają skrypty w pawnie (np. amxx). Wystarczy napisać skrypt w pliku .sma, wrzucić go do compilera i on tworzy plik .amxx, używany przez amxx. Przydałoby się takie coś za free dla php.. Może w przyszłości się tego doczekamy :) Pozdrawiam
Osobiście skorzystałem z jednej ze stron do deszyfrowania plików pewnego skryptu autorskiego i działa! Fakt – są małe błędy, ale ten kto sie nieco zna na php sam usunie te błędy w kilka minut.