Có tệp .apk, có cách nào để tôi có thể lấy mã nguồn không?
Có tệp .apk, có cách nào để tôi có thể lấy mã nguồn không?
Câu trả lời:
Ngay cả khi ProGuard đã được sử dụng, bạn vẫn có thể nhận được một số thông tin chi tiết thú vị. Dưới đây là câu hỏi StackOverflow với lời giải thích chi tiết: Android: Lấy mã nguồn từ tệp APK . Video YouTube với một hướng dẫn chi tiết . Và một mục blog về điều đó: Cách lấy mã nguồn từ tệp APK Android .
Nếu bạn gặp may mắn và .apk
tệp của bạn không được Proguard hoặc analog bảo vệ , bạn có thể sử dụng công cụ APK . Nó là một công cụ cho các ứng dụng Android thứ ba, đóng, nhị phân.
Từ một trong những wiki hài của Parnkul Garg trong SO :
Quy trình giải mã tập tin .apk, phương pháp từng bước:
Tạo một thư mục mới và sao chép tập tin .apk mà bạn muốn giải mã.
Bây giờ đổi tên phần mở rộng của tệp .apk này thành .zip (ví dụ: đổi tên từ filename.apk thành filename.zip) và lưu nó. Bây giờ bạn có thể truy cập các tệp class.dex, v.v ... Ở giai đoạn này, bạn có thể thấy các tệp drawable nhưng không phải các tệp xml và java, vì vậy hãy tiếp tục.
Bây giờ giải nén tệp .zip này trong cùng một thư mục (hoặc NEW FOLDER).
Tải xuống dex2jar và giải nén nó vào cùng một thư mục (hoặc NEW FOLDER).
Di chuyển tệp class.dex vào thư mục dex2jar.
Bây giờ hãy mở dấu nhắc lệnh và thay đổi thư mục vào thư mục đó (hoặc NEW FOLDER). Sau đó viết d2j-dex2jar classes.dex
và nhấn enter. Bây giờ bạn có tệp class.dex.dex2jar trong cùng một thư mục.
Tải xuống trình dịch ngược java , nhấp đúp chuột vào jd-gui, nhấp vào tệp đang mở và mở tệp class.dex.dex2jar từ thư mục đó: bây giờ bạn có được các tệp lớp.
Lưu tất cả các tệp lớp này (Trong jd-gui, nhấp vào Tệp -> Lưu tất cả các nguồn) bằng tên src. Ở giai đoạn này, bạn nhận được nguồn java nhưng các tệp .xml vẫn không thể đọc được, vì vậy hãy tiếp tục.
Bây giờ hãy mở một thư mục mới
Đặt vào tệp .apk mà bạn muốn giải mã
Tải về phiên bản mới nhất của apktool VÀ apktool cài đặt cửa sổ (cả hai có thể được tải về từ liên kết giống nhau) và đặt chúng trong cùng một thư mục
Tải xuống framework-res.apk và đặt nó vào cùng một thư mục (Không phải tất cả các tệp apk đều cần tệp này, nhưng nó không bị tổn thương)
Mở một cửa sổ lệnh
Điều hướng đến thư mục gốc của APKtool và gõ lệnh sau:
apktool if framework-res.apk
apktool d myApp.apk
(trong đó myApp.apk biểu thị tên tệp mà bạn muốn giải mã)
bây giờ bạn có một thư mục tệp trong thư mục đó và có thể dễ dàng đọc các tệp xml của apk.
Đây không phải là bất kỳ bước nào chỉ sao chép nội dung của cả hai thư mục (trong trường hợp này là cả thư mục mới) sang một thư mục duy nhất
và tận hưởng mã nguồn ...