É possível "descompilar" uma janela.exe? Ou pelo menos ver a Assembleia?
Editar para dizer que não é um executável.net, sem cabeçalho CLI.
15 answers
Com um depuradorpode passar pela Montagem do programa interactivamente.
Com um desmontador , você pode ver a montagem do programa com mais detalhes.
Com um decompiler, você pode transformar um programa volta parcial do código fonte, assumindo que você conheça o que foi escrito (o que você pode descobrir com ferramentas gratuitas como PEiD - se o programa estiver lotado, você terá que descompactá-lo primeiro, OU Detectar-é-Fácil se você não pode encontrar PEiD em qualquer lugar. O DIE tem uma forte comunidade de desenvolvedores no github atualmente).
Depuradores:
- OllyDbg , livre, um bom depurador de 32 bits, para o qual você pode encontrar vários plugins e scripts feitos pelo Usuário para torná-lo ainda mais útil.
- WinDbg , free, um depurador bastante capaz pela Microsoft. WinDbg é especialmente útil para olhar para os internals do Windows, uma vez que sabe mais sobre as estruturas de dados do que outros depurador.
- SoftICE, SICE to friends. O comércio e o desenvolvimento pararam em 2006. SoftICE é uma espécie de Ferramenta hardcore que corre sob o sistema operacional (e pára todo o sistema quando invocado). SoftICE ainda é usado por muitos profissionais, embora possa ser difícil de obter e não pode trabalhar em algum hardware (ou software - ou seja, ele não vai funcionar em cartões Vista ou NVIDIA gfx).
Desmontadores:
- IDA Pro (comercial) - topo de linha desmontador/depurador. Usado pela maioria dos profissionais, como analistas de malware, etc. Custa alguns dólares embora (existe versão livre, mas é bastante limitado.
- Um pouco antiquado, mas faz o trabalho. Eu acredito que W32Dasm é abandonware hoje em dia, e existem inúmeros hacks criados pelo Usuário para adicionar alguma funcionalidade muito útil. Você terá que olhar ao redor para encontrar o melhor versao.
Descompiladores:
- Visual Basic: VB Decompiler, comercial, produz um pouco de bytecode identificável.
- Delphi: DeDe , livre, produz código fonte de boa qualidade.
- C: HexRays , comercial, um plugin para a IDA Pro pela mesma empresa. Produz grandes resultados, mas custa um grande dólar, e não será vendido a qualquer um (ou assim eu ouvi).
- .NET(C#): dotPeek, livre, descompila .NET 1.0-4.5 assembleias para C#. Apoio .dll, .exe .postal, .vsix,.nupkg, and .ficheiros winmd.
Além disso, se você estiver fazendo análise de malware (ou usar SICE), eu sugiro de todo coração executar tudo dentro de uma máquina virtual, ou seja estação de trabalho de VMware. No caso do SICE, ele irá proteger o seu sistema real de BSODs, e no caso de malware, ele irá proteger o seu sistema real do programa alvo. Você pode ler sobre a análise de malware com VMware aqui.
Pessoalmente, ando com o Olly, o WinDbg & W32Dasm e algumas ferramentas de utilidade mais pequenas. Além disso, lembre-se que desmontar ou mesmo depurar o software de outras pessoas é geralmente contra a EULA no mínimo:)Um ficheiro binário é apenas um conjunto desses códigos (normalmente chamado de "códigos de op") e a informação ("argumentos") em que os códigos de op actuam.
Agora, linguagem assembly é uma linguagem de computador onde cada palavra de comando na linguagem representa EXATAMENTE um código op no processador. Há uma tradução direta 1: 1 entre um comando de linguagem assembly e um op-code de processador. É por isso que o conjunto de codificação para um processador x386 é diferente do conjunto de codificação para um braço processador.Desmontagem é simplesmente isto: um programa lê através do binário( o código da Máquina), Substituindo os códigos op por seus comandos de linguagem de montagem equivalentes, e retorna o resultado como um arquivo de texto. É importante entender isso; se seu computador pode ler o binário, então você pode ler o binário também, quer manualmente com uma tabela de código op em sua mão (ick) ou através de um desmontador.
Os desmontadores têm alguns truques novos, mas é importante entender. que um desmontador é, em última análise, um mecanismo de busca e substituição. É por isso que qualquer EULA que a proíba está a soprar ar quente. Você não pode permitir que o computador leia os dados do programa e também proibir que o computador leia os dados do programa. Não me interpretes mal, houve tentativas para o fazer. Eles trabalham bem como DRM em arquivos de música.) No entanto, há algumas reservas quanto à abordagem de desmontagem. Nomes variáveis são inexistentes; tal coisa não existe para o seu PROCESSADOR. As chamadas da biblioteca são confusas como o inferno e muitas vezes requerem desmontagem de binários adicionais. E a montagem é difícil de ler nas melhores condições. A maioria dos programadores profissionais não consegue ler a linguagem de montagem sem ter dores de cabeça. Para um amador, não vai acontecer. De qualquer forma, esta é uma explicação um pouco encoberta, mas espero que ajude. Todo mundo pode se sentir livre para corrigir quaisquer erros da minha parte; já faz um tempo. ;)x64dbg
é um depurador de código aberto e bom que é mantido ativamente.
Claro, dê uma olhada em IDA Pro . Eles oferecem uma versão eval para que você possa experimentá-lo.
Se você está apenas tentando descobrir o que um malware faz, pode ser muito mais fácil executá-lo sob algo como a ferramenta livre Monitor de Processo que irá relatar sempre que tentar acessar o sistema de arquivos, registro, portas, etc...
Também, usar uma máquina virtual como o servidor de VMWare livre é muito útil para este tipo de trabalho. Você pode fazer uma imagem "limpa", e, em seguida, voltar a isso sempre que você executar o malware.
O google rápido produz isto: http://www.geocities.com / ~sangcho/disasm.html
Boomerang também pode valer a pena verificar.
Se não tiver tempo, submeta o malware à cwsandbox:
Http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
HTH
Depurador de imunidade é uma ferramenta poderosa para escrever façanhas, analisar malware e engenharia reversa arquivos binários. Foi inicialmente baseado no código fonte Ollydbg 1.0, mas com os nomes de erro de re-lançamento fixo. Ele tem uma API Python bem suportada para uma fácil extensibilidade, então você pode escrever seus scripts python para ajudá-lo na análise.
Além disso, há uma boa que o Peter da equipa Corelan escreveu. chamado mona.py , excelente ferramenta btw.Você pode usar o dotPeek, muito bom para descompilar o arquivo exe. É de graça.
A suite explorer pode fazer o que quiser.