apktool

Function: Mainly used to decompile resource files in the project, and decompile bytecode into Smali language

Download address: * * * * ibotpeaches. Making. IO/Apktool/ins…

** Runtime environment: **Java 8

Use:

decompiling

$apktool d test.jar // Decompress the JAR file $apktool decode test.jar // Decompress the JAR file $apktool d test $apktool d test.apk -o demo // Decompress the apk file to specify the output directoryCopy the code

packaging

$ apktool build test// Package the JAR file and output the locationtest/dist/

$ apktool b test// Package apK file, output locationtestDist $apktool b bar -o new_bar. Apk /dist $apktool b bar -o new_barCopy the code

dex2jar

Function: Convert dex files into readable JAR files

** Download address: **github.com/pxb1988/dex…

** Runtime environment: **Java 8

Use:

$d2j-dex2jar.sh test.dex // Convert the dex file to a JAR file (the dex file can be obtained by manually decompressing apK) $d2j-dex2jar.sh -f test.apk // Extract the dex file from the APK and convert it to a JAR fileCopy the code

jd-gui

Function: Used to read and modify JAR files or class files

** Java -decompiler.github. IO

** Runtime: **Java 8 (note: openJDK is not supported)

Use:

Open the JAR file or class file directly

jadx-gui

Function: used to read and modify dex files, and can easily switch between Java code and Smali code

** Download address: **github.com/skylot/jadx

** Runtime: **Java 8 (note: openJDK is not supported)

Use:

Open the dex file directly

jbe

Function: Edit Java bytecode

** Set. Ee /jbe

** Runtime: **Java 1.5+ (note: openJDK is not supported)

Use:

Open class File (File — Open class File)

On the left, you can see the Constant Pool, Fields, methods, and other information of this class

Click on the XXX method and select [0] Code to view the bytecode for that method

You can see the bytecode of the method on the right, and click Code Editor to edit the bytecode

jad

Function: decompile class files

Download address: * * * * www.javadecompilers.com/jad

** Runtime: **Java 1.5+ (note: openJDK is not supported)

Use:

Jad doesn’t have a UI, so you can add it to the system path variable for ease of use, and then decomcompile directly using jad

$ jad test.class
Copy the code

After the operation is successful, a.jad file with the same name will be generated in the current class file directory, which can be opened directly with a text editor to read

luyten

Function: Used to read and modify JAR files or class files

** Download address: **github.com/deathmarine…

** Runtime: **Java 1.8 (note: openJDK is not supported)

Use:

Open the JAR file or class file directly

AndroidKiller

Features: Integrated all the functions of the previous tools, for direct decompilation of APK files, modify, package, etc

** Download address: **www.pd521.com/thread-136-…

** Operating environment: **Java 1.8, ApkTool

Use:

The built-in ShakaApktool has not been updated for a long time, so we need to replace it with apktool. Choose your own apktool path according to the picture below, and leave the parameter option blank

Click open and select an APK file

Engineering information window

On the left side is the entry page of APK, version information, four components list, permission information, etc

On the right are code editing Windows, log information, method references, and so on

Here is a demonstration of basic use, more functions please explore

IDA_Pro

What it does: IDA Pro can disassemble so files to convert binary code into assembly language, and decomcompile assembly language into C/C ++ programs using IDA Pro’s F5 magic

** Download address: **www.hex-rays.com/products/id…

** Operating environment: ** Windows 7+, VC2013, VC2015

Use:

Select ida.exe or ida64.exe according to your computer’s bit, then select new open so file

The project page is displayed

You can see the function name on the left, and when you select the function, press F5 to see the c++ pseudocode

Here is a demonstration of basic use, more functions please explore