Re: [Cascavel-pm] Código compilado

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Segunda Setembro 27 11:05:24 CDT 2004


On Mon, 27 Sep 2004, Josberto wrote:

> Olá,
> Eu nao sei se deveria participar desta discursão, mas diria que as
> pesquisas e construcão de ferramentas para descompilar programas estao
> super-avançadas.

  Todos são benvindos para discutir :-)

> Para falar a verdade, o codigo executavel do windows (.exe) e binario do
> linux (.bin) sao sequencias de instrucoes semelhantes às presentes no
> codigo Perl, Pascal, ou outra linguagem. Assembler (codigo de maquina)
> eh uma forma de programar que a maquina e o ser humano "negociaram" para
> se entenderem.

  Muito cuidado com o "tequinês"!!!

  "assembler" (ou o equivalente "montador") é termo técnico utilizado
pelos computólogos para designar o programa que lê "assembly" (a
"linguagem de montagem") e escreve "machine code" (ou "código de
máquina").

  Disto, é fácil notar que "código de máquina" não é "assembly" (muito
menos "assembler"), mas o resultado do trabalho ("montagem") de um
"assembler" sobre um programa escrito em "assembly".

> Depois surgiu outras linguagens que traduzem para esta linguagem
> assembler que eh "comum" ao ser humano e às maquinas. As outras
> linguagens surgiram para tornar o trabalho humano mais inteligente e
> menos monótono.

  Mais ou menos isso. :-) A melhor analogia é pensar em múltiplas
ferramentas (ferramenta <=> linguagem de programação). Você não pode
(deve?) usar um serrote para martelar pregos, nem um alicate para apertar
parafusos. Cada linguagem (assim como as ferramentas de um mecânico) tem
usos específicos e são melhores em alguma coisa. O que não significa que
não possamos usá-las em outras coisas, talvez com maior (ou menor)
dificuldade.

> Nota: Utilizando qualquer outra linguagem nao especialista em
> manipulacao de texto, jah vi algumas ferramentas par descompilacao
> (disassembler). Utilizando perl (especialista em manipulacao de texto)
> imagino que criar descompiladores eh mais facil.

  Engano seu: é tão dificil quanto "compilar" código fonte. Mas tem uns
"adicionais", especialmente quando o código foi otimizado pelo compilador
original (o GCC faz isso): as coisas podem ficar mais confusas, e nem tudo
"volta" (o GCC calcula constantes e substitui a maior parte delas "inline"
no fonte).

  Ficou comprido, mas espero que tamém educativo.
  Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BsC in Computer Science,
  Certified Oracle DBA, Sao Paulo PM Leader, Cascavel
  PM Moderator, Perl Monk and Perl/Unix affictioned.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Mais detalhes sobre a lista de discussão Cascavel-pm