Jump to content
dicas3d

Determinar linguagem e compilador de um programa pelo binário

Recommended Posts

dicas3d

Olá.

Partindo que tenho um binário chamado binário.exe, programado na linguagem x e no compilador y, como determino o x e o y?


Abraços

dicas3d

Share this post


Link to post
Share on other sites
apocsantos

    Boa tarde,

    Existem vários processos. Mas antes de responder de forma objectiva gostava de saber o motivo da questão. Pois se tens o binário e não sabes em que linguagem foi feito, nem que compilador foi utilizado, alguma coisa "está a faltar".

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
dicas3d

O motivo é estudar o código de programas em código fechado por reverse engineering.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
bubulindo

Com tantos programas de código aberto... não vejo qual é o interesse. :S


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
apocsantos

    Bom dia,

    Reverse Engeneering é ilegal. A engenharia reversa de programas protegidos por direitos de autor é um completo ilícito.

    Não entendo porque queres analisar programas de codigo fechado se tens muito boas ferramentas open-source para analisar e estudar.

3.4) Não será tolerada quaisquer mensagens que sejam contra Lei Portuguesa, tópicos e mensagens com este tipo de conteúdos serão apagados sem qualquer aviso para com o autor do mesmo. A insistência na criação de tópicos e mensagens desta natureza poderá levar o utilizador a ser punido com uma sanção.

Penso que devas considerar melhor o que pretendes fazer.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
dicas3d

Já li ai noutros tópicos que o reverse engineering não é ilegal.

Fazer malware é que é ilegal.

Infelizmente há muito boa gente que usa o reverse engineering para esse fim.

Olha o que eu encontrei:

Existe o IDA Freeware com muitas funcionalidades para .NET também.

O seu uso não é ilegal, nem o reverse engineering, desde seja em ficheiros nossos ou não protegidos por diretos de propriedade.

Se quiseres mais informação existe um livro sobre Reversing em inglês :

Reversing: secrets of reverse engineering  - Eldad Eilam

Mas sendo assim e dado que já não me lembro em que linguagem e compilador fiz um programa aqui a tempos continuo interessado em conhecer os métodos para isso.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
apocsantos

   

    Boa tarde,

    Segundo tu mesmo escreveste e cito:

O motivo é estudar o código de programas em código fechado por reverse engineering.

    Assim se se trata de programas de código fechado não podes legalmente fazer isso. Reverse Engeneering é no mínimo controverso, quando desenquadrado de um contexto. Já o fiz a ficheiros meus porque perdi a source. (Recentemente porque perdi a source na integra de uma app que fiz em .net). Ainda assim sabia qual o compilador que utilizei etc... E a aplicação era minha.

    Existem boas aplicações para realizar o processo, nas suas várias etapas, mas claro se a intenção for descompilar software de código fechado, não é permitido por lei.

    Até que se clarifique para que realmente queres saber sobre reverse engeneering eu não me vou pronunciar sobre como o fazer.

    Existem N formas de saber qual o compilador, e como Reverter a Compilação a aplicação, podendo obter código de baixo nivel, até código minimamente estruturado.

    Se fizeres o favor de clarificar o que realmente pretendes, caso seja legal terei todo o gosto em ajudar. De contrario não poderei ajudar.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
apocsantos

    Boa tarde,

    Normalmente descompilar logo para uma linguagem de alto-nível é "virtualmente impossível", o código que se obtém de um descompilador "é uma boa treta" e dificilmente consegues recompilar o código (isto utilizando apenas software gratuito).

    Todos os compiladores deixam uma especie de "assinatura", nos seus programas objecto. Inicialmente e dependendo muito do hardware e SO em que o programa está a ser utilizado existem N especificidades. Em windows, se vires o programa a funcionar, podes deduzir com base em determinados componentes utilizados, chamadas ao sistema, etc... que linguagem e compilador foram utilizados.

    Para cada linguagem existe um descompilador diferente. Para C em DOS o DCC funciona bem. Tens um bom artigo neste site: http://itee.uq.edu.au/~cristina/dcc.html

    O DCC é Open-Source. Podes estudar bastante com base nele, e evoluir. Ele inicialmente devolve codigo assembly. Convem para quem se interessa por descompilação, aprender assembly. Faz sempre jeito.

    Deixo-te aqui o link para um excelente trabalho sobre descompilação de software:

http://www.phatcode.net/res/228/files/decompilation_thesis.pdf

    Adicionalmente podes e deves dar uma vista de olhos sobre Fast Library Identification and Recognition Technology. Existem bons software que utilizam este tipo de tecnologia e são bastante eficientes.

    Caso tenhas usado técnicas para evitar a descompilação a tarefa é "enfadonha", de qualquer das formas aqui tens uma base para estudar.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.