É possível chamar funções de um executável?

3

Eu quero descobrir se é possível contornar o gui de um executável chamando diretamente os métodos / funções do trabalhador interno do programa.

Assumindo que os executáveis sejam programas C / C ++ com interfaces de trabalho do Gnome ou do KDE no Linux.

    
por JdeHaan 02.12.2014 / 15:29

2 respostas

3

Isso pode ser feito em casos especiais. O que você descreve é algo como carregar dinamicamente plug-ins através do carregador dinâmico de links C: tente man dlopen para obter detalhes sobre isso. Normalmente, o código assim chamado deve ser compilado como "independente de posição", então você está quase certamente sem sorte para qualquer programa específico.

Você pode ver o código userland exec para algumas dicas de como isso pode ser feito, mas quase certamente não funcionará para fazer o que você descreve.

    
por 02.12.2014 / 16:10
1

Isso não é testado, isso é exatamente o que eu tentaria.
Então não sei se pode contar como resposta.

Se você conseguir rastrear a peça com um depurador (isso é um trabalho de paciência). Depois de ter anotado os endereços da função que você deseja executar. Você pode, talvez, controlar remotamente o depurador pela média de um script. Esteja ciente de que a maioria dos aplicativos deve passar por algumas etapas de inicialização primeiro.

Algo que seria:

  1. inicie o depurador
  2. carregar executável
  3. definir ponto de interrupção após a inicialização do aplicativo
  4. executar
  5. pule para a função quando o ponto de interrupção for atingido.
por 02.12.2014 / 16:55