
Plugin do Hex-Rays Decompiler para melhor navegação no código
| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | / / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __
| _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|/ |_|
O plugin do Decompilador Hex-Rays para melhor navegação de código no processo de RE. O CodeXplorer automatiza a REconstrução de código de aplicações C++ ou malware moderno como Stuxnet, Flame, Equation, Animal Farm... :octocat:
O plugin CodeXplorer é um dos primeiros disponíveis publicamente plugins do Decompilador Hex-Rays. Mantemos este projeto atualizado desde o verão de 2013 e continuamos contribuindo com novas funcionalidades frequentemente. Além disso, os recursos mais interessantes do CodeXplorer foram apresentados em inúmeras conferências de segurança como: REcon, ZeroNights, H2HC, NSEC e BHUS 👾
Contribuidores:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
Versões suportadas dos produtos Hex-Rays: sempre focamos nas últimas versões do IDA e do Decompilador porque tentamos usar novos recursos interessantes nos novos lançamentos do SDK. Isso também significa que testamos apenas nas últimas versões dos produtos Hex-Rays e não garantimos funcionamento estável em versões anteriores.
Por que não IdaPython: todo o código é desenvolvido em C/C++ porque é uma forma mais estável de suportar um plugin complexo para o Decompilador Hex-Rays.
Plataformas suportadas: x86/x64 para Win, Linux e Mac.
HexRaysCodeXplorer - Plugin do Decompilador Hex-Rays para navegação de código mais fácil. O menu de contexto com clique direito na janela Pseudocode mostra os comandos do plugin CodeXplorer:

💎 Aqui estão os principais recursos do plugin CodeXplorer: 💎

A estrutura reconstruída é exibida na "Janela de saída". Informações detalhadas sobre o recurso de Reconstrução de tipo são fornecidas na postagem do blog "Type REconstruction in HexRaysCodeXplorer".
O plugin CodeXplorer também suporta a reconstrução automática de tipo no armazenamento de tipos locais do IDA.

struct_local_data_storage, duas tabelas de funções virtuais foram identificadas e, como resultado, duas estruturas correspondentes foram geradas: struct_local_data_storage_VTABLE_0 e struct_local_data_storage_VTABLE_4.



Extrair Tipos para Arquivo – despeja todas as informações de tipo (incluindo tipos reconstruídos) para um arquivo.
Navegação por chamadas de funções virtuais na janela Pseudocode do HexRays. Após representar objetos C++ com estruturas C, esse recurso possibilita navegar com clique do mouse para as chamadas de funções virtuais como campos da estrutura:



O Object Explorer oferece suporte aos seguintes recursos:
Geração automática de estruturas para VTBL nos tipos locais do IDA
Navegação na lista de tabelas virtuais e salto para o endereço da VTBL na janela "IDA View" com clique
Mostrar dicas para a posição atual na lista de tabelas virtuais
Mostra lista de referências cruzadas com clique no menu "Show XREFS to VTBL"


O modo Batch contém os seguintes recursos:
Example (dump types and ctrees for functions with name prefix "crypto_"):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
Compilação:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props no notepad(++) e atualize os valores das variáveis IDADIR e IDASDK para apontar para o caminho de instalação do IDA e o caminho do SDK IDA7, respectivamente. O HexRays SDK deve estar em $IDADIR\plugins\hexrays_sdk (como por padrão)Release | x64 e Release x64 | x64Linux:
Mac:
.pmc do IDA 7.0 deve ser .dylibexport IDA_DIR="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS" && export IDA_SDK="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/idasdk" && make -f makefile7.macHexRaysCodeXplorer.xcodeprojCom CMake:
============================================================================
Palestras em conferências sobre o plugin CodeXplorer: