Android and iOS

Analyzing mobile native code with Ghidra

Tools for inspecting packages, source code and binaries.

Analysis tools1 min readEditorial methods

Ghidra supports binary analysis of native mobile components. Interpret its static view against the actual architecture and execution context.

Evaluation approach

Examine functions through disassembly, decompilation and cross-references. Select the correct architecture, format and analysis settings.

Application example

Trace JNI entry points into native functions in your Android library to establish control coverage.

Limits and considerations

Automatic function and type inference can be wrong. Pseudocode is not a definitive description of execution.

Make an analysis project shareable

Meaningful function names and comments help another researcher follow a finding. Distinguish automated inferences from analyst annotations. Start the report with file digest, architecture and analysis options.

For JNI calls, examine both the native entry and managed-side parameters. A native condition alone may not explain which user data reaches it. Connect static analysis to runtime observations where needed.

Checks and decisions

  • Verify architecture
  • Review imports
  • Compare runtime observations

Ghidra supports detailed analysis, whose quality depends on the researcher's contextual understanding.

Sources

The primary references above provide the technical basis. Example workflows and evaluation suggestions are this publication’s explanations, not independent test results for a particular product.