I. Giới thiệu

Còn vài giờ nữa là hết tháng rồi. Đành đặt mình vào mặt đường đua với thời hạn để hoàn thành nội dung bài viết này vậy. Về chủ đề NLP chắc chắn để mon sau viết chứ tiếng viết không kịp mất.!! Hehe

*

Một ngày rất đẹp trời, lúc mà trung khu trạng bạn rất thoải mái. Cứ cho như là bạn đã ế đi, không có gấu chó đi dạo nên đành lòng trong nhà ngồi viết code. đa số dòng code của khách hàng rất mượt, vô cùng đẹp, ngoài ra bạn còn lồng vào đấy hầu như thuật toán hay, giải pháp giải quyết cực kì tốt nhưng chỉ mình các bạn nghĩ ra.

"Ai viết code mà lại vi diệu thế" - bạn vui tới cả mà tự sướng để thốt lên

"Phù! kết thúc rồi" - các bạn vừa chấm dứt xong một ứng dụng, và chuẩn bị release đẩy nó lên store nhằm chào hàng hồ hết người.

Giả sử là ứng dụng của bạn nó gồm phần chuyển từ thương hiệu tiếng việt quý phái tên giờ đồng hồ nhật đi, cách xử lý này đã làm các bạn tốn bao nhiêu tâm huyết do đó ứng dụng của người sử dụng rất được mọi tín đồ ủng hộ, do tính năng độc đáo và khác biệt mà chỉ bạn mới có. Dựa vào ý tưởng của chúng ta (nguyên nhân nhà quan), thêm vào đó việc bạn chưa tồn tại gấu (nguyên nhân khách quan) cơ mà tiền bạn tìm được từ vận dụng ngày càng nhiều. Kể từ đó, chúng ta sống sung sướng, cho nỗi ăn cho tới 1 thùng mì trong 2 ngày để tiêu giảm tiền.


*

Và lại mang lại một ngày, trời âm u, mây mịt mù, tâm rối bù mà lại tiền thì tất yêu đủ nữa! là do bạn hỏng hỏng, từng nào tiền cũng tiêu hết? xuất xắc là do bạn đã có gấu?. Không! chẳng dòng nào trên đúng cả, các bạn vẫn ngoan như ngày nào, siêu thị thì cùng lắm là chỉ nửa thùng 1 ngày thay bởi vì 1 thùng 2 ngày như trước đó =)) (WTH, không những code giỏi mà toán còn xuất sắc nữa).Bạn sẽ xem: Dịch ngược file thiết lập apk của android

Thế tại sao?. Thì ra cũng có thể có một ứng dụng khác trên thị trường, đẹp nhất hơn, xịn hơn, và tính năng mà chúng ta tâm đắc xưa nay cũng gồm trong đấy nữa. Một ứng dụng đối đầu đi kèm làm bạn mất hết phần đông thùng mì ngày nào (có vẻ bạn nghiện ăn uống mì trên mức cho phép rồi).

Tại sao áp dụng khác đấy lại làm cho được các chức năng, phương pháp xử lý nhưng chỉ các bạn mới nghĩ ra!. Chúng ta phải tò mò cho ra lẽ!

*

Thì ra là thế, qua vài ngày dò mẫm, bạn đã và đang biết được chỗ hổng của ứng dụng, các bạn chưa đảo lộn code làm cho người khác có thể dịch ngược lại mã mối cung cấp của bạn. Và đánh cắp tâm máu của bạn.

Bạn đang xem: Dịch ngược file cài đặt apk của android


*

Vậy họ sẽ làm nỗ lực nào?. Và phương án phòng phòng ra sao. Họ cùng tìm hiểu nhé! - demo dịch ngược mã nguồn và biện pháp.

II. Dịch ngược một số trong những ứng dụng nổi tiếng!

1. Hướng dẫn.

Trong android, khi bạn tạo ra một bạn dạng cài để với đuôi là ".apk". File .apk này có thể được mở với giải nên như tệp tin rar bình thường. Bạn cũng có thể dùng winrar để mở bọn chúng lên!Xem trong đấy tất cả gì!Chẳng hạn như mình tạo ra 1 template project (Login Project) bao gồm sẵn trong app android Studio!

*

cùng build ra một bạn dạng .apk! (Chọn Build > Build APK) sẽ có được file app-debug.apk nằm tại đường dẫn khoác định là YourProjectName/app/build/outputs/apk.

Dùng winRAR mở bạn sẽ thấy phần lớn thành phần được đóng góp gói bao gồm: thư mục res, tệp tin classes.dex, ... Như trong hình!

Để xem vào mã nguồn này có gì, bạn phải đến vài ba công cụ, chúng ta cũng có thể tải bọn chúng ở đường links dưới đây:


Mình đã download về cùng giải nén chúng ra, đặt trong cùng một thư mục! (file jd-gui-1.4.0 là JD-GUI nhé)

Giả sử các bạn đã chuẩn bị được các công vắt ở trên, mình bước đầu tiến hành nhé.

Xem thêm:

Copy file classes.dex vào thư mục mà tôi đã giải nén phương pháp ở bên trên (nếu ko copy thì lát đưa đường truyền file này vào)!Mở terminal lên, mình sử dụng Window yêu cầu dùng Command Prompt, và cd folder công cụ.Bạn đã thấy từ cách đóng gói cho đến mã nguồn của công ty đều hoàn toàn có thể được đọc một cách dễ dàng2. Thực hành.

