image

Esta é a segunda metade do artigo anterior Android Deobfuscation - Parte 1.

JavaDeObfuscator (JDO):

Esta ferramenta disponível em -> https://sourceforge.net/projects/jdo/

Descrição:

JDO é um Java DeObfuscator que funciona diretamente em arquivos de classe. O JDO contém uma GUI simples e fácil de usar que torna a desobfusação automática de projetos Java uma operação de um clique.

Etiqueta 1: O JDO precisa de .class arquivos para a desobsfusação que é extraído diretamente de classes_dex2jar.jar arquivo usando a ferramenta Winrar.exe.

image

Etiqueta 2: . arquivos de classe estão abaixo após a extração todos são viáveis.

image

Etiqueta 3: O arquivo .class deve ser inserido na ferramenta JDO para DeObfuscação Automatizada e a saída será desobscotada .class arquivo.

image

Etiqueta 4: O JDO retira corretamente a camada original de processamento de função em aplicativos/APKs especificados como exemplo:

image

Etiqueta 5: Esta ferramenta revelará a funcionalidade adequada do aplicativo com nome de parâmetro original, nome do método, declarações de looping e campos serão divulgados.

image

Dex-Oracle:

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

Ferramenta disponível em -> https://github.com/CalebFenton/dex-oracle

Instalação:

Passo 1. Instalar Smali / Baksmali

Já que você é um reverso de Elite Android, tenho certeza que você já tem Smali e Baksmali em seu caminho. Se por alguma razão estranha ainda não estiver instalada, isso deve começar, mas examine-o cuidadosamente antes de funcionar:

mkdir ~/bin || cd ~/bin

curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali-2.1.2.jar && mv smali-*.jar smali.jar

curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.1.2.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. Instale o Android SDK / ADB

Certifique-se de que a ADB está no seu caminho.

Passo 3. Instale a Gem

gem install dex-oracle

Ou, se você preferir construir a partir da fonte:

git clone https://github.com/CalebFenton/dex-oracle.git

cd dex-oracle

gem install bundler

bundle install

Passo 4. Conecte um dispositivo ou emulador

Você deve ter um emulador em execução ou um dispositivo conectado para o Oracle funcionar.

A Oracle precisa executar métodos em um sistema Android ao vivo. Isso pode estar em um dispositivo ou em um emulador (preferido). Se for um dispositivo, certifique-se de não se importar em executar código potencialmente hostil nele.

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

android avd

Uso:

image

Por exemplo, apenas desobsfumar métodos em 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

Fluxo de trabalho:

A Oracle leva os aplicativos Android (APK), os executáveis Dalvik (DEX) e os arquivos Smali como entradas. Primeiro, se a entrada for um APK ou DEX, ela será desmontada em arquivos Smali. Em seguida, os arquivos Smali são passados para vários plugins que realizam análises e modificações. Plugins buscam 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 fosse um ARQUIVO APK ou UM ARQUIVO DEX, os arquivos Smali modificados continuaram a ser recompilados e um APK ou DEX atualizados são criados.

A execução do método é realizada pelo Motorista. A entrada APK, DEX ou Smali é combinada com o Driver em um único DEX usando dexmerge e é empurrada para um dispositivo ou emulador. Os plugins podem então usar driver que usa reflexão Java para executar métodos a partir da entrada DEX. Os valores de retorno podem ser usados para melhorar a análise semântica além do mero reconhecimento de padrão. Isso é especialmente útil para muitos métodos de descriptografia de strings, que geralmente tomam uma sequência criptografada ou algum conjunto de byte. Uma limitação é que a execução se limita a métodos estáticos.

  1. Ele tem como alvo originalmente Android.Obad com DexGuard
  2. Busca por padrões de regex em smali
  3. Melhora a análise executando alguns métodos
  4. Substitui código ofuscado por valor de retorno

Código ofuscado:

image

Código desofuscado:

image

Androguard – androapkinfo.py:

  • § Exibe informações completas sobre o arquivo apk
  • § Androapkinfo exibe Arquivos, Permissões, Atividade Principal, Todas as Atividades, Serviços, Informações relacionadas à ofuscação de uma só vez.

Instalação:

Máquina virtual: Geralmente vem com uma ferramenta de construção com Vezir VM e Santako VM.

Download no sistema Ubuntu/Debian: Antes de prosseguirmos para a instalação, vamos verificar os pré-requisitos no sistema.

  • Certifique-se de que o Python está instalado em seu sistema, se não, então instale python seguindo este documento.
  • Depois de instalar python, instale IPython e pigmeus, usando o seguinte comando no terminal:

sudo easy_install ipython

pigmeus sudo easy_install

Usando Git

  • O projeto Androguard está disponível no GitHub, podemos usar o clone git em terminal ou linha de comando para instalar o Androguard.

https://github.com/androguard/androguard.git do clone git

Uso:

androapkinfo.py python -i

OU

./androapkinfo.py -i

image


Autor: Kailesh Manoharan

Artigo Original