Ir para o conteúdo
dicas3d

Determinar linguagem e compilador de um programa pelo binário

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.