[TUT] hướng dẫn dịch ngược một ứng dụng andoird.

Tut dưới đây nhằm hướng dẫn các bạn về cách reverser 1 file .APK để lấy được mã nguồn phục vụ cho mục đích nghiên cứu, phân tích, sửa chữa nội dung của một phần mềm chạy trên Android. Trong bài viết này, tôi chỉ chia sẻ làm cách nào để lấy được mã nguồn. Chứ không đi sâu vào phân tích các hành động, thực thi của một chương trình được dịch ngược.

1/. Công cụ cần có.
– File .APK cần reversre. Đương nhiên rồi, cần phải có nó thì mới reverser được chứ. Cách download 1 file .APK từ Google Play các bạn tự Google seach.
– dex2jar: Là một công cụ cho phép dịch ngược những file Class.dex.
– jd-gui: Công cụ dịch ngược .JAR về mã nguồn.
– 7-Zip (nếu có): Nếu máy bạn đang cài sẵn thì dùng, còn nếu chưa cài thì không cần thiết.
– Java: đương nhiên là máy bạn phải có sẵn Java rồi, thì các chương trình trên mới mong hoạt động.

Sau đây mình hướng dẫn cách làm luôn.
2/.
+ Giải nén file .APK: Về bản chất, file .APK là một file nén, có cấu trúc tương tự như một file .ZIP Chính vì vậy, các bạn có thể đổi tên mở rộng của 1 file .APK -> .ZIP rồi giải nén ra để lấy dữ liệu như các tệp hình ảnh, âm thanh, các tập định nghĩa giao diện .XML,.. nằm trong tệp giải nén ra. Có thể sử dụng 7-Zip để giải nén mà không cần đổi tên mở rộng.
anh1
+ Chuyển Class.dex – Jar: Sau khi giải nén một tệp tin .APK. Trong thư mục giải nén, sẽ có một tệp là Class.dex :3 Tệp tin này chứa mã nguồn của sản phầm. Sử dụng dex2jar để chuyển tệp Class.dex kia sang .JAR.
anh2
+ Reverse JAR -> mã nguồn: Sau khi có được .JAR rồi, thì tiến hành reverser .JAR sang mã nguồn thôi. Nếu coder không thực hiện Obfuscated thì gần như ta có được 90% mã nguồn gốc. nhưng nếu Obfuscated thì cần làm thêm. Trong trường hợp của Btalk và Zalo không có obfuscated nên mình không nói về kỹ thuật này nữa. Sử dụng jd-gui để reserver .JAR về mã nguồn.
anh3
Định post mã nguồn của chương trình lên, nhưng lại thôi, vì bài viết quá rõ ràng rồi. Các bác nào lập trình Andoird nhiều vào phân tích thêm về cách hoạt động của nó. Chúc các bạn may mắn, và phân tích đầy đủ những tính năm của một App andoird.

Advertisements

6 thoughts on “[TUT] hướng dẫn dịch ngược một ứng dụng andoird.”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s