Go Back
07/03/24
Декодирование Ioncube, SourceGuardian
Декодирование Ioncube, SourceGuardian.
Ioncube декодер — это программное обеспечение, написанное на различных языках программирования (C, C#, PHP и т. д.) и реализующее некоторые инженерные методы.
Язык программирования PHP стремительно развивается уже десятки лет и доступен каждому. Исходный код интерпретируется в среде Zend Engine, использует различные вспомогательные расширения, расширения исполнения.
Декодер Ioncube, SourceGuardian в своей текущей версии должен решать, реализовывать различные механизмы декодирования и работы с двоичным кодом виртуальной машины PHP.
Ioncube декодер должен реализовывать работу:
1. Базовое шифрование;
2. Деобфускация (переменные, функции, имена классов);
3. Деобфускация данных опкодов (некоторая внутренняя обфускация данных);
3. Файлы лицензий;
4. Динамические ключи;
5. Внешние ключи;
Старые исследования RAID вы можете прочитать в работе «Анализ безопасности механизмов защиты байт-кода PHP» Дарио Вайбера, Йоханнеса Дахсе и Торстена Хольца.
Виртуальная машина ядра PHP использует набор кодов операций (опкодов - результат внутренней компиляции) - смесь логических конструкций, которые при желании можно транслировать обратно в исходный код, вспомогательными в исследовании могут быть VLD, Xcache, OPcache, Nikic PHP Parser (работа с деревом AST), которые могут лечь в основу любого целевого проекта обратного цикла. Таким образом, декодирование Ioncube, SourceGuardian подразумевает работу с кодами операций и их логикой, сборку конструкций, декомпиляция AST дерева и т. д., с каждой версией PHP опкодов становится все больше ~200. Так же, с каждой итерацией PHP меняется сама структура байт-кода, она становится другой. Добавляется новый функционал, что-то теряет свою актуальность. Таким образом, ошибочно называть процесс декомпиляции расшифровкой, так как результат его работы не подразумевает возврат эталонного значения, правильнее называть это декомпиляцией.
Ioncube декодер — это программное обеспечение, написанное на различных языках программирования (C, C#, PHP и т. д.) и реализующее некоторые инженерные методы.
Язык программирования PHP стремительно развивается уже десятки лет и доступен каждому. Исходный код интерпретируется в среде Zend Engine, использует различные вспомогательные расширения, расширения исполнения.
Декодер Ioncube, SourceGuardian в своей текущей версии должен решать, реализовывать различные механизмы декодирования и работы с двоичным кодом виртуальной машины PHP.
Ioncube декодер должен реализовывать работу:
1. Базовое шифрование;
2. Деобфускация (переменные, функции, имена классов);
3. Деобфускация данных опкодов (некоторая внутренняя обфускация данных);
3. Файлы лицензий;
4. Динамические ключи;
5. Внешние ключи;
Старые исследования RAID вы можете прочитать в работе «Анализ безопасности механизмов защиты байт-кода PHP» Дарио Вайбера, Йоханнеса Дахсе и Торстена Хольца.
Виртуальная машина ядра PHP использует набор кодов операций (опкодов - результат внутренней компиляции) - смесь логических конструкций, которые при желании можно транслировать обратно в исходный код, вспомогательными в исследовании могут быть VLD, Xcache, OPcache, Nikic PHP Parser (работа с деревом AST), которые могут лечь в основу любого целевого проекта обратного цикла. Таким образом, декодирование Ioncube, SourceGuardian подразумевает работу с кодами операций и их логикой, сборку конструкций, декомпиляция AST дерева и т. д., с каждой версией PHP опкодов становится все больше ~200. Так же, с каждой итерацией PHP меняется сама структура байт-кода, она становится другой. Добавляется новый функционал, что-то теряет свою актуальность. Таким образом, ошибочно называть процесс декомпиляции расшифровкой, так как результат его работы не подразумевает возврат эталонного значения, правильнее называть это декомпиляцией.
Written by:
AI