Android and iOS

The Unicorn CPU emulator

Tools for inspecting packages, source code and binaries.

Analysis tools1 min readEditorial methods

Unicorn is a CPU-emulation component. Investigating a bounded code region differs from representing an entire mobile operating system or physical-device security.

Evaluation approach

Prepare memory, registers and initial state to examine limited code fragments. System calls and platform services require additional models.

Application example

Investigate a self-contained transformation function in your native code with varied inputs.

Limits and considerations

An inaccurate environment model can produce outcomes that never occur on a real device.

Bounded execution instead of a whole device

The researcher supplies memory maps, registers and function inputs. If these do not match reality, results may not represent field behavior. State which system calls the model excludes.

A self-contained transformation is a useful starting point. Compare the same input in a real test program. Broad dependencies such as mobile UI, operating-system security and hardware key services still require device testing.

Checks and decisions

  • Document initial state
  • Model dependencies
  • Compare physical-device results

Use Unicorn for narrow, controlled analysis questions rather than complete application security testing.

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.