How to decompile Android APK

How to decompile Android APK

Preface

I have been decompiling for a long time, but I picked it up again because I knew I had to do it today. I will record it today.

Tool Preparation

1. Test environment:

win10

2. Tools used:

2.1 Download address on CSDN:

apktool

dex2jar

jd-gui

2.2 Official latest version download address:

apktool(google code)

dex2jar(google code)

jd-gui (google code)

Tool Introduction

apktool

Function: Get resource files, you can extract image files and layout files for viewing.

dex2jar

Function: Decompile apk into Java source code (convert classes.dex into jar file)

jd-gui

Function: View the jar file converted from classes.dex in APK, that is, the source code file

Decompilation process

1. Decompile apk to get the source code, pictures, XML configuration, language resources and other files of the program

1) Download apktool from the above tools, decompress it to get 3 files: aapt.exe, apktool.bat, apktool.jar, put the APK file to be decompiled in this directory,

2) Open the command line interface (Run - CMD), locate the apktool folder, and enter the following command: apktool.bat d -f fish.apk fish

(In the command, test.apk refers to the full name of the APK file to be decompiled, and test is the name of the directory where the decompiled resource files are stored, that is: apktool.bat d -f [apk file] [output folder])

3) It means the acquisition is successful. Then you will find a fish file in the folder. Click it to view all the resource files of the application.

4) If you want to repackage the decompiled file into apk, you can: enter apktool.bat b test (your compiled folder), the effect is as follows:

5) Then you can find two more folders under the previous test file:

  • build
  • dist (which contains the packaged APK file)

2. Decompile Apk to get Java source code

1) Download dex2jar and jd-gui from the above tools and unzip them

2) Change the APK extension to .rar or .zip, and decompress it to get the classes.dex file (it is compiled from the java file and packaged by the dx tool). Put the obtained classes.dex into the dex2jar-0.0.9.15 folder of the tool that was decompressed before.

3) In the command line, locate the directory where dex2jar.bat is located and enter dex2jar.bat classes.dex. The effect is as follows:

4) A classes_dex2jar.jar file will be generated in this directory, then open the jd-gui.exe in the jd-gui folder, and then use the tool to open the previously generated classes_dex2jar.jar file, and you can see the source code. The effect is as follows:

5) Obfuscated renderings (class file names and method names inside them are named in a, b, c, etc.)

Decompilation status

Since the existence of this kind of tool is very detrimental to the protection of intellectual property rights, the current technology has also changed. Many companies will set up their own products, and various exceptions may occur during decompilation, resulting in decompilation failure.

<<:  Responsive Image Processing in Web Development

>>:  Developer’s statement: This is how I learned GAN

Recommend

New product marketing and promotion guide!

I have a friend who launched a new e-commerce pla...

Analysis of Pinduoduo’s business model, products and usage

Pinduoduo is a platform e-commerce company with a...

How to build a content system for B2B customer acquisition?

For B-side customer acquisition, the WeChat ecosy...

Imagery in Material Design

[[123978]] In material design, images (whether pa...

11 cases have been confirmed nationwide in the past four years. Is plague scary?

On July 19, the Ningxia Hui Autonomous Region Pla...

Using macaca for mobile hybrid automation testing (Part 4)

Now it is time to test the webview in native. For...

An inventory of the digital marketing industry in the first half of 2016!

In the first half of 2016, the market size of Chi...

What are the commonly used terms in SEM? Summary of Common SEM Terms

Key indicators and terms ◆ Ranking and creativity...

How many technology companies are needed to host a modern Olympic Games?

The Rio Olympics has been open for two days, and ...