Como desmontar programas prontos? de diversas linguagens?

O meu problema e bem simples tenho um programa pronto em C, Java, e Cobol mas apenas analizando seu funcionamento não consegui montar um código que funcione da mesma forma, até que ouvi falar de descompilação, mas não sei como desmontar o programa.

tem algum acessório para desmontar esse programa em códigos ou em sinais de memória?

Onde eu encontro esse acessório?

Como utilizo essa ferramenta, ou como desmontar o mesmo manualmente?

Ja pensei na criação de um programa com interação de java e C para captar endereços de memória mas mesmo assim não poderia lelos.

Me ajudem a encontrar uma forma de desmontar esse programa.

ola pesquise sobre “engenharia reversa” e por descompiladores ha varios pela rede…
o pessoal geralmente usa programas que embaralhao o codigo… para protegelos mesmo que consiga descompilar vai se dificil entender… para modificar eh melhor perder esse tempo criando um pois entender logica dos outros… eh complicado.

Eu diria que é bem mais difícil descompilar o programa e ver o código gerado que tentar fazer um do zero que faça a mesma coisa.

Em particular, um programa em C pode ser disassemblado (não descompilado) com o IDA Pro Disassembler, mas acho que você não vai entender muita coisa do resultado. Normalmente essa ferramenta é útil mais para quem quer crackear um programa (ou seja, modificar apenas uma pequena funcionalidade, que normalmente é a proteção contra cópias não autorizadas).

Senão me engano o .NET Reflector faz isso pra .NET.

O reflector realmente funciona mas não tem suporde Java quando baixo do site, vc tem ele com Java?

O mesmo para o IDA! ele não tem suporte Java em versao de dowload.
Se tiver me passe um link direto.

Gente! vo tentar especificar pra ver se melhora:

To tentando entender a linguagem de programação da interfarce básica do Cliente Tibia

mas nada decompila o .exe dele