Skip to main content

A tool for mapping classes between different versions of the same APK.

Project description

Alpaka

PyPI - Version PyPI - Python Version


Alpaka is a command-line tool designed for matching classes across different versions of the same APK. This is particularly useful for reverse engineering, allowing you to track class renames and changes across different builds, and preserving manual deobfuscation efforts.

Features

  • Class Matching: Generates a JSON matching of classes from one APK version to another.

  • Deobfuscation Migration: Migrate existing Enigma deobfuscation mapping files to new APK versions, helping maintain your renaming efforts in tools like Jadx.

Installation

git clone https://github.com/DanielFi/alpaka
pip install ./alpaka

Usage

Basic Class Matching

Output a JSON matching from A.apk (older version) to B.apk (newer version). This will show how classes in A.apk correspond to classes in B.apk.

> alpaka match A.apk B.apk1
{
    "LX/003;": "LX/003;",
    "LX/004;": "LX/004;",
    "LX/005;": "LX/005;",
    "LX/006;": "LX/006;",
...

Migrating Deobfuscation Mappings Across Versions

If you have an Enigma mapping file (e.g., A.mapping) for A.apk, you can use Alpaka to generate a new mapping file (B.mapping) that applies your existing renames to B.apk. This is incredibly useful for maintaining your manual deobfuscation work when a new version of the APK is released.

The generated B.mapping file can then be imported into tools like Jadx to preserve your manual renamings!

> alpaka match --deobfuscation A.mapping --only-obfuscated A.apk B.apk1 > B.mapping

Advanced Options

The match command supports several options to fine-tune its behavior:

  • --only-obfuscated: Prevents Alpaka from creating unnecessary matches between unobfuscated classes.
  • --no-propagation: Only run the first analysis stage. Usually leads to more accurate results but fewer matches overall.

License

Alpaka is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alpaka_re-0.3.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alpaka_re-0.3.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file alpaka_re-0.3.0.tar.gz.

File metadata

  • Download URL: alpaka_re-0.3.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.3

File hashes

Hashes for alpaka_re-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ae0056923ae1d34628983707cbefd42e066833f618baa9e05fba9489682c6753
MD5 0ba2570b4f9087d984e9bac26fd696c9
BLAKE2b-256 288ce1abbb3d8007a933526438fb2b37667a02280137254e37465fdeadce1385

See more details on using hashes here.

File details

Details for the file alpaka_re-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: alpaka_re-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.3

File hashes

Hashes for alpaka_re-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3572a05069558a20e2b2454a94e5ab16055639a7e5c5c723a2eb20fde2b8486
MD5 aa84c9819412a0aedaf25c50ad9c5675
BLAKE2b-256 8da343ae4374c59f66d3c4820ea5221e79235b6325b0e31bf9d43e23be9eb005

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page