Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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
redexer — O framework de instrumentação binária Redexer para bytecode Dalvik | Kitploit
Ferramentas/GitHubGitHub/plum-umd/redexer
Segurança AndroidAnálise EstáticaAnálise Dinâmica (Sandboxing)Engenharia ReversaAnálise de BináriosPapers e PesquisaAprendizado e Educação
GitHubplum-umd/redexer

redexer

O framework de instrumentação binária Redexer para bytecode Dalvik

Ver Repositório
1743121há 5 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
Site

Build Status

redexer

Redexer é uma ferramenta de reengenharia que manipula binários de aplicativos Android. Essa ferramenta é capaz de analisar um arquivo DEX em uma estrutura de dados na memória; inferir com quais parâmetros o aplicativo usa certas permissões (nomeamos esse recurso de RefineDroid); modificar e desanalisar essa estrutura de dados para produzir um arquivo DEX de saída (nomeamos esses recursos de Dr. Android, que significa Dalvik Rewriting for Android).

Publicações

  • Dr. Android and Mr. Hide: Fine-grained Permissions in Android Applications. Jinseong Jeon, Kristopher K. Micinski, Jeffrey A. Vaughan, Ari Fogel, Nikhilesh Reddy, Jeffrey S. Foster, e Todd Millstein. In ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices (SPSM '12), Out 2012.

Requisitos

  • OCaml e Ruby

Esta ferramenta é testada sob OCaml 4.09.0 e Ruby 1.8.6(7), então você precisa instalá-los (ou versões superiores).

  • Gerenciador de pacotes/bibliotecas OCaml e biblioteca SHA

Para manipular uma assinatura SHA-1 (hash) no formato DEX, utilizamos a biblioteca OCaml SHA via ocamlfind/findlib, um gerenciador de bibliotecas OCaml. A maneira mais fácil de instalar ambos é usando OPAM, um gerenciador de pacotes OCaml, que possui ambos os pacotes---OPAM ocamlfind e OPAM sha.

Você também pode compilar e/ou instalar ambos os pacotes diretamente. Se estiver usando uma máquina Linux, pode encontrar facilmente as distribuições.

Caso contrário, por exemplo, usando um Mac, você precisa compilá-los por conta própria. Você pode encontrar os códigos-fonte originais aqui. Compile executando make, e vincule o diretório resultante ao diretório raiz site-lib do ocamlfind; ou sudo make install.

Se estiver usando um PC, você precisa instalar ocamlfind/findlib e FlexDLL primeiro. Certifique-se de que suas variáveis de ambiente estejam configuradas corretamente da seguinte forma:

OCAMLLIB=C:\OCaml\lib
CAML_LD_LIBRARY_PATH=%OCAMLLIB%\stublibs
FLEXLINKFLAGS=-L%MinGW%\lib -L%MinGW%\lib\gcc\mingw32\N.N.N
  • Pacotes OPAM:

    • sha
    • str
    • ppx_deriving
    • ppx_deriving_yojson
    • yojson
  • Android SDK (ou fontes)

Para desempacotar e reempacotar arquivos apk, usamos apktool, uma ferramenta de reengenharia APK de código aberto. Como ele usa aapt, Android Asset Packaging Tool, você precisa instalar o Android SDK ou as fontes. Além disso, usamos zipalign, que também vem do Android SDK, para otimizar aplicativos reescritos.

Você pode definir caminhos para as ferramentas base do Android adicionando o seguinte ao seu perfil:

ANDROID_HOME=$HOME/android-sdk    # seu próprio caminho aqui!
export ANDROID_HOME

PATH=$PATH:$ANDROID_HOME/tools
PATH=$PATH:$ANDROID_HOME/platform-tools
PATH=$PATH:$ANDROID_HOME/build-tools/19.0.0    # número da versão instalada
export PATH
  • RubyGems e Nokogiri

Os scripts principais são escritos em Ruby e requerem RubyGems, um gerenciador de pacotes Ruby, e Nokogiri, uma biblioteca XML para manipular arquivos de manifesto.

  • (opcional) graphviz dot

Se você quiser ver gráficos (ex: grafo de chamadas, grafo de fluxo de controle, árvore de dominância, etc.), você precisa instalar graphviz dot.

Compilar

Para compilar o redexer, basta make! Você pode ver o binário redexer no nível superior.

$ make (clean)

Antes de usar a ferramenta, cabe ao usuário instalar o arquivo de plataforma mais recente para o apktool. Por exemplo, você precisa fazer

$ java -jar tools/apktool.jar if [arquivo de plataforma adequado]

Você também pode gerar documentos de API em formato html.

$ make api

Uso

  • ajuda

Você pode ver todas as opções que a ferramenta oferece:

$ ruby scripts/cmd.rb -h
$ ruby scripts/cmd.rb --help
  • desanalisar (unparse)

Assim como o dexdump no Android SDK, o redexer permite visualizar o conteúdo interno do arquivo dex fornecido em formato YAML.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd unparse [--to blah.yml]
  • despejar método (dump method)

Esta opção despeja instruções para um método especificado.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd dump_method --mtd cls.mtd
  • identidade (identity)

Este recurso serve para testar os módulos de análise e despejo do redexer. Ele provavelmente gera um arquivo dex idêntico.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd id [--to blah.dex]
  • informação (info)

Você também pode ver estatísticas básicas sobre o arquivo dex, por exemplo, # instr.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd info
  • classes

Esta opção imprime todos os nomes de classes definidos no arquivo dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes

Pode ser útil para pesquisar bibliotecas de terceiros específicas, por exemplo,

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes | egrep 'apache'
  • api

Esta opção imprime o uso da API no arquivo dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd api [--sdk android.]
$ ruby scripts/cmd.rb target.(apk|dex) --cmd api --sdk com.facebook.
  • estatísticas de opcode

Você não tem curiosidade sobre como alguns opcodes são raramente usados em bytecodes Dalvik? Ele mostrará o histograma de todos os opcodes, ou você pode consultar com que frequência um opcode exato é usado no aplicativo fornecido.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd opstat [--op opcode1,opcode2,...]

Por exemplo,

$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat
$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat --op div-int/lit16,nop
  • Análise de resolução de Intent

Esta opção realiza análise de resolução de Intent baseada em propagação, e imprime as transições entre classes Activity.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd intent
  • grafo de chamadas (call graph)

Esta opção gera um arquivo pdf que descreve um grafo de chamadas do arquivo fornecido. Se você não especificar o nome do pdf, cg.pdf será usado.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cg [--to blah.pdf] [--no-pdf]
  • grafo de fluxo de controle (control-flow graph)

Esta opção gera um arquivo pdf que mostra um grafo de fluxo de controle do método fornecido. Acrescente um nome de método a um nome de classe com ponto: class_name.method_name

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cfg --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • árvore de dominância (post) (post dominator tree)

Esta opção é semelhante ao recurso acima, exceto que descreve a árvore de dominância (post).

$ ruby scripts/cmd.rb target.(apk|dex) --cmd (p)dom --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • análise de vivacidade (liveness analysis)

Esta opção realiza uma análise clássica de fluxo de dados reverso.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd live --mtd cls.mtd
  • análise de propagação de constantes (constant-propagation analysis)

Esta opção realiza uma análise clássica de fluxo de dados direto.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd const --mtd cls.mtd
  • análise de definição alcançável (reaching definition analysis)

Esta opção realiza uma análise clássica de fluxo de dados direto.

Baixar ferramenta