Автоматическая защита под Linux и windows
Здравствуйте. Используем Ваш продукт Armor под Linux(получили по личному запросу)
Наше приложение полностью кросс-платформенное на Qt, т.е. защита нужна и для версии Linux, и для версии Windows.
Мы прицепили ключи с помощью API SLK, ищем ключ, парсим JSON, ищем фичи, тут всё работает как под Windows, так и под Linux, и что главное - одинаково.
Но так как SLK под Linux не имеет protection_studio, то используем Armor. Схема такая - составляем список важных нам cpp файлов, после компиляции при помощи nm получаем таблицу символов из объектников, кладем их в ini файл, подаем на вход Armor - и всё работает. Объектники тут для того, чтобы не составлять списки функций вручную, т.к. функции могут меняться.
Проблема в том, что такой подход не работает для собранного при помощи MinGW приложения. Как мы поняли, версия под Linux вполне хорошо понимает и PE формат винды. Символы при помощи nm вытаскиваем, ini файл генерируем, но Armor завершается с ошибкой, т.к. не может найти половину нужных нам функций. При этом он в упор не видит мангленные функции, простые сишные функции (main например) проблем не вызывают.
Есть ряд вопросов
- Как составить корректный список символов в ini файл, как узнать, какие функции он может обфусцировать, а какие нет. Ручное составление списка не устраивает совсем.
- Какой формат символов в ini файле нужен для обфускации приложения, собранного MinGW.
- Как получить инструкции и саму версию Armor под Windows? Ту версию, которая не привязывает автоматически ключи (не совместимо с SLK)
- Если альтернативно использовать protection_studio, то возникает огромное количество проблем в CI, от того, что сборка происходит во временных каталогах (А в файле проекта protection_studio они прибиты гвоздями), опять этот ручной выбор функций, причем не понятно по каким правилам и.т.п.