Việc chuyển gói nhị phân apk của một ứng dụng Android thành dạng mà con người có thể đọc được gọi là quá trình dịch ngược (reverse engineering). Ở đây tôi không bàn đến tính hợp pháp của hành động này mà tôi chỉ bàn đến khía cạnh kỹ thuật của nó. Đồng tiền thì có hai mặt. Việc dịch ngược này cũng vậy tôi tin rằng nó cũng hữu ích cho bạn trong nhiều tình huống hoàn toàn hợp pháp. Để dịch ngược ứng dụng Android bạn cần thực hiện qua hai bước
Decompiling
- Tải android-apktool từ đây.
- Giải nén hay cài đặt (tuỳ theo gói mà bạn chọn tải về).
- Thực hiện câu lệnh sau đây:
apktool d file.apk
- Bạn thu được các tập tin resource xml và mã nguồn smali. Tuy nhiên mã nguồn smali rất khó đọc (có thể chạy debug được). Chúng ta cần tiến hành bước kế tiếp để thu được mã nguồn Java.
Disassembling
- Tải công cụ dex2jar tool tại đây.
- Giải nén nó vào một thư mục bất kỳ.
- Thực hiện câu lệnh sau đây để chuyển gói apk thành gói jar
dex2jar file.apk
- Tải công cụ jd-gui tại đây.
- Sử dụng công cụ này để chuyển file class thành file java.