Ir ao conteúdo
  • Cadastre-se

Descompilador...


Edy Junior

Descompilador...  

3 votos

  1. 1. Descompilador...

    • Sou totalmente a favor do uso do descompilador.
    • Sou afavor desde que seja provado uso acadêmico.
    • Sou contra, pois vai contra o código proprietário.
    • Nem existe descompilador.


Posts recomendados

Bom, resolvi postar esta enquete devido a uma dúvida que pairava sobre minha cabeça, a existencia e eficiência dos descompiladores...

Eu só conheço descompilaros em Delphi, mas não duvido que existam outros.

O que vocês acham deles? De sua real utilidade? São 100% eficazes?

O que eu conheço para Delphi 4 e 5, traz o object pascal do fonte... e nem 100% funciona.

Não posto onde encontrar pois não sei se vai contra as normas do fórum. 8D

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Conheço um descompilador para Visual Basic 5. Porém, quando usado para descompilar executáveis criados com o Visual Basic 6, o código apresenta vários erros. Assim que você descompila nem consegue compilar de novo porque está tudo errado!

Usando no Visual Basic 5 até que ele funciona bem. Principalmente quando são poucas as linhas de código.

Sou a favor desde que seja aprovado o uso acadêmico.

Acho que não adianta ser contra porque mesmo que empresas de programas legais não produzam este tipo de programa os "programadores de plantão" os farão por conta própria.

Descompiladores ajudam muito se você perde o código fonte do seu programa. Mas vai dizer que não dá vontade de descompilar e alterar o executável dos outros colocando seu nome, etc?! Este é o problema! Isso chama-se pirataria!!! Cuidado pessoal...

Se for para fins de estudo, 100% aprovado! Caso contrário...

Abração a Todos

Link para o comentário
Compartilhar em outros sites

Descompiladores são ferramentas crackers; sua finalidade é óbvia: crackear programas.

E não falo de apenas mudar nomes dos autores, como o Fernando disse, mas de descobrir serials, remover proteções de segurança, bloqueios de versões trial, etc.

Não vejo qualquer utilidade para o meio acadêmico, a não ser testar um compilador que você mesmo esteja desenvolvendo (aí você também tem q criar o seu próprio descompilador também).  ???

Além de ser ILEGAL, essa prática é inútil, pois não existe descompilador 100% eficaz, e você tem que ter um descompilador prá cada versão de cada tipo de compilador; se for prá fazer crack de algum programa, é muito mais prático usar um disassembler.

PS: putz! se você conseguir perder os fontes de algum programa q realmente vá precisar depois, tem mais é q fazer ele todo de novo, prá aprender a fazer backups e guardá-los em ftps na internet e alguns floppys...  hehe... zueira, não leva a sério... :P

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por DanielKO@07 Jun. 2002, 03:12

Não vejo qualquer utilidade para o meio acadêmico, a não ser testar um compilador que você mesmo esteja desenvolvendo (aí você também tem q criar o seu próprio descompilador também).  ???

Além de ser ILEGAL, essa prática é inútil, pois não existe descompilador 100% eficaz, e você tem que ter um descompilador prá cada versão de cada tipo de compilador; se for prá fazer crack de algum programa, é muito mais prático usar um disassembler.

É muito útil para fazer engenharia reversa e alguma boa alma desenvolver bons drivers para o Linux, por exemplo, de algum periférico que não tenha drivers, nem documentação que permita desenvolver drivers por conta própria.  :)

você não precisa de algo perfeitinho, apenas de algumas dicas.

Concordo que disassemblers são infinitamente mais confiáveis, mas nem todos tem essa intimidade.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por DanielKO@07 Jun. 2002, 03:12

Descompiladores são ferramentas crackers; sua finalidade é óbvia: crackear programas. ;-|

Caro Amigo,

Depende de como você encara Descompiladores....

Diassemblers também são descompiladores...

Nem sempre um Descompilador é uma ferramente cracker, e seu objetivo também nem sempre é burlar programas...

No Linux como disse o SledgeHammer, o Descompilador não é nada mais que uma ferramente indispensável para um programador.

Acredito que tudo depende da filosofia que se aplica, esta ideia...

No caso do software proprietário, como disse o Fernando P, trata-se de pirataria...

