Katalina is like Unicorn but for Dalvik bytecode. It provides an environment that can execute Android bytecode one instruction at a time. Requires Python >= 3.10
How to install:
pip install -r requirements.txt
How to run:
python3 main.py -xe classes.dex
How it looks like:
![image](https://private-user-images.githubusercontent.com/3353285/259824263-5eb16e8e-44c4-4e3f-9cc4-2ed6a7b847ac.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgwMTY1NjIsIm5iZiI6MTcxODAxNjI2MiwicGF0aCI6Ii8zMzUzMjg1LzI1OTgyNDI2My01ZWIxNmU4ZS00NGM0LTRlM2YtOWNjNC0yZWQ2YTdiODQ3YWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTBUMTA0NDIyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjdlNmIzMzQ4NjFkMGY2NjY4OWY5YWZiMzZhYzZmMDhkN2NhMWEyZDIyN2VhOTMwOTA2YTM5NjFjMGQ0NDA1NCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.okPGs-ClNDsHqMGo7ILEQZBKRGQRV68ruyKNYKKpmwk)
What works:
- most instructions
- same-class method invocations
- Static fields/method invocations
- String APIs
- Base64 APIs
What kinda works:
- Iterator APIs
- Arrays APIs
- cross-class non static method invocations and fields
What's broken:
- MultiDex
- I/O
- Windows support might be broken because of the timeout mechanism, please use WSL to run it