Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dex-oracle — Um desofuscador Dalvik baseado em padrões que usa execução limitada para melhorar a análise semântica | Kitploit
Ferramentas/GitHubGitHub/calebfenton/dex-oracle
Segurança AndroidEngenharia ReversaAnálise de MalwareAnálise de Binários
GitHubcalebfenton/dex-oracle

dex-oracle

Um desofuscador Dalvik baseado em padrões que usa execução limitada para melhorar a análise semântica

Ver Repositório
50411017há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Oracle

Um desofuscador Dalvik baseado em padrões que utiliza execução limitada para melhorar a análise semântica. Também, a inspiração para outro desofuscador Android: Simplify.

Gem Version Code Climate Test Coverage

Antes before

Depois after

sha1: a68d5d2da7550d35f7dbefc21b7deebe3f4005f3

md5: 2dd2eeeda08ac8c15be8a9f2d01adbe8

Instalação

Passo 1. Instalar Smali / Baksmali

Como você é um engenheiro reverso Android de elite, tenho certeza de que já tem Smali e Baksmali no seu PATH. Se por alguma razão estranha não estiverem instalados, isso deve ajudar, mas por favor examine cuidadosamente antes de executar:

mkdir ~/bin || cd ~/bin
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2.5.jar && mv smali-*.jar smali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.2.5.jar && mv baksmali-*.jar baksmali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali
chmod +x ./smali ./baksmali
export PATH=$PATH:$PWD

Passo 2. Instalar Android SDK / ADB

Certifique-se de que adb está no seu PATH.

Passo 3. Instalar a Gem

gem install dex-oracle

Ou, se preferir compilar a partir do código fonte:

git clone https://github.com/CalebFenton/dex-oracle.git
cd dex-oracle
gem install bundler
bundle install

Passo 4. Conectar um Dispositivo ou Emulador

Você deve ter um emulador em execução ou um dispositivo conectado para o Oracle funcionar. A versão mínima necessária do Android é 5.0!

O Oracle precisa executar métodos em um sistema Android ativo. Isso pode ser em um dispositivo ou em um emulador (preferido). Se for um dispositivo, certifique-se de que você não se importa em executar código potencialmente hostil nele.

Se quiser usar um emulador e já tiver o Android SDK instalado, você pode criar e iniciar imagens de emulador com:

android avd

Uso

Usage: dex-oracle [opts] <APK / DEX / Smali Directory>
    -h, --help                       Exibe esta tela
    -s ANDROID_SERIAL,               ID do dispositivo para execução do driver, padrão=""
        --specific-device
    -t, --timeout N                  Timeout de execução de comando ADB em segundos, padrão="120"
    -i, --include PATTERN            Otimiza apenas métodos e classes que correspondem ao padrão, ex.: Ldune;->melange\(\)V
    -e, --exclude PATTERN            Exclui esses tipos da otimização; inclusões têm prioridade
        --disable-plugins STRING[,STRING]*
                                     Desabilita plugins, ex.: stringdecryptor,unreflector
        --list-plugins               Lista os plugins disponíveis
    -v, --verbose                    Seja verboso
    -V, --vverbose                   Seja muito verboso

Por exemplo, para desofuscar apenas métodos de uma classe chamada Lcom/android/system/admin/CCOIoll; dentro de um APK chamado obad.apk:

dex-oracle -i com/android/system/admin/CCOIoll obad.apk

Como Funciona

O Oracle recebe como entrada aplicativos Android (APK), executáveis Dalvik (DEX) e arquivos Smali. Primeiro, se a entrada for um APK ou DEX, ele é desmontado em arquivos Smali. Em seguida, os arquivos Smali são passados para vários plugins que realizam análises e modificações. Os plugins procuram por padrões que podem ser transformados em algo mais fácil de ler. Para entender o que o código está fazendo, alguns métodos Dalvik são realmente executados e a saída é coletada. Dessa forma, algumas chamadas de método podem ser substituídas por constantes. Depois disso, todos os arquivos Smali são atualizados. Finalmente, se a entrada era um arquivo APK ou DEX, os arquivos Smali modificados são recompilados e um APK ou DEX atualizado é criado.

A execução de métodos é realizada pelo Driver. O APK, DEX ou Smali de entrada é combinado com o Driver em um único DEX usando dexmerge e enviado para um dispositivo ou emulador. Os plugins podem então usar o Driver, que utiliza reflexão Java para executar métodos do DEX de entrada. Os valores de retorno podem ser usados para melhorar a análise semântica além do mero reconhecimento de padrões. Isso é especialmente útil para muitos métodos de descriptografia de strings, que geralmente recebem uma string criptografada ou algum array de bytes. Uma limitação é que a execução é limitada a métodos estáticos.

Hacking

Criando Seu Próprio Plugin

Existem três plugins que acompanham o Oracle:

  1. Undexguard - remove certos tipos de ofuscação do Dexguard
  2. Unreflector - remove alguma reflexão Java
  3. String Decryptor - plugin simples que remove um tipo comum de criptografia de strings

Se você encontrar um novo tipo de ofuscação, pode ser possível desofuscar com o Oracle. Analise o Smali e descubra se o código pode:

  1. ser rearranjado
  2. ser compreendido executando alguns métodos estáticos

Se um desses dois for o caso, você deve tentar escrever seu próprio plugin. Existem quatro passos para construir seu próprio plugin:

  1. identificar padrões Smali
  2. descobrir como simplificar os padrões
  3. descobrir como interagir com o driver e invocar métodos
  4. descobrir como aplicar modificações diretamente

Os plugins incluídos devem ser um bom guia para entender as etapas #3 e #4. O Driver é projetado para ajudar com a etapa #2.

Claro, você é sempre bem-vindo para compartilhar qualquer ofuscação que encontrar e alguém pode eventualmente resolvê-la.

Atualizando o Driver

Primeiro, certifique-se de que dx está no seu PATH. Isso faz parte do Android SDK, mas provavelmente não está no seu PATH a menos que você seja hardcore.

A pasta driver é um projeto Java gerenciado pelo Gradle. Importe-o no Eclipse, IntelliJ, etc. e faça as alterações que desejar. Para finalizar a atualização do driver, execute ./update_driver. Isso reconstruirá o driver e converterá o JAR de saída em um DEX.

Solução de Problemas

Se houver um problema ao executar o código do driver no seu emulador ou dispositivo, abra o monitor (parte do Android SDK) e verifique se há alguma pista lá. Mesmo que o erro não faça sentido para você, ajudará se você postá-lo junto com o problema que criará.

Nem todas as plataformas Android funcionam bem com o dex-oracle. Algumas simplesmente travam ao tentar executar arquivos DEX arbitrários. Se você estiver tendo problemas com Segfaults ou travamentos do driver, tente usar Android 4.4.2 API level 19 com ARM.

Baixar ferramenta