Mas no caso de OpenSource é uma coisa tão comum, que nós do Mundo dos SO's alternativos não achamos isso um problema, e sim uma solução.

Sou a favor do uso de Descompiladores e Diassemblers, seja pra fim educativo ou não...

Tudo depende do ponto de vista...

Link para o comentário
Compartilhar em outros sites

Certo... entendo o seu ponto...

Mas discordo da sua frase:

No Linux como disse o SledgeHammer, o Descompilador não é nada mais que uma ferramente indispensável para um programador.

A menos que você seja um programador que crie drivers para esses dispositivos, descompiladores são COMPLETAMENTE dispensáveis.

Me referi aos descompiladores de maneira geral, já que uns 90% deles realmente se destinam a esses fins ilegais (pegando o próprio exemplo aqui do fórum, Q ***** iria escrever um driver em VB ou Delphi? prá q mais você vai usar esses descompiladores?? ??? ).

PS: Huh? Se disassembler agora virou descompilador, assembler virou compilador também?    (tá, eu entendi, você quis dizer dizer q pode ser usado com o mesmo propósito do descompilador, né? desculpa, mas não podia deixar essa passar em branco  :)  ).

PS2: Hey, fui irônico nesse último PS; não me entendam mal, é q os emoticons q eu quero usar nunca funcionam.. >_<  Droga, quando alguém vai arrumar isso? >:(

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por Locky@09 Jun. 2002, 12:22

O Bom programador deve confiar no seu taco e não precisar olhar o fonte dos outros. Descompiladores servem para pessoas sem talento ou competência, que veem mais vantagem em sugar o trabalho dos outros do que desenvolver o seu próprio.

Caro Locky,

Bem esta frase esta totalmente correta quando se trata de Código Fonte Proprietário.

Mas não existe só esse tipo de código no mercado, os OpenSources estão ganhando o seu espaço também.

O que nos é permitido no OpenSource abrir qualquer programa, e remontá-lo usando o que você quiser, criando assim uma versão personalizada do Original.

Concordo que cada programador tem que ser respeitado, e seu código é de puro mérito dele... Mas só quando se esta falando de um software ou etc que tem uma base fechada.

Agora cá entre nós... quem não adoraria entrar no fonte do Windows e fazer umas adptações !? Bom eu sou um doido pra fazer isso, mas meu conhecimentos de programação são poucos... e quebrar a barreira do Windows não é tarefa para qualquer cara...

Falando nisso...

Você considera crime alterar um programa proprietário ?? Todo mundo corre atrás de programas pra mudar as telas do WinXP !!! Isso também é errado...

Mas não cabe nessa discução...

Em todo o caso, continuo apoiando descompiladores de um modo em geral...

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por DanielKO@08 Jun. 2002, 14:42

PS: Huh? Se disassembler agora virou descompilador, assembler virou compilador também?    (tá, eu entendi, você quis dizer dizer q pode ser usado com o mesmo propósito do descompilador, né? desculpa, mas não podia deixar essa passar em branco  :)  ).

PS2: Hey, fui irônico nesse último PS; não me entendam mal, é q os emoticons q eu quero usar nunca funcionam.. >_<  Droga, quando alguém vai arrumar isso? >:(

Olá Amigo,

Ainda bem que você me entendeu...

Francamente....

Sarcasmo inteligente não tem problema algum... eu achei muito interessante o comentário...

:)  :D  :P  :))))  :!!!  8D  :::)  d-:

Link para o comentário
Compartilhar em outros sites

Não acredito que exista "objetivo principal" de um descompilador (exceto descompilar, é claro :D ).

O cara pode querer crackear ou apenas ver como funciona. Eu mesmo já usei muito para aprender alguns códigos interessantes em Java (tem um descompilador 100% para essa linguagem, mas não lembro o nome). Eu não copiei o trabalho de ninguém. Olhei para aprender e compreender porque as coisas funcionavam daquele jeito. Para QUALQUER entusiasta da programação, são ferramentas essenciais.

Para entender. Para criar. Ou até mesmo para crackear.

E meu caro Locky, todo "bom programador" um dia teve que buscar fontes para aprender. E nem todos se contentam com o "Hello world!" dos tutoriais da internet. É assim que funciona.

Link para o comentário
Compartilhar em outros sites

Na verdade, se todo mundo pensasse no mal em tudo, ninguém fazia mais nada. O prórprio programador, que ao ver seu software sendo crackeado, como se sente?

Ou até mesmo o programador, ao ver seu código em outro fonte? (Opa, pelo jeito ele também viu o fonte de alguém!).

É muita questão pra se abordar.

Pense assim, se todo mundo fosse fazer o que não deve ser feito, nada ia dar certo.

Imaginem se você olhasse um programa que faz uma ordenação milagrosa de 100.000 registros em 2 seg. Ai seu instinto exigirá de você mesmo saber por qual método ele ordenou: se foi por algum conhecido ou desenvolveu algo novo?

Nesses casos, que eu apoio, o usuário dos descompiladores verá o fonte para entendê-lo, e aprender com isso, e não simplesmente copiá-lo.

O bom programador é aquele que mostra saber e não que aparenta. Imagine um programador que vive copiando códigos fontes de outros? O que será dele? Imaginem ele numa prova pra conseguir um emprego, o que ele conseguirá demonstrar?

Nada, obsolutamente nada.

O bom proficional se faz. E se mostra capaz!

Link para o comentário
Compartilhar em outros sites

Não penso q se possa realmente aprender algo descompilando programas...

1º porque o código pode muitas vezes passar por otimizações do compilador, então um simples loop com alguns comandos pode ser compilado de tal forma que o descompilador não consiga montar o código original;

2º os comentários não são compilados junto no binário;

3º nomes de variáveis como "Numero_de_cadastros" pode se tornar um nome arbitrário qualquer, já q o compilador não precisa guardar o nome das variáveis, apenas seu endereço;

O cara vai perder mais tempo tentando entender um programa descompilado do que se pegasse alguns fontes no Sourceforge ou alguns tutoriais por aí.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Sobre o disassembler, é a melhor forma de manipular (por engenharia reversa) um software. Assembly é a melhor linguagem q existe! (não desmerecendo outras otimas linguagens...isso não c descute! Depende da aplicação!)

Sobre como c sentiria o programador q viu sua proteção ser quebrada: Acho que ele poderia melhorar pois existem varias formas de c proteger um executavel... só vai depender da capacidade dele. Temos proteções p/ registro via serial (q é a formal mais "fácil" d c quebrar) como encriptações (RSA, Asssinatura da Curva Eliptica, etc..). Encriptção do cabeçalho PE. Time limits....

Ou a criação de DEMOS q é a melhor proteção .....

Enquanto existir gente que conheça o poder do assembly vai existir crack's, keygens... Isso pelo fato de c ter o controle total do sistema e de poder vencer uma proteção (c alguem aqui crackeou algum programa sabe do que estou falando)

Ou aqui ninguém usa ou usou um programa crackeado??

PS. Um descompilador p/ Java é o JADE.

Com isso quero dizer q cada um "pode" manipular um software da maneira q quiser (e da capacidade de faze-lo!!).

E quero dizer também q prefiro manipular um executavel pronto afim de adicinara a ele alguma função que me convenha!

falou!

Link para o comentário
Compartilhar em outros sites

Em geral eu concordo com a ideia "depende do ponto de vista". Pessoalmente acredito que os argumentos a favor do uso de decompiladores sejam mínimos ao menos para aderir ao uso. Pensando com um programador eu não acharia nada interessante modelar um aplicativo, desenvolver determinados componentes, após longas horas de trabalho simplesmente uma pessoa vai e obtém o código do tal aplicativo em questão de minutos. Não importa se o código é legível ou não, se é de alto nível ou não, se apresenta sintaxe correta ou não, o que importa é que a identidade lógica do aplicativo foi quebrada e isso sem dúvidas é errado.

É muito fácil para uma pessoa que nunca teve que virar noites e noites debulhando códigos ou queimando neurônios chegar agora e defender o uso de decompiladores ou editores hexadecimais que alteram simples partes dos aplicativos. Acho que se pegarmos diversos programadores experientes tanto do mundo Linux quando do mundo Windows, teremos a conclusão de que liberar assim de forma fácil o uso dos decompiladores não é nada interessante, ao menos é o que eu acho.

