A tool for mapping classes between different versions of the same APK.
Project description
Alpaka
Alpaka is a command-line tool designed for mapping 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 Mapping: Generates a JSON mapping 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 Mapping
Output a JSON mapping 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 map 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 map --deobfuscation A.mapping --only-obfuscated A.apk B.apk1 > B.mapping
Advanced Options
The map command supports several options to fine-tune its behavior:
--only-obfuscated: Prevents Alpaka from creating unnecessary mappings between unobfuscated classes.--no-propagation: Only run the first analysis stage. Usually leads to more accurate results but fewer mappings 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file alpaka_re-0.2.0.tar.gz.
File metadata
- Download URL: alpaka_re-0.2.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35da9a8a3f7dde14a61aefebe6201863d0582a19def1729380fa016beba22fa4
|
|
| MD5 |
eb481d5db58d4d08ecf7046e14a16024
|
|
| BLAKE2b-256 |
9ed51900c376e4941432bfc28c67aad64ddb9da1cf0a1f9bf59f8d6289ab6f9b
|
File details
Details for the file alpaka_re-0.2.0-py3-none-any.whl.
File metadata
- Download URL: alpaka_re-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2296f81062e6df1e52582cceaf5e6c6a632a82b316baf61c5415b45d71892e41
|
|
| MD5 |
aa0a3e5af09bc2eee2d7bb14470de816
|
|
| BLAKE2b-256 |
1f26f4067a4fe7f569c448e28cc7e0ee6b92b3475cbace37b0e51f27542a29b9
|