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

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

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

  • skype не найден на Oneiric 64, но он прямо там
  • альтернативы обновления только для одного пользователя
  • Bash выполняет другой файл из запросившегося, даже если он предоставляет полный путь
  • Как заблокировать выполнение файлов, принадлежащих root через lighttpd?
  • Почему я не могу запускать программы на другом разделе в Linux?
  • Пример setuid из Википедии: 4700
  • Как определить, существует ли внешняя команда в сценарии?
  • Почему этот исполняемый файл все еще выполняется после того, как я удалил его?
  • 2 Solutions collect form web for “Можно ли вызвать функции исполняемого файла?”

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

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

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

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

    Что-то, что:

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