I. Giới thiệu

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

*

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

"Ai viết code nhưng mà vi diệu thế" - chúng ta vui đến cả mà tự sướng để thốt lên

"Phù! xong rồi" - bạn vừa xong xuôi xong một ứng dụng, và sẵn sàng release đẩy nó lên store nhằm chào hàng phần đa người.

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

*

Và lại mang đến một ngày, trời âm u, mây mịt mù, trọng điểm rối bù nhưng lại tiền thì cần thiết đủ nữa! là do bạn lỗi hỏng, bao nhiêu tiền cũng tiêu hết? hay là do bạn đã có gấu?. Không! chẳng chiếc nào trên đúng cả, chúng ta vẫn ngoan như ngày nào, nhà hàng siêu thị thì cùng lắm là chỉ nửa thùng một ngày thay bởi 1 thùng 2 ngày như trước đó =)) (WTH, không hầu hết code giỏi mà toán còn giỏi nữa).

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

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

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

*

Thì ra là thế, qua vài ngày tìm mẫm, bạn cũng đã biết được khu vực hổng của ứng dụng, chúng ta chưa xáo trộn code làm cho người khác hoàn toàn có thể dịch trái lại mã mối cung cấp của bạn. Và ăn cắp tâm ngày tiết của bạn.

*

Vậy họ đang làm cầm cố nào?. Và giải pháp phòng phòng ra sao. Họ cùng khám phá nhé! - test dịch ngược mã nguồn và biện pháp.

II. Dịch ngược một vài ứng dụng nổi tiếng!

1. Phía dẫn.

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

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

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

*
Trong đấy res là địa điểm đóng gói đa số tài nguyên trong thư mục res sống trong code của bạn, bao hàm những tệp tin ảnh, tệp tin view mà bạn viết bởi xml (đã được mã hóa). Nhưng đặc biệt là tệp tin classes.dex, phần đa mã nguồn .java của công ty được biên dịch ra thành .class với đóng gói trong tệp tin này.

Xem thêm: Tải Dragon Ball Xenoverse 2 Việt Hoá Kèm Hướng Dẫn Bằng Hình Ảnh

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

*

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

Giả sử chúng ta đã chuẩn bị được những công nuốm ở trên, mình bước đầu tiến hành nhé.

Copy file classes.dex vào folder mà mình đã giải nén vẻ ngoài ở bên trên (nếu không copy thì lát đưa đường dẫn file này vào)!Mở terminal lên, mình dùng Window nên dùng Command Prompt, với cd folder công cụ.Bạn đã thấy từ bí quyết đóng gói cho đến mã nguồn của chúng ta đều có thể được phát âm một phương pháp dễ dàng2. Thực hành.

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

1.1. Minder

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

1.2. Jdict

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

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

Để tránh ngoài việc ăn cắp code, Android cung cấp cho ta luật pháp - ProGuard

1. ProGuard là gì?

ProGuard là chế độ tích hòa hợp sẵn trong app android Studio, với các tính năng giúp cho mã mối cung cấp ứng dụng của chúng ta thu gọn lại (để dễ phân phối), có tác dụng rối (để phòng dịch ngược, vì tên những hàm, biến đổi ... Bị thay tên khó đọc), ở đầu cuối là nó buổi tối ưu để áp dụng chạy nhanh hơn. Chúng ta được lời khuyên nên thực hiện ProGuard trong cả môi trường đang cách tân và phát triển lẫn sản phẩm phát hành, giả dụ chỉ sử dụng ở sản phẩm phát hành mà bỏ qua áp dụng nó lúc chạy thử hoàn toàn có thể tăng năng lực ứ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 cùng thêm văn bản 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 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 còn muốn minifyEnabled true //Thu gọn gàng 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, bạn còn hoàn toàn có thể loại bỏ những tài nguyên (Resource) không dùng tớiCác tài nguyên không cần sử dụng tới hoàn toàn có thể được đào thải (cần áp dụng cùng cùng với minifyEnabled true) bằng cách thêm vào shrinkResources true

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

Khi ProGuard có tác dụng rối code, nó thay đổi tên các class, nhiều class tham khảo từ bên thứ 3 cũng trở nên chuyển đổi, nên có thể dẫn tới lỗi. Trong trường hợp mong muốn không có tác dụng rối một lớp như thế nào đó các bạn 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ẽ lưu lại lại những lớp, cách làm com.facebook.** *

Bạn tất cả thể xem thêm chi tiết sống đây: https://developer.android.com/studio/build/shrink-code.html

3. Thực hành

Mình đã từng và công dụng thu được từ ứng dụng login ở trên như sau

*
Các tên function, thương hiệu biến đã bị đổi hết sang kí từ chẳng tường minh chút này giờ việc đọc code đã trở buộc phải khó hơn!.

Bài viết của mình xin được dừng chân tại đây! hứa hẹn mọi người ở 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 fan khác mà không được sự được cho phép là một điều cấm kỵ trong đạo đức máy tính, tốt nhất hãy trường đoản cú thân vận động, tuy thế không phải ai cũng có bốn tưởng như vậy, cho nên hãy bảo vệ bản quyền của khách hàng để tránh ăn cắp.Bài viết chỉ mang ý nghĩa giới thiệu tương tự như đề cao phương pháp phòng tránh, không có ý ăn cắp phiên bản quyền, vô cùng mong những tác trả của vận dụng thông cảm.

V. Tham khảo

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