vhome
Создатель
- Регистрация
- 6 Авг 2012
- Сообщения
- 37
- Реакции
- 35
- Автор темы
- #1
По ходу работы часто сталкивался с закодированными IonCube или ZendGuard файлами.
И всегда интересовало как же это все работает. В этой теме интересно было бы обсудить вопросы связанные с защитниками кода и методами борьбы с ними.
Вот информация о обычном порядке вещей.
В обычной ситуации PHP и собственно его настоящий компилятор и исполнитель Zend Engine. Проходит через процесс из нескольких стадий:
Токенизация - превращение обычного исходника в так называемые токены.
Парсинг - Группы токенов собираются в простые многозначные выражения
Компиляция - выражения транслируются в инструкции (опкоды)
Выполнение - инструкции начинают последовательно (1 апкод за раз) выполнятся, решая поставленую автором скрипта задачу.
Кеши опкодов (например APC) позволяют выполнить движку первые 3 операции и затем сохраняют у себя откомпилированную форму. Что позволяет использовать уже готовую откомпилированную версию опуская первые 3 шага.
Но когда установлено расширение одного из кодировщиков - процесс меняется.
Что собственно говоря и хотелось бы узнать - как это работает?
И всегда интересовало как же это все работает. В этой теме интересно было бы обсудить вопросы связанные с защитниками кода и методами борьбы с ними.
Вот информация о обычном порядке вещей.
В обычной ситуации PHP и собственно его настоящий компилятор и исполнитель Zend Engine. Проходит через процесс из нескольких стадий:
Токенизация - превращение обычного исходника в так называемые токены.
Парсинг - Группы токенов собираются в простые многозначные выражения
Компиляция - выражения транслируются в инструкции (опкоды)
Выполнение - инструкции начинают последовательно (1 апкод за раз) выполнятся, решая поставленую автором скрипта задачу.
Кеши опкодов (например APC) позволяют выполнить движку первые 3 операции и затем сохраняют у себя откомпилированную форму. Что позволяет использовать уже готовую откомпилированную версию опуская первые 3 шага.
Но когда установлено расширение одного из кодировщиков - процесс меняется.
Что собственно говоря и хотелось бы узнать - как это работает?