Можно ли вызвать функции исполняемого файла?

Я хочу узнать, можно ли обойти исполняемый файл gui, вызвав программы / внутренние методы / функции.

Предполагая, что исполняемые файлы являются программами C / C ++ с рабочими интерфейсами Gnome или KDE в Linux.

  • Измените владельца файловой системы ntfs, установленной через fstab
  • Как восстановить рекурсивный «chmod -x» в моей домашней папке
  • Linux не уверен, существует ли файл или нет
  • Загрузка разделяемых библиотек и использование ОЗУ
  • Почему этот исполняемый файл все еще выполняется после того, как я удалил его?
  • Какова цель разрешения на выполнение?
  • Как добавить программу с каталогом зависимостей в $ PATH?
  • Как заблокировать выполнение файлов, принадлежащих root через lighttpd?
  • 2 Solutions collect form web for “Можно ли вызвать функции исполняемого файла?”

    Это можно сделать в особых случаях. То, что вы описываете, это что-то вроде динамической загрузки плагинов с помощью динамического загрузчика C: попробуйте man dlopen для получения подробной информации об этом. Обычно так называемый код должен быть скомпилирован как «независимый от позиции», поэтому вы почти наверняка не повезете для какой-либо конкретной программы.

    Вы можете посмотреть код userland exec для некоторых подсказок о том, как это можно сделать, но почти наверняка не будет работать над тем, что вы описываете.

    Это не проверено, это именно то, что я хотел бы попробовать.
    Поэтому я не знаю, может ли он считаться ответом.

    Если вам удастся проследить отброс с помощью отладчика (это терпение). После того, как вы отметили адреса функции, которую хотите запустить. Возможно, вы можете дистанционно управлять отладчиком средним значением скрипта. Помните, что большинство приложений сначала должны пройти некоторые шаги инициализации.

    Что-то, что:

    1. запустить отладчик
    2. загрузка исполняемого файла
    3. установить точку останова после инициализации приложения
    4. бег
    5. перейдите к функции после достижения точки останова.
    Linux и Unix - лучшая ОС в мире.