diff --git a/mobsf/StaticAnalyzer/tools/jadx/README.md b/mobsf/StaticAnalyzer/tools/jadx/README.md index 285337ada5..9d4f431e9a 100644 --- a/mobsf/StaticAnalyzer/tools/jadx/README.md +++ b/mobsf/StaticAnalyzer/tools/jadx/README.md @@ -5,12 +5,15 @@ [![Build status](https://github.com/skylot/jadx/workflows/Build/badge.svg)](https://github.com/skylot/jadx/actions?query=workflow%3ABuild) [![Alerts from lgtm.com](https://img.shields.io/lgtm/alerts/g/skylot/jadx.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/skylot/jadx/alerts/) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) +[![Maven Central](https://img.shields.io/maven-central/v/io.github.skylot/jadx-core)](https://search.maven.org/search?q=g:io.github.skylot%20AND%20jadx) [![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) **jadx** - Dex to Java decompiler Command line and GUI tools for producing Java source code from Android Dex and Apk files +:exclamation::exclamation::exclamation: Please note that in most cases **jadx** can't decompile all 100% of the code, so errors will occur. Check [Troubleshooting guide](https://github.com/skylot/jadx/wiki/Troubleshooting-Q&A#decompilation-issues) for workarounds + **Main features:** - decompile Dalvik bytecode to java classes from APK, dex, aar, aab and zip files - decode `AndroidManifest.xml` and other resources from `resources.arsc` @@ -21,15 +24,13 @@ Command line and GUI tools for producing Java source code from Android Dex and A - jump to declaration - find usage - full text search +- smali debugger, check [wiki page](https://github.com/skylot/jadx/wiki/Smali-debugger) for setup and usage -**Upcoming unstable features:** -- smali debugger (thanks to [@LBJ-the-GOAT](https://github.com/LBJ-the-GOAT)), check [wiki page](https://github.com/skylot/jadx/wiki/Smali-debugger) for setup and usage +Jadx-gui key bindings can be found [here](https://github.com/skylot/jadx/wiki/JADX-GUI-Key-bindings) See these features in action here: [jadx-gui features overview](https://github.com/skylot/jadx/wiki/jadx-gui-features-overview) - -![jadx-gui screenshot](https://i.imgur.com/h917IBZ.png) - + ### Download - release from [github: ![Latest release](https://img.shields.io/github/release/skylot/jadx.svg)](https://github.com/skylot/jadx/releases/latest) @@ -40,8 +41,8 @@ After download unpack zip file go to `bin` directory and run: - `jadx-gui` - UI version On Windows run `.bat` files with double-click\ -**Note:** ensure you have installed Java 8 or later 64-bit version. -For windows you can download it from [adoptopenjdk.net](https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot#x64_win) (select "Install JRE"). +**Note:** ensure you have installed Java 11 or later 64-bit version. +For Windows, you can download it from [oracle.com](https://www.oracle.com/java/technologies/downloads/#jdk17-windows) (select x64 Installer). ### Install 1. Arch linux @@ -53,6 +54,9 @@ For windows you can download it from [adoptopenjdk.net](https://adoptopenjdk.net brew install jadx ``` +### Use jadx as a library +You can use jadx in your java projects, check details on [wiki page](https://github.com/skylot/jadx/wiki/Use-jadx-as-a-library) + ### Build from source JDK 8 or higher must be installed: ``` @@ -75,10 +79,16 @@ options: -dr, --output-dir-res - output directory for resources -r, --no-res - do not decode resources -s, --no-src - do not decompile source code - --single-class - decompile a single class + --single-class - decompile a single class, full name, raw or alias + --single-class-output - file or dir for write if decompile a single class --output-format - can be 'java' or 'json', default: java -e, --export-gradle - save as android gradle project -j, --threads-count - processing threads count, default: 4 + -m, --decompilation-mode - code output mode: + 'auto' - trying best options (default) + 'restructure' - restore code structure (normal java code) + 'simple' - simplified instructions (linear, with goto's) + 'fallback' - raw instructions without modifications --show-bad-code - show inconsistent code (incorrectly decompiled) --no-imports - disable use of imports, always write entire package name --no-debug-info - disable debug info @@ -92,9 +102,15 @@ options: --deobf-min - min length of name, renamed if shorter, default: 3 --deobf-max - max length of name, renamed if longer, default: 64 --deobf-cfg-file - deobfuscation map file, default: same dir and name as input file with '.jobf' extension - --deobf-rewrite-cfg - force to ignore and overwrite deobfuscation map file + --deobf-cfg-file-mode - set mode for handle deobfuscation map file: + 'read' - read if found, don't save (default) + 'read-or-save' - read if found, save otherwise (don't overwrite) + 'overwrite' - don't read, always save + 'ignore' - don't read and don't save + --deobf-rewrite-cfg - set '--deobf-cfg-file-mode' to 'overwrite' (deprecated) --deobf-use-sourcename - use source file name as class name alias --deobf-parse-kotlin-metadata - parse kotlin metadata to class and package names + --use-kotlin-methods-for-var-names - use kotlin intrinsic methods to rename variables, values: disable, apply, apply-and-hide, default: apply --rename-flags - fix options (comma-separated list of): 'case' - fix case sensitivity issues (according to --fs-case-sensitive option), 'valid' - rename java identifiers to make them valid, @@ -104,18 +120,28 @@ options: --fs-case-sensitive - treat filesystem as case sensitive, false by default --cfg - save methods control flow graph to dot file --raw-cfg - save methods control flow graph (use raw instructions) - -f, --fallback - make simple dump (using goto instead of 'if', 'for', etc) - --comments-level - set code comments level, values: none, user_only, error, warn, info, debug, default: info + -f, --fallback - set '--decompilation-mode' to 'fallback' (deprecated) + --use-dx - use dx/d8 to convert java bytecode + --comments-level - set code comments level, values: error, warn, info, debug, user-only, none, default: info --log-level - set log level, values: quiet, progress, error, warn, info, debug, default: progress -v, --verbose - verbose output (set --log-level to DEBUG) -q, --quiet - turn off output (set --log-level to QUIET) --version - print jadx version -h, --help - print this help + +Plugin options (-P=): + 1) dex-input (Load .dex and .apk files) + -Pdex-input.verify-checksum - Verify dex file checksum before load, values: [yes, no], default: yes + 2) java-convert (Convert .jar and .class files to dex) + -Pjava-convert.mode - Convert mode, values: [dx, d8, both], default: both + -Pjava-convert.d8-desugar - Use desugar in d8, values: [yes, no], default: no + Examples: jadx -d out classes.dex jadx --rename-flags "none" classes.dex jadx --rename-flags "valid, printable" classes.dex jadx --log-level ERROR app.apk + jadx -Pdex-input.verify-checksum=no app.apk ``` These options also worked on jadx-gui running from command line and override options from preferences dialog diff --git a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx index a2181ae40e..fd0ea1f10c 100755 --- a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx +++ b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx @@ -86,7 +86,7 @@ APP_NAME="jadx" APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and JADX_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xms128M" "-Xmx4g" "-XX:+UseG1GC"' +DEFAULT_JVM_OPTS='"-Xms128M" "-XX:MaxRAMPercentage=70.0" "-XX:+UseG1GC"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/lib/jadx-cli-1.3.0.jar:$APP_HOME/lib/jadx-core-1.3.0.jar:$APP_HOME/lib/logback-classic-1.2.7.jar:$APP_HOME/lib/jadx-smali-input-1.3.0.jar:$APP_HOME/lib/jadx-dex-input-1.3.0.jar:$APP_HOME/lib/jadx-java-input-1.3.0.jar:$APP_HOME/lib/jadx-plugins-api-1.3.0.jar:$APP_HOME/lib/raung-disasm-0.0.2.jar:$APP_HOME/lib/raung-common-0.0.2.jar:$APP_HOME/lib/slf4j-api-1.7.32.jar:$APP_HOME/lib/baksmali-2.5.2.jar:$APP_HOME/lib/smali-2.5.2.jar:$APP_HOME/lib/util-2.5.2.jar:$APP_HOME/lib/jcommander-1.81.jar:$APP_HOME/lib/gson-2.8.9.jar:$APP_HOME/lib/aapt2-proto-4.2.1-7147631.jar:$APP_HOME/lib/protobuf-java-3.11.4.jar:$APP_HOME/lib/logback-core-1.2.7.jar:$APP_HOME/lib/dexlib2-2.5.2.jar:$APP_HOME/lib/guava-30.1.1-jre.jar:$APP_HOME/lib/antlr-3.5.2.jar:$APP_HOME/lib/ST4-4.0.8.jar:$APP_HOME/lib/antlr-runtime-3.5.2.jar:$APP_HOME/lib/stringtemplate-3.2.1.jar:$APP_HOME/lib/jsr305-3.0.2.jar:$APP_HOME/lib/failureaccess-1.0.1.jar:$APP_HOME/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:$APP_HOME/lib/checker-qual-3.8.0.jar:$APP_HOME/lib/error_prone_annotations-2.5.1.jar:$APP_HOME/lib/j2objc-annotations-1.3.jar:$APP_HOME/lib/asm-9.2.jar:$APP_HOME/lib/antlr-2.7.7.jar +CLASSPATH=$APP_HOME/lib/jadx-cli-1.3.5.jar:$APP_HOME/lib/jadx-core-1.3.5.jar:$APP_HOME/lib/logback-classic-1.2.11.jar:$APP_HOME/lib/jadx-java-convert-1.3.5.jar:$APP_HOME/lib/jadx-smali-input-1.3.5.jar:$APP_HOME/lib/jadx-dex-input-1.3.5.jar:$APP_HOME/lib/jadx-java-input-1.3.5.jar:$APP_HOME/lib/jadx-plugins-api-1.3.5.jar:$APP_HOME/lib/raung-disasm-0.0.2.jar:$APP_HOME/lib/raung-common-0.0.2.jar:$APP_HOME/lib/slf4j-api-1.7.36.jar:$APP_HOME/lib/baksmali-2.5.2.jar:$APP_HOME/lib/smali-2.5.2.jar:$APP_HOME/lib/util-2.5.2.jar:$APP_HOME/lib/jcommander-1.82.jar:$APP_HOME/lib/gson-2.9.0.jar:$APP_HOME/lib/aapt2-proto-4.2.1-7147631.jar:$APP_HOME/lib/protobuf-java-3.11.4.jar:$APP_HOME/lib/logback-core-1.2.11.jar:$APP_HOME/lib/dexlib2-2.5.2.jar:$APP_HOME/lib/guava-30.1.1-jre.jar:$APP_HOME/lib/dalvik-dx-11.0.0_r3.jar:$APP_HOME/lib/r8-3.3.28.jar:$APP_HOME/lib/asm-9.3.jar:$APP_HOME/lib/antlr-3.5.2.jar:$APP_HOME/lib/ST4-4.0.8.jar:$APP_HOME/lib/antlr-runtime-3.5.2.jar:$APP_HOME/lib/stringtemplate-3.2.1.jar:$APP_HOME/lib/jsr305-3.0.2.jar:$APP_HOME/lib/failureaccess-1.0.1.jar:$APP_HOME/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:$APP_HOME/lib/checker-qual-3.8.0.jar:$APP_HOME/lib/error_prone_annotations-2.5.1.jar:$APP_HOME/lib/j2objc-annotations-1.3.jar:$APP_HOME/lib/antlr-2.7.7.jar # Determine the Java command to use to start the JVM. diff --git a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui old mode 100755 new mode 100644 index 4da924d5b9..f25ba84d58 --- a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui +++ b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui @@ -86,7 +86,7 @@ APP_NAME="jadx-gui" APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and JADX_GUI_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xms128M" "-XX:MaxRAMPercentage=70.0" "-XX:+UseG1GC" "-Dawt.useSystemAAFontSettings=lcd" "-Dswing.aatext=true"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/lib/jadx-gui-1.3.0.jar:$APP_HOME/lib/jfontchooser-1.0.5.jar:$APP_HOME/lib/jadx-cli-1.3.0.jar:$APP_HOME/lib/jadx-core-1.3.0.jar:$APP_HOME/lib/logback-classic-1.2.7.jar:$APP_HOME/lib/jadx-smali-input-1.3.0.jar:$APP_HOME/lib/jadx-dex-input-1.3.0.jar:$APP_HOME/lib/jadx-java-input-1.3.0.jar:$APP_HOME/lib/jadx-plugins-api-1.3.0.jar:$APP_HOME/lib/raung-disasm-0.0.2.jar:$APP_HOME/lib/raung-common-0.0.2.jar:$APP_HOME/lib/slf4j-api-1.7.32.jar:$APP_HOME/lib/baksmali-2.5.2.jar:$APP_HOME/lib/smali-2.5.2.jar:$APP_HOME/lib/util-2.5.2.jar:$APP_HOME/lib/jcommander-1.81.jar:$APP_HOME/lib/rsyntaxtextarea-3.1.3.jar:$APP_HOME/lib/image-viewer-1.2.3.jar:$APP_HOME/lib/flatlaf-intellij-themes-1.6.4.jar:$APP_HOME/lib/flatlaf-extras-1.6.4.jar:$APP_HOME/lib/flatlaf-1.6.4.jar:$APP_HOME/lib/svgSalamander-1.1.2.4.jar:$APP_HOME/lib/gson-2.8.9.jar:$APP_HOME/lib/commons-text-1.9.jar:$APP_HOME/lib/commons-lang3-3.12.0.jar:$APP_HOME/lib/rxjava2-swing-0.3.7.jar:$APP_HOME/lib/rxjava-2.2.21.jar:$APP_HOME/lib/apksig-4.2.1.jar:$APP_HOME/lib/jdwp-1.0.jar:$APP_HOME/lib/aapt2-proto-4.2.1-7147631.jar:$APP_HOME/lib/protobuf-java-3.11.4.jar:$APP_HOME/lib/logback-core-1.2.7.jar:$APP_HOME/lib/reactive-streams-1.0.3.jar:$APP_HOME/lib/dexlib2-2.5.2.jar:$APP_HOME/lib/guava-30.1.1-jre.jar:$APP_HOME/lib/antlr-3.5.2.jar:$APP_HOME/lib/ST4-4.0.8.jar:$APP_HOME/lib/antlr-runtime-3.5.2.jar:$APP_HOME/lib/stringtemplate-3.2.1.jar:$APP_HOME/lib/jsr305-3.0.2.jar:$APP_HOME/lib/failureaccess-1.0.1.jar:$APP_HOME/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:$APP_HOME/lib/checker-qual-3.8.0.jar:$APP_HOME/lib/error_prone_annotations-2.5.1.jar:$APP_HOME/lib/j2objc-annotations-1.3.jar:$APP_HOME/lib/asm-9.2.jar:$APP_HOME/lib/antlr-2.7.7.jar +CLASSPATH=$APP_HOME/lib/jadx-gui-1.3.5.jar:$APP_HOME/lib/jfontchooser-1.0.5.jar:$APP_HOME/lib/jadx-cli-1.3.5.jar:$APP_HOME/lib/jadx-core-1.3.5.jar:$APP_HOME/lib/logback-classic-1.2.11.jar:$APP_HOME/lib/jadx-java-convert-1.3.5.jar:$APP_HOME/lib/jadx-smali-input-1.3.5.jar:$APP_HOME/lib/jadx-dex-input-1.3.5.jar:$APP_HOME/lib/jadx-java-input-1.3.5.jar:$APP_HOME/lib/jadx-plugins-api-1.3.5.jar:$APP_HOME/lib/raung-disasm-0.0.2.jar:$APP_HOME/lib/raung-common-0.0.2.jar:$APP_HOME/lib/slf4j-api-1.7.36.jar:$APP_HOME/lib/baksmali-2.5.2.jar:$APP_HOME/lib/smali-2.5.2.jar:$APP_HOME/lib/util-2.5.2.jar:$APP_HOME/lib/jcommander-1.82.jar:$APP_HOME/lib/rsyntaxtextarea-3.2.0.jar:$APP_HOME/lib/image-viewer-1.2.3.jar:$APP_HOME/lib/flatlaf-intellij-themes-2.1.jar:$APP_HOME/lib/flatlaf-extras-2.1.jar:$APP_HOME/lib/flatlaf-2.1.jar:$APP_HOME/lib/svgSalamander-1.1.3.jar:$APP_HOME/lib/gson-2.9.0.jar:$APP_HOME/lib/commons-text-1.9.jar:$APP_HOME/lib/commons-lang3-3.12.0.jar:$APP_HOME/lib/rxjava2-swing-0.3.7.jar:$APP_HOME/lib/rxjava-2.2.21.jar:$APP_HOME/lib/apksig-4.2.1.jar:$APP_HOME/lib/jdwp-1.0.jar:$APP_HOME/lib/aapt2-proto-4.2.1-7147631.jar:$APP_HOME/lib/protobuf-java-3.11.4.jar:$APP_HOME/lib/logback-core-1.2.11.jar:$APP_HOME/lib/reactive-streams-1.0.3.jar:$APP_HOME/lib/dexlib2-2.5.2.jar:$APP_HOME/lib/guava-30.1.1-jre.jar:$APP_HOME/lib/dalvik-dx-11.0.0_r3.jar:$APP_HOME/lib/r8-3.3.28.jar:$APP_HOME/lib/asm-9.3.jar:$APP_HOME/lib/antlr-3.5.2.jar:$APP_HOME/lib/ST4-4.0.8.jar:$APP_HOME/lib/antlr-runtime-3.5.2.jar:$APP_HOME/lib/stringtemplate-3.2.1.jar:$APP_HOME/lib/jsr305-3.0.2.jar:$APP_HOME/lib/failureaccess-1.0.1.jar:$APP_HOME/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:$APP_HOME/lib/checker-qual-3.8.0.jar:$APP_HOME/lib/error_prone_annotations-2.5.1.jar:$APP_HOME/lib/j2objc-annotations-1.3.jar:$APP_HOME/lib/antlr-2.7.7.jar # Determine the Java command to use to start the JVM. diff --git a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui.bat b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui.bat old mode 100755 new mode 100644 index 4023670116..07d4a41443 --- a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui.bat +++ b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx-gui.bat @@ -33,7 +33,7 @@ set APP_HOME=%DIRNAME%.. for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi @rem Add default JVM options here. You can also use JAVA_OPTS and JADX_GUI_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xms128M" "-XX:MaxRAMPercentage=70.0" "-XX:+UseG1GC" "-Dawt.useSystemAAFontSettings=lcd" "-Dswing.aatext=true" @rem Find javaw.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -67,7 +67,7 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\lib\jadx-gui-1.3.0.jar;%APP_HOME%\lib\jfontchooser-1.0.5.jar;%APP_HOME%\lib\jadx-cli-1.3.0.jar;%APP_HOME%\lib\jadx-core-1.3.0.jar;%APP_HOME%\lib\logback-classic-1.2.7.jar;%APP_HOME%\lib\jadx-smali-input-1.3.0.jar;%APP_HOME%\lib\jadx-dex-input-1.3.0.jar;%APP_HOME%\lib\jadx-java-input-1.3.0.jar;%APP_HOME%\lib\jadx-plugins-api-1.3.0.jar;%APP_HOME%\lib\raung-disasm-0.0.2.jar;%APP_HOME%\lib\raung-common-0.0.2.jar;%APP_HOME%\lib\slf4j-api-1.7.32.jar;%APP_HOME%\lib\baksmali-2.5.2.jar;%APP_HOME%\lib\smali-2.5.2.jar;%APP_HOME%\lib\util-2.5.2.jar;%APP_HOME%\lib\jcommander-1.81.jar;%APP_HOME%\lib\rsyntaxtextarea-3.1.3.jar;%APP_HOME%\lib\image-viewer-1.2.3.jar;%APP_HOME%\lib\flatlaf-intellij-themes-1.6.4.jar;%APP_HOME%\lib\flatlaf-extras-1.6.4.jar;%APP_HOME%\lib\flatlaf-1.6.4.jar;%APP_HOME%\lib\svgSalamander-1.1.2.4.jar;%APP_HOME%\lib\gson-2.8.9.jar;%APP_HOME%\lib\commons-text-1.9.jar;%APP_HOME%\lib\commons-lang3-3.12.0.jar;%APP_HOME%\lib\rxjava2-swing-0.3.7.jar;%APP_HOME%\lib\rxjava-2.2.21.jar;%APP_HOME%\lib\apksig-4.2.1.jar;%APP_HOME%\lib\jdwp-1.0.jar;%APP_HOME%\lib\aapt2-proto-4.2.1-7147631.jar;%APP_HOME%\lib\protobuf-java-3.11.4.jar;%APP_HOME%\lib\logback-core-1.2.7.jar;%APP_HOME%\lib\reactive-streams-1.0.3.jar;%APP_HOME%\lib\dexlib2-2.5.2.jar;%APP_HOME%\lib\guava-30.1.1-jre.jar;%APP_HOME%\lib\antlr-3.5.2.jar;%APP_HOME%\lib\ST4-4.0.8.jar;%APP_HOME%\lib\antlr-runtime-3.5.2.jar;%APP_HOME%\lib\stringtemplate-3.2.1.jar;%APP_HOME%\lib\jsr305-3.0.2.jar;%APP_HOME%\lib\failureaccess-1.0.1.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\checker-qual-3.8.0.jar;%APP_HOME%\lib\error_prone_annotations-2.5.1.jar;%APP_HOME%\lib\j2objc-annotations-1.3.jar;%APP_HOME%\lib\asm-9.2.jar;%APP_HOME%\lib\antlr-2.7.7.jar +set CLASSPATH=%APP_HOME%\lib\jadx-gui-1.3.5.jar;%APP_HOME%\lib\jfontchooser-1.0.5.jar;%APP_HOME%\lib\jadx-cli-1.3.5.jar;%APP_HOME%\lib\jadx-core-1.3.5.jar;%APP_HOME%\lib\logback-classic-1.2.11.jar;%APP_HOME%\lib\jadx-java-convert-1.3.5.jar;%APP_HOME%\lib\jadx-smali-input-1.3.5.jar;%APP_HOME%\lib\jadx-dex-input-1.3.5.jar;%APP_HOME%\lib\jadx-java-input-1.3.5.jar;%APP_HOME%\lib\jadx-plugins-api-1.3.5.jar;%APP_HOME%\lib\raung-disasm-0.0.2.jar;%APP_HOME%\lib\raung-common-0.0.2.jar;%APP_HOME%\lib\slf4j-api-1.7.36.jar;%APP_HOME%\lib\baksmali-2.5.2.jar;%APP_HOME%\lib\smali-2.5.2.jar;%APP_HOME%\lib\util-2.5.2.jar;%APP_HOME%\lib\jcommander-1.82.jar;%APP_HOME%\lib\rsyntaxtextarea-3.2.0.jar;%APP_HOME%\lib\image-viewer-1.2.3.jar;%APP_HOME%\lib\flatlaf-intellij-themes-2.1.jar;%APP_HOME%\lib\flatlaf-extras-2.1.jar;%APP_HOME%\lib\flatlaf-2.1.jar;%APP_HOME%\lib\svgSalamander-1.1.3.jar;%APP_HOME%\lib\gson-2.9.0.jar;%APP_HOME%\lib\commons-text-1.9.jar;%APP_HOME%\lib\commons-lang3-3.12.0.jar;%APP_HOME%\lib\rxjava2-swing-0.3.7.jar;%APP_HOME%\lib\rxjava-2.2.21.jar;%APP_HOME%\lib\apksig-4.2.1.jar;%APP_HOME%\lib\jdwp-1.0.jar;%APP_HOME%\lib\aapt2-proto-4.2.1-7147631.jar;%APP_HOME%\lib\protobuf-java-3.11.4.jar;%APP_HOME%\lib\logback-core-1.2.11.jar;%APP_HOME%\lib\reactive-streams-1.0.3.jar;%APP_HOME%\lib\dexlib2-2.5.2.jar;%APP_HOME%\lib\guava-30.1.1-jre.jar;%APP_HOME%\lib\dalvik-dx-11.0.0_r3.jar;%APP_HOME%\lib\r8-3.3.28.jar;%APP_HOME%\lib\asm-9.3.jar;%APP_HOME%\lib\antlr-3.5.2.jar;%APP_HOME%\lib\ST4-4.0.8.jar;%APP_HOME%\lib\antlr-runtime-3.5.2.jar;%APP_HOME%\lib\stringtemplate-3.2.1.jar;%APP_HOME%\lib\jsr305-3.0.2.jar;%APP_HOME%\lib\failureaccess-1.0.1.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\checker-qual-3.8.0.jar;%APP_HOME%\lib\error_prone_annotations-2.5.1.jar;%APP_HOME%\lib\j2objc-annotations-1.3.jar;%APP_HOME%\lib\antlr-2.7.7.jar @rem Execute jadx-gui diff --git a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx.bat b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx.bat old mode 100755 new mode 100644 index 4881543f79..4cfe5229d3 --- a/mobsf/StaticAnalyzer/tools/jadx/bin/jadx.bat +++ b/mobsf/StaticAnalyzer/tools/jadx/bin/jadx.bat @@ -33,7 +33,7 @@ set APP_HOME=%DIRNAME%.. for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi @rem Add default JVM options here. You can also use JAVA_OPTS and JADX_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xms128M" "-Xmx4g" "-XX:+UseG1GC" +set DEFAULT_JVM_OPTS="-Xms128M" "-XX:MaxRAMPercentage=70.0" "-XX:+UseG1GC" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -67,7 +67,7 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\lib\jadx-cli-1.3.0.jar;%APP_HOME%\lib\jadx-core-1.3.0.jar;%APP_HOME%\lib\logback-classic-1.2.7.jar;%APP_HOME%\lib\jadx-smali-input-1.3.0.jar;%APP_HOME%\lib\jadx-dex-input-1.3.0.jar;%APP_HOME%\lib\jadx-java-input-1.3.0.jar;%APP_HOME%\lib\jadx-plugins-api-1.3.0.jar;%APP_HOME%\lib\raung-disasm-0.0.2.jar;%APP_HOME%\lib\raung-common-0.0.2.jar;%APP_HOME%\lib\slf4j-api-1.7.32.jar;%APP_HOME%\lib\baksmali-2.5.2.jar;%APP_HOME%\lib\smali-2.5.2.jar;%APP_HOME%\lib\util-2.5.2.jar;%APP_HOME%\lib\jcommander-1.81.jar;%APP_HOME%\lib\gson-2.8.9.jar;%APP_HOME%\lib\aapt2-proto-4.2.1-7147631.jar;%APP_HOME%\lib\protobuf-java-3.11.4.jar;%APP_HOME%\lib\logback-core-1.2.7.jar;%APP_HOME%\lib\dexlib2-2.5.2.jar;%APP_HOME%\lib\guava-30.1.1-jre.jar;%APP_HOME%\lib\antlr-3.5.2.jar;%APP_HOME%\lib\ST4-4.0.8.jar;%APP_HOME%\lib\antlr-runtime-3.5.2.jar;%APP_HOME%\lib\stringtemplate-3.2.1.jar;%APP_HOME%\lib\jsr305-3.0.2.jar;%APP_HOME%\lib\failureaccess-1.0.1.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\checker-qual-3.8.0.jar;%APP_HOME%\lib\error_prone_annotations-2.5.1.jar;%APP_HOME%\lib\j2objc-annotations-1.3.jar;%APP_HOME%\lib\asm-9.2.jar;%APP_HOME%\lib\antlr-2.7.7.jar +set CLASSPATH=%APP_HOME%\lib\jadx-cli-1.3.5.jar;%APP_HOME%\lib\jadx-core-1.3.5.jar;%APP_HOME%\lib\logback-classic-1.2.11.jar;%APP_HOME%\lib\jadx-java-convert-1.3.5.jar;%APP_HOME%\lib\jadx-smali-input-1.3.5.jar;%APP_HOME%\lib\jadx-dex-input-1.3.5.jar;%APP_HOME%\lib\jadx-java-input-1.3.5.jar;%APP_HOME%\lib\jadx-plugins-api-1.3.5.jar;%APP_HOME%\lib\raung-disasm-0.0.2.jar;%APP_HOME%\lib\raung-common-0.0.2.jar;%APP_HOME%\lib\slf4j-api-1.7.36.jar;%APP_HOME%\lib\baksmali-2.5.2.jar;%APP_HOME%\lib\smali-2.5.2.jar;%APP_HOME%\lib\util-2.5.2.jar;%APP_HOME%\lib\jcommander-1.82.jar;%APP_HOME%\lib\gson-2.9.0.jar;%APP_HOME%\lib\aapt2-proto-4.2.1-7147631.jar;%APP_HOME%\lib\protobuf-java-3.11.4.jar;%APP_HOME%\lib\logback-core-1.2.11.jar;%APP_HOME%\lib\dexlib2-2.5.2.jar;%APP_HOME%\lib\guava-30.1.1-jre.jar;%APP_HOME%\lib\dalvik-dx-11.0.0_r3.jar;%APP_HOME%\lib\r8-3.3.28.jar;%APP_HOME%\lib\asm-9.3.jar;%APP_HOME%\lib\antlr-3.5.2.jar;%APP_HOME%\lib\ST4-4.0.8.jar;%APP_HOME%\lib\antlr-runtime-3.5.2.jar;%APP_HOME%\lib\stringtemplate-3.2.1.jar;%APP_HOME%\lib\jsr305-3.0.2.jar;%APP_HOME%\lib\failureaccess-1.0.1.jar;%APP_HOME%\lib\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_HOME%\lib\checker-qual-3.8.0.jar;%APP_HOME%\lib\error_prone_annotations-2.5.1.jar;%APP_HOME%\lib\j2objc-annotations-1.3.jar;%APP_HOME%\lib\antlr-2.7.7.jar @rem Execute jadx diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.2.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.2.jar deleted file mode 100644 index 3557ae4140..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.2.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.3.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.3.jar new file mode 100644 index 0000000000..bd8b948601 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/asm-9.3.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/dalvik-dx-11.0.0_r3.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/dalvik-dx-11.0.0_r3.jar new file mode 100644 index 0000000000..90d9317c72 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/dalvik-dx-11.0.0_r3.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-1.6.4.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-1.6.4.jar deleted file mode 100644 index 0a848d64c4..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-1.6.4.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-2.1.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-2.1.jar new file mode 100644 index 0000000000..bf7da703a1 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-2.1.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-1.6.4.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-1.6.4.jar deleted file mode 100644 index 11bdd40e8b..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-1.6.4.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-2.1.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-2.1.jar new file mode 100644 index 0000000000..904428d119 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-extras-2.1.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-1.6.4.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-1.6.4.jar deleted file mode 100644 index 4400f3bbdf..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-1.6.4.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-2.1.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-2.1.jar new file mode 100644 index 0000000000..28caa5130a Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/flatlaf-intellij-themes-2.1.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.8.9.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.8.9.jar deleted file mode 100644 index 3351867c1c..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.8.9.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.9.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.9.0.jar new file mode 100644 index 0000000000..fb62e05657 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/gson-2.9.0.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.0.jar deleted file mode 100644 index 71fe49879d..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.0.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.5.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.5.jar new file mode 100644 index 0000000000..ba1e320f51 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-cli-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.0.jar deleted file mode 100644 index 7adad1e59a..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.0.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.5.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.5.jar new file mode 100644 index 0000000000..e61cbf848f Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-core-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.5.jar similarity index 73% rename from mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.0.jar rename to mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.5.jar index b9cbfa16dc..15616207ad 100644 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.0.jar and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-dex-input-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.0.jar deleted file mode 100644 index 5e8db4401a..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.0.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.5.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.5.jar new file mode 100644 index 0000000000..c2ad1e8dd2 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-gui-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-convert-1.3.5.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-convert-1.3.5.jar new file mode 100644 index 0000000000..ab06fc26f4 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-convert-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.5.jar similarity index 79% rename from mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.0.jar rename to mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.5.jar index 5ce35c26c9..fe1406f454 100644 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.0.jar and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-java-input-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.0.jar deleted file mode 100644 index 4f53e37b4d..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.0.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.5.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.5.jar new file mode 100644 index 0000000000..6706f5127e Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-plugins-api-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.0.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.5.jar similarity index 63% rename from mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.0.jar rename to mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.5.jar index 4c3236b45e..862917bec9 100644 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.0.jar and b/mobsf/StaticAnalyzer/tools/jadx/lib/jadx-smali-input-1.3.5.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.81.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.81.jar deleted file mode 100644 index 699c543edf..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.81.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.82.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.82.jar new file mode 100644 index 0000000000..90f44247e2 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/jcommander-1.82.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.11.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.11.jar new file mode 100644 index 0000000000..b70c0e6ae8 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.11.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.7.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.7.jar deleted file mode 100644 index 4067ac73f3..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/logback-classic-1.2.7.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.7.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.11.jar similarity index 53% rename from mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.7.jar rename to mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.11.jar index 4d50c97618..e3038da22d 100644 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.7.jar and b/mobsf/StaticAnalyzer/tools/jadx/lib/logback-core-1.2.11.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/r8-3.3.28.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/r8-3.3.28.jar new file mode 100644 index 0000000000..e4535bc27e Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/r8-3.3.28.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.1.3.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.2.0.jar similarity index 52% rename from mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.1.3.jar rename to mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.2.0.jar index 696a842efc..fce14e0e3f 100644 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.1.3.jar and b/mobsf/StaticAnalyzer/tools/jadx/lib/rsyntaxtextarea-3.2.0.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.32.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.32.jar deleted file mode 100644 index b16a0785b6..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.32.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.36.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.36.jar new file mode 100644 index 0000000000..7d3ce68d25 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/slf4j-api-1.7.36.jar differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.2.4.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.2.4.jar deleted file mode 100644 index e825b66bfe..0000000000 Binary files a/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.2.4.jar and /dev/null differ diff --git a/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.3.jar b/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.3.jar new file mode 100644 index 0000000000..3a4d29a2a9 Binary files /dev/null and b/mobsf/StaticAnalyzer/tools/jadx/lib/svgSalamander-1.1.3.jar differ diff --git a/requirements.txt b/requirements.txt index ec3ae85863..c28f193936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,17 +14,17 @@ shelljob>=0.6.2 asn1crypto>=1.4.0 oscrypto>=1.2.1 distro>=1.5.0 -IP2Location==8.7.2 -lief>=0.12.0 +IP2Location==8.7.3 +lief>=0.12.1 http-tools>=2.1.0 libsast>=1.5.0 pdfkit>=0.6.1 google-play-scraper>=0.1.2 androguard==3.4.0a1 apkid==2.1.3 -quark-engine==22.3.1 +quark-engine==22.4.1 frida==15.1.17 -tldextract==3.2.0 +tldextract==3.2.1 # For semgrep & mitmproxy ruamel.yaml==0.16.13 # pyup: ignore click==8.0.1 # pyup: ignore