VMProtect Linux + GDB

Добрый день.
Вопрос по обнаружению отладки под Linux.
Имеем бинарник, защищенный протектором с включенной опцией обнаружения отладчика. Однако GDB прекрасно работает, защита его не обнаруживает.

В чем может быть дело? Обнаружение отладчика под никсами работает?

К сожаление обнаружение отладчика пока не работает.

А планируется?

Проверяйте (3.1.2.877):
http://vmpsoft.com/files/VMProtectDemo_x64.tar.gz

При таком запуске:
sudo gdb ./App.protected

start
Защищенное приложение падает с ответом отладчика exit with code 0336, то есть вроде все хорошо.

А если попытаться приаттачится к уже запущенному приложению:
sudo gdb --pid=XXXX
continue

То все работает, отладчик не обнаруживается.

Параллельно есть еще вопрос - поддерживается ли защита .so, так как у нас после компиляции в итоговом файле пропадает заголовок ELF

А если попытаться приаттачится к уже запущенному приложению:
sudo gdb --pid=XXXX
continue

То все работает, отладчик не обнаруживается.

Антиаттача пока нет.

Параллельно есть еще вопрос - поддерживается ли защита .so, так как у нас после компиляции в итоговом файле пропадает заголовок ELF

Поддерживается. Присылайте тестовый пример, на котором воспроизводится проблема.

По библиотеке отбой, разобрались.
Когда ждать реализации антиаттача и выхода полнофункциональной версии протектора с этими правками?

По антиаттачу пока сроки назвать не могу, т.к. нужны исследования в этой области.

Обнаружили еще вот что.
KUbuntu 14.04 64 bit. Защищённое приложение запускается как служба (через систему upstart). Если выключена защита от отладки, то всё хорошо. Если включена (не важно user mode или user mode + kernal mode), то служба не запускается. По-видимому срабатывает защита от отладки.

Что выдает “/proc/self/status” на такие процессы?

Запрос статуса службы
initctl status <имя службы>
выдаёт
<имя службы> start/running, process 1045
Но процесса 1045 нету, и папки для него в proc тоже нету.

если выполнить “/proc/self/status” из службы что покажет?

Нельзя ничего сделать из защищенной службы, так как до нашего кода управление не доходит.

Для НЕЗАЩИЩЕННОЙ запустите.

Прикладываю
data.7z (590 Bytes)

afterfork показывает, что процессс отлаживается другим процессом (“TracerPid: 1”)

служба не отлаживается. Процесс с PID = 1 это и есть системный процесс отвечающая за запуск служб. Видимо upstart мониторит статус службы через трассировку. Либо какие-то процессы надо добавлять в исключения при определении отладки.

Я правильно понимаю, что к такой службе уже нельзя подключиться отладчиком?

TracePID=1 только в BeforeFork, в AfterFork он 0.
Загрузчик upstart считает количество форков чтобы определить что служба запущена, и наверное для этого ему трейс и нужен.
Отладчиком подключиться после старта можно

Проверяйте (3.1.2.928):
http://vmpsoft.com/files/VMProtectDemo_x64.tar.gz