De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Descobrindo em qual API gráfica um software foi programado

Colaboração: Gabriel Menezes Nunes

Data de Publicação: 05 de Novembro de 2006

É possível descobrir qual API gráfica um determinado programa usou apenas tendo acesso ao seu binário. Isso pode ser interessante caso você goste da interface gráfica de algum software proprietário e queira saber como ele foi escrito. Ou quem sabe apostar com seus amigos qual é melhor: GTK ou QT!!!

Com o comando 'strings', o qual mostra todas as cadeias de caracteres imprimíveis de um binário, é fácil observar quais são as funções chamadas dentro de um programa ou determinar com qual biblioteca o programa foi linkado.

Exemplo: Skype:

strings skype | more

Notamos que existe a string "libqt-mt.so.3 indicando que foi compilado usando QT 3.

Para melhorar a saida podemos já tentar uma das duas bibliotecas gráficas mais usadas: QT e GTK.

Exemplo: VMware-Player:

strings vmplayer | grep gtk | more

Observamos um número alto de chamadas à biblioteca GTK, o qual é determinante para provar que este foi usado como API gráfica.

Também é possível utilizar o comando ldd, tendo como parâmetro o binário. Este comando mostrará todas as libs que foram usados durante a linkagem na compilação.

ldd skype

Mostra várias libs, incluindo libqt-mt.so.3, indicando o uso do QT.



Veja a relação completa dos artigos de Gabriel Menezes Nunes