Chẳng hạn, mình thấy một số ứng dụng khá đẹp mắt nên mình thích biết người ta dùng thư viện làm sao (việc có tác dụng này khá thiếu tế nhị do không được xin phép, nên các bạn đừng như mình)

1.1. Minder


Sau lúc dịch ngược mã nguồn, ta có thể nhìn thấy toàn bộ mã nguồn cũng tương tự thư viện được sử dụng!. Ví dụ điển hình ứng dụng này đã áp dụng thư viện https://github.com/hoang8f/android-flat-button của chính doanh nghiệp gdhoavang.edu.vn tạo ra ra luôn =)) (bạn bao gồm thư viện nào hay hãy góp phần vào repository github của chúng ta để quảng bá công ty ra bên ngoài)

1.2. Jdict


Sau khi dịch ngược mã nguồn ta thấy.... Wait, wth, vật gì thế này, code chũm này đọc nắm nào được!. Ông như thế nào code cơ mà khủng thế.
Thực ra không hẳn như bạn nghĩ đâu, đây là một giải pháp làm rối code, tạo cho code đọc bắt buộc hiểu được nhằm phòng việc dịch ngược đánh tráo mã nguồn. Vậy nó làm như thế nào?. Cùng tò mò ở mục tiếp theo sau nhé!

III. Biện pháp chống dịch ngược!

Để tránh khỏi việc đánh tráo code, Android cung cấp cho ta vẻ ngoài - ProGuard

1. ProGuard là gì?

ProGuard là lao lý tích hợp sẵn trong android Studio, với các tính năng hỗ trợ cho mã nguồn ứng dụng của doanh nghiệp thu gọn lại (để dễ dàng phân phối), làm rối (để kháng dịch ngược, vị tên những hàm, biến ... Bị thay tên khó đọc), sau cuối là nó về tối ưu để áp dụng chạy cấp tốc hơn. Chúng ta được đề xuất nên sử dụng ProGuard vào cả môi trường đang cải cách và phát triển lẫn thành phầm phát hành, nếu như chỉ thực hiện ở sản phẩm phát hành mà vứt qua thực hiện nó khi chạy thử có thể tăng khả năng ứng dụng bị crash không muốn ...

2. Phương pháp dùng2.1. Mở build.gradle của dự án ra với thêm câu chữ như sau (nếu chưa có):

android //.. BuildTypes release //Thêm một khối debug nếu còn muốn minifyEnabled true //Thu gọn gàng code, false còn nếu như không dùng useProguard true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" Có thể thêm cả ProGuard mang đến debug

android { //.. BuildTypes release //Thêm một khối debug nếu như muốn minifyEnabled true //Thu gọn code, false nếu như không dùng useProguard true //Làm rối code proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" debug minifyEnabled true useProguard false //Không làm rối code proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 2.2. Không tính ra, chúng ta còn hoàn toàn có thể loại bỏ các tài nguyên (Resource) không sử dụng tớiCác tài nguyên không sử dụng tới có thể được đào thải (cần áp dụng cùng với minifyEnabled true) bằng phương pháp thêm vào shrinkResources true

android //.. BuildTypes release shrinkResources true //Thêm dòng này vào minifyEnabled true useProguard true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 1.3. Proguard-rules.proTrong những đoạn cấu hình sử dụng ProGuard sinh sống trên, đều phải có chỉ ra một file mang tên proguard-rules.pro, chính là file thông số kỹ thuật thêm về cách thức hoạt động đến ProGuard

Khi ProGuard làm cho rối code, nó thay đổi tên những class, các class tìm hiểu thêm từ mặt thứ 3 cũng bị chuyển đổi, nên hoàn toàn có thể dẫn cho tới lỗi. Trong trường hợp ao ước không làm cho rối một lớp làm sao đó chúng ta dùng thông số kỹ thuật keep, ví dụ trong file: proguard-rules.pro

-keep class com.facebook.** *; Với mã trên, sẽ giữ lại những lớp, cách tiến hành com.facebook.** *

Bạn gồm thể tìm hiểu thêm chi tiết ở đây: https://developer.android.com/studio/build/shrink-code.html

3. Thực hành

Mình đã thử và kết quả thu được từ ứng dụng login ở trên như sau
Các thương hiệu function, thương hiệu biến đã bị đổi không còn sang kí từ bỏ chẳng tường minh chút này giờ vấn đề đọc code sẽ trở đề nghị khó hơn!.

Bài viết của bản thân mình xin được dừng chân tại đây! hẹn mọi fan ở nội dung bài viết sau! Phù! ở đầu cuối cũng kịp!

IV. Lời kết

Việc dịch ngược mã nguồn của người khác mà chưa được sự cho phép là một điều cấm kỵ trong đạo đức máy tính, cực tốt hãy từ bỏ thân vận động, nhưng không phải ai ai cũng có tư tưởng như vậy, cho nên hãy bảo vệ phiên bản quyền của bạn để tránh ăn cắp.Bài viết chỉ mang tính chất giới thiệu cũng như đề cao giải pháp phòng tránh, không có ý ăn cắp phiên bản quyền, khôn xiết mong các tác giả của ứng dụng thông cảm.

V. Tham khảo

. Https://xuanthulab.net/su-dung-proguard-de-bao-ve-va-toi-uu-ung-dung-android.html. Https://developer.android.com/studio/build/shrink-code.html