Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 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
5041105há 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:

root@kitploit:~
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

root@kitploit:~
gem install dex-oracle

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

root@kitploit:~
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:

root@kitploit:~
android avd

Uso

root@kitploit:~
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:

root@kitploit:~
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.

É possível que um plugin veja um padrão que pensa ser ofuscação, mas na verdade é algum código que não deveria executar. Isso parece improvável porque os padrões de ofuscação são realmente incomuns, mas é possível. Se você estiver achando que um determinado plugin está causando problemas e você tem certeza de que o aplicativo não está protegido por aquele ofuscador específico, ou seja, o aplicativo não é protegido por DexGuard mas o plugin do DexGuard está tentando executar coisas, apenas desabilite-o.

Mais Informações

  1. TetCon 2016 - Android Deobfuscation
  2. Hacking with dex-oracle for Android Malware Deobfuscation
Baixar ferramenta