Vale a pena destacar que eu não sou contra o movimento open.source, ao contrário, sou totalmente a favor, uso Linux e apoio e recomendo o mesmo, porém, observem que uma questão não tem a mínima ligação com a outra. Código aberto é uma coisa, o criador "libera" tal código. Quebrar código é outra história, o programador não libera o mesmo mais sim pessoas ao redor do mundo exploram com o uso de alguma ferramenta as linhas de códigos modeladas pelo tal.

Link para o comentário
Compartilhar em outros sites

<%

Como tudo o que existe, descompiladores tem seus pros e contras.

As vezes o uso do mesmo pode vir a ser necessario para o proprio criador do programa.

É obvio que a maioria dos Espiritos de Porco sempre utilizam do mesmo para beneficio proprio, e fazem mal uso de uma ferramenta que poderia ser funcional e util a todos, só que sujam o nome dos descompiladores simplesmente por fazerem mal uso dos mesmos...

Só acho q não devemos vir aqui e metermos o PAU nos descompiladores e muito menos defendermos cegamente uma coisa que mal sabemos como usar.

Descompiladores teem sim sua utilidade, e sua inutilidade.

Nada no mundo é Useless...

H1.J4CK3R?ASP=PROGRAMMER

%>

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Não só a pessoa que programou como a pessoa q quer aplicar uma Engenharia Reversa no programa tem que virar noites (e muito mais noites que um programador de linguagem de alto nivel). É uma faca de dois gumes cara....

Vou pegar o exemplo do CloneCD, cara tu já decriptou algo com o Algoritmo da Curva Eliptica (q é uma assinatura)???

Ou um programa com dongle(Hard-Lock)??

Isso exige mais da pessoa que quer quebrar do quem fez!!

Lembre-se q quem quebra algum codigo tem q fazer o caminho inverso.

T+ !

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Bem acho que o software não deveria ser uma propiedade, já que todos não tem condição de pagar 3 salários mínimos pra comprar um windows xp home, é mais prático partir de algo que siga a filosofia GNU/GPL, já que todos podem alterá-lo sem restrições. Por isso, apoio o Richard Stallman e tantos outrtos jargões do Free Software. Pena que o Richard faça parte do Zero Growth Organization.

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por DanielKO@08 Jun. 2002,13:42

PS: Huh? Se disassembler agora virou descompilador, assembler virou compilador também?    (tá, eu entendi, você quis dizer dizer q pode ser usado com o mesmo propósito do descompilador, né? desculpa, mas não podia deixar essa passar em branco  :)  ).

PS2: Hey, fui irônico nesse último PS; não me entendam mal, é q os emoticons q eu quero usar nunca funcionam.. >_<  Droga, quando alguém vai arrumar isso? >:(

Puts!! quem é esse cara que falou isso??? Se assembler não é um compilador, o que é então? hahahahhaha :D

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por miraitrunks@04 Nov. 2002,02:29

Puts!! quem é esse cara que falou isso??? Se assembler não é um compilador, o que é então?

Fui eu quem postou isso.

Assembler não é compilador. Microprocessadores não executam arquivos-texto, eles entendem apenas linguagem de máquina; qualquer pessoa com um mínimo de conhecimento da arquitetura de computadores sabe disso.

Um compilador transforma um arquivo texto com instruções de uma determinada linguagem em código binário para a máquina executar. O compilador vai fazer todos os tipos de conersões e otimizações que puder no código, e o programador não precisa saber como determinada arquitetura funciona para poder programar.

Já um assembler é só um montador, não faz nada além de pegar instruções de um arquivo texto e traduzí-las (usando uma tabela de conversão) para instruções em linguagem de máquina. Não há qualquer tipo de tradução indireta. A linguagem assembly é apenas os opcodes com um rótulo particular (mnemônicos).

Não entendi se esse seu post foi apenas irônico ou foi por não saber mesmo o que é um assembler, mas por desencargo de consciência, taí a minha resposta (talvez alguém que não fazia ideia do que era um assembler agora ficou sabendo? :;): ).

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por DanielKO@04 Nov. 2002,12:45

Fui eu quem postou isso.

Assembler não é compilador. Microprocessadores não executam arquivos-texto, eles entendem apenas linguagem de máquina; qualquer pessoa com um mínimo de conhecimento da arquitetura de computadores sabe disso.

