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