Um compilador transforma um arquivo texto com instruções de uma determinada linguagem em código binário para a máquina executar. O compilador vai fazer todos os tipos de conersões e otimizações que puder no código, e o programador não precisa saber como determinada arquitetura funciona para poder programar.

Já um assembler é só um montador, não faz nada além de pegar instruções de um arquivo texto e traduzí-las (usando uma tabela de conversão) para instruções em linguagem de máquina. Não há qualquer tipo de tradução indireta. A linguagem assembly é apenas os opcodes com um rótulo particular (mnemônicos).

Não entendi se esse seu post foi apenas irônico ou foi por não saber mesmo o que é um assembler, mas por desencargo de consciência, taí a minha resposta (talvez alguém que não fazia ideia do que era um assembler agora ficou sabendo? :;): ).

Cara, não é por nada, mais você está completamente errado. Assembler é um compilador == ao C, C++, Pascal, Argol, etc...

A linguagem que o computador entende é de 0 e 1, o computador não entende comandos de assembler:

mov ax,2000

sub F200,0000

etc...

Isso é compilador de assembler para linguagem de máquina, onde ficaria.

00001110

01001000

etc.

No começo os computadores eram programados diretamente em linguagem binária, 0 e 1. Como isso era muito difícil e complicado, decidiram implementar compiladores para facilitar a programação, no caso fizeram um compilador chamado assembler (em português, montador).

Melhorou um pouco, mais ainda era muito difícil a programação, pois a linguagem assembler ainda é muito parecida com a linguagem de arquitetura. Então depois do assembler vieram outros como argol, fortran 77, módula 1 e 2, linguagem c que foi uma derivada da linguagem b, pascal, etc.....

Quando você implementa um programa em C, o compilador C compila ele para assembler, onde ele é compilado para código de máquina.

O computador não entende os comandos mov, add, sub, load, store( que são palavras derivadas do inglês). Ele entende o que o compilador assembler passa para binário.

Portanto, assembler é uma linguagem de programação compilada, não á propria linguagem de máquina (como muitos confundem).

você estava errado quando zuou o cara sem saber o que estava falando.

Falou galera, é isso ai, façam uma pesquisa quem tiver dúvida.

Link para o comentário
Compartilhar em outros sites

Aff... santa ignorância... você sequer leu o que eu disse? Montador não é compilador. Compilar significa tranformar completamente de uma linguagem para outra. O montador (assembler) pega o seu arquivo texto com seus mnemônicos e vai montando o binários executáveis direto. Enquanto um compilador de alto nível interpreta o seu código e faz as adaptações necessárias antes de gerar o executável em linguagem de máquina.

Veja o que eu disse:

Já um assembler é só um montador

e veja o que você disse:

assembler (em português, montador).

E quem sabe você dá uma lida nessa frase que eu disse

Já um assembler é só um montador, não faz nada além de pegar instruções de um arquivo texto e traduzí-las (usando uma tabela de conversão) para instruções em linguagem de máquina.

NINGUÉM aqui falou que o processador vai entender os MOVs, ADDs, LOADs, etc, em forma de texto. Eu disse que isso é tudo tranformado diretamente em números pelo assembler, justamente o oposto.

E eu não zuei com o cara, apenas fiz uma brincadeira no que ele disse, e ele mesmo entendeu o que eu quis dizer. Assembler não é e nunca vai ser compilador. Ambos geram código executável, mas o fazem de maneira muito diferente.

Caramba, faz falta ter um pouco de atenção antes de postar alguma coisa...

Link para o comentário
Compartilhar em outros sites

E o que você entende por compilador? Por acaso você acha que o fato dele criar um executável transforma ele num "compilador"? Seu WinZIP ao criar um arquivo SFX é um "compilador" também? Quantos programas você já "compilou" no seu Flash? Você já programou no "compilador" debug do DOS?

Você só chegou aqui e ficou dizendo que "assembler é compilador e fim de história". Não mencionou os motivos para chamar um mero montador de compilador.

Eu continuo afirmando que um assembler não faz nada além de substituir os mnemônicos por palavras binárias (números). Um assembler faz apenas uma tarefa trivial; ele não precisa interpretar o código que ele lê.

Leia uma definição de compilador aqui:

http://www.geocities.com/SiliconValley/Bay...8/compiler.html

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...