{"repo":"luoyesiqiu/dpt-shell","free":true,"listed":false,"github":"https://github.com/luoyesiqiu/dpt-shell","clone":"git clone https://github.com/luoyesiqiu/dpt-shell.git","description":"An android Dex protection shell implementation","language":"Java","stars":1079,"topics":["aab","android","anti-debugger","apk","apk-protection","dex","security-tools"],"license":"MIT","category":"android_security","readme_excerpt":"# dpt-shell\n\n[![](https://img.shields.io/github/license/luoyesiqiu/dpt-shell)](https://github.com/luoyesiqiu/dpt-shell/blob/main/LICENSE) [![](https://img.shields.io/github/downloads/luoyesiqiu/dpt-shell/total?color=blue)](https://github.com/luoyesiqiu/dpt-shell/releases/latest) [![](https://img.shields.io/github/issues-raw/luoyesiqiu/dpt-shell?color=red)](https://github.com/luoyesiqiu/dpt-shell/issues) ![](https://img.shields.io/badge/Android-5.0%2B-brightgreen)\n\nEnglish | [简体中文](./README.zh-CN.md) \n\ndpt-shell is an Android Dex protection shell that hollows out Dex method implementations and reconstructs them at runtime.\n\n## Usage\n\n### Quick uses\n\nGo to [Releases](https://github.com/luoyesiqiu/dpt-shell/releases/latest) download `executable.zip` and unzip it, run the follow command lines in terminal: \n\n```shell\njava -jar dpt.jar -f /path/to/android-package-file\n```\n\n### Manual builds\n\n```shell\ngit clone --recursive https://github.com/luoyesiqiu/dpt-shell\ncd dpt-shell\n./gradlew assemble\ncd executable\njava -jar dpt.jar -f /path/to/android-package-file\n```\n\n### Command line options\n\n```text\nusage: java -jar dpt.jar [option] -f <package_file>\n -c,--protect-config <arg>   Protect config file.\n                             \n    --debug                  Make package debuggable.\n    --disable-acf            Disable app component factory(just use for\n                             debug).\n    --disable-anti-debug     Disable runtime anti-debug.\n    --disable-crc-detect     Disable runtime libc .text CRC detection.\n                             \n    --disable-frida-detect   Disable runtime Frida detection.\n                             \n    --dump-code              Dump the code item of DEX and save it to\n                             .json files.\n -e,--exclude-abi <arg>      Exclude specific ABIs (comma separated, e.g.\n                             x86,x86_64).\n                             Supported ABIs:\n                             - arm       (armeabi-v7a)\n                             - arm64     (arm64-v8a)\n                             - x86\n                             - x86_64\n -f,--package-file <arg>     Need to protect android package(*.apk, *.aab)\n                             file.\n -K,--keep-classes           Keeping some classes in the package can\n                             improve the app's startup speed to a certain\n                             extent, but it is not supported by some\n                             application packages.\n    --noisy-log              Open noisy log.\n -o,--output <arg>           Output directory for protected package.\n -r,--rules-file <arg>       Rules file for class names that will not be\n                             protected.\n -S,--smaller                Trade some of the app's performance for a\n                             smaller app size.\n -v,--version                Show program's version number.\n -vs,--verify-sign           Enable runtime app signature verification.\n                             The certificate SHA-256 is computed\n                             automatically from the signing keystore.\n -x,--no-sign                Do not sign package.\n```\n\n## Notice\n\nThis project has not too many tests, be careful use in prod environment. Otherwise, all consequences are at your own risk.\n\n## Dependency or use follows project code\n\n- [dx](https://android.googlesource.com/platform/dalvik/+/refs/heads/master/dx/)\n- [Dobby](https://github.com/jmpews/Dobby)\n- ~~[libzip-android](https://github.com/julienr/libzip-android)~~\n- [ManifestEditor](https://github.com/WindySha/ManifestEditor)\n- ~~[Xpatch](https://github.com/WindySha/Xpatch)~~\n- [bhook](https://github.com/bytedance/bhook)\n- [zipalign-java](https://github.com/Iyxan23/zipalign-java)\n- [minizip-ng](https://github.com/zlib-ng/minizip-ng)\n- [JSON-java](https://github.com/stleary/JSON-java)\n- [zip4j](https://github.com/srikanth-lingala/zip4j)\n- [commons-cli](https://github.com/apache/commons-cli)\n- [dexmaker](https://android.googlesource.com/platform/external/dexmaker)\n- [Obfuscate](https://github.com/adamyaxley/Obfuscate)\n","default_branch":"main","files":153,"tree":[".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/custom.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/workflows/build.yml",".github/workflows/release.yml",".gitignore",".gitmodules","LICENSE","README.md","README.zh-CN.md","build.gradle","doc/HowItWorks.zh-CN.md","doc/codeitem.png","doc/nop.png","doc/processor.png","doc/shell.png","doc/unnop.png","dpt/.gitignore","dpt/build.gradle","dpt/libs/ManifestEditor-1.0.2.jar","dpt/libs/apksigner.jar","dpt/libs/commons-cli-1.5.0.jar","dpt/libs/dx.jar","dpt/libs/org.json.jar","dpt/libs/zipalign-java-1.0.0.jar","dpt/src/main/assets/dpt.jks","dpt/src/main/java/com/luoye/dpt/Dpt.java","dpt/src/main/java/com/luoye/dpt/builder/Aab.java","dpt/src/main/java/com/luoye/dpt/builder/AndroidPackage.java","dpt/src/main/java/com/luoye/dpt/builder/Apk.java","dpt/src/main/java/com/luoye/dpt/config/Const.java","dpt/src/main/java/com/luoye/dpt/config/ProtectRules.java","dpt/src/main/java/com/luoye/dpt/config/ShellConfig.java","dpt/src/main/java/com/luoye/dpt/dex/DexStringDecryptBuilder.java","dpt/src/main/java/com/luoye/dpt/dex/JunkCodeGenerator.java","dpt/src/main/java/com/luoye/dpt/dex/ReflectionClinitInjector.java","dpt/src/main/java/com/luoye/dpt/dex/StringXorCipher.java","dpt/src/main/java/com/luoye/dpt/elf/ReadElf.java","dpt/src/main/java/com/luoye/dpt/model/DexCode.java","dpt/src/main/java/com/luoye/dpt/model/Instruction.java","dpt/src/main/java/com/luoye/dpt/model/MultiDexCode.java","dpt/src/main/java/com/luoye/dpt/res/AabManifestEditor.java","dpt/src/main/java/com/luoye/dpt/res/AndroidResourcesEditor.java","dpt/src/main/java/com/luoye/dpt/res/ApkManifestEditor.java","dpt/src/main/java/com/luoye/dpt/task/ThreadPool.java","dpt/src/main/java/com/luoye/dpt/util/CryptoUtils.java","dpt/src/main/java/com/luoye/dpt/util/DexUtils.java","dpt/src/main/java/com/luoye/dpt/util/Endian.java","dpt/src/main/java/com/luoye/dpt/util/FileUtils.java","dpt/src/main/java/com/luoye/dpt/util/HexUtils.java","dpt/src/main/java/com/luoye/dpt/util/IoUtils.java","dpt/src/main/java/com/luoye/dpt/util/KeyUtils.java","dpt/src/main/java/com/luoye/dpt/util/LogUtils.java","dpt/src/main/java/com/luoye/dpt/util/MessageDigestUtils.java","dpt/src/main/java/com/luoye/dpt/util/MultiDexCodeUtils.java","dpt/src/main/java/com/luoye/dpt/util/StringUtils.java","dpt/src/main/java/com/luoye/dpt/util/TypeUtils.java","dpt/src/main/java/com/luoye/dpt/util/ZipUtils.java","dpt/src/test/java/com/luoye/dpt/ByteBufferTest.java","dpt/src/test/java/com/luoye/dpt/ConfigKeyDerivationTest.java","gradle.properties","gradle/wrapper/gradle-wrapper.jar","gradle/wrapper/gradle-wrapper.properties","gradlew","gradlew.bat","settings.gradle","shell/.gitignore","shell/build.gradle","shell/proguard-rules.pro","shell/src/androidTest/java/com/luoye/dpt/ExampleInstrumentedTest.java","shell/src/main/AndroidManifest.xml","shell/src/main/assets/OoooooOooo","shell/src/main/assets/app_acf","shell/src/main/assets/app_name","shell/src/main/assets/i11111i111.zip","shell/src/main/cpp/CMakeLists.txt","shell/src/main/cpp/common/banned.h","shell/src/main/cpp/common/dpt_log.h","shell/src/main/cpp/common/dpt_macro.h","shell/src/main/cpp/common/dpt_string.c","shell/src/main/cpp/common/dpt_string.h","shell/src/main/cpp/common/obfuscate.h","shell/src/main/cpp/dex/CodeItem.cpp","shell/src/main/cpp/dex/CodeItem.h","shell/src/main/cpp/dex/MultiDexCode.cpp","shell/src/main/cpp/dex/MultiDexCode.h","shell/src/main/cpp/dex/dex_file.cpp","shell/src/main/cpp/dex/dex_file.h","shell/src/main/cpp/dex/modifiers.h","shell/src/main/cpp/dpt.cpp","shell/src/main/cpp/dpt.h","shell/src/main/cpp/dpt_crypto.cpp","shell/src/main/cpp/dpt_crypto.h","shell/src/main/cpp/dpt_hook.cpp","shell/src/main/cpp/dpt_hook.h","shell/src/main/cpp/dpt_jni.cpp","shell/src/main/cpp/dpt_jni.h","shell/src/main/cpp/dpt_risk.cpp","shell/src/main/cpp/dpt_risk.h","shell/src/main/cpp/dpt_util.cpp","shell/src/main/cpp/dpt_util.h","shell/src/main/cpp/external/json/json.hpp","shell/src/main/cpp/rc4/rc4.c","shell/src/main/cpp/rc4/rc4.h","shell/src/main/cpp/reflect/android_app_ActivityThread.cpp","shell/src/main/cpp/reflect/android_app_ActivityThread.h","shell/src/main/cpp/reflect/android_app_Application.cpp","shell/src/main/cpp/reflect/android_app_Application.h","shell/src/main/cpp/reflect/android_app_ContextImpl.cpp","shell/src/main/cpp/reflect/android_app_ContextImpl.h","shell/src/main/cpp/reflect/android_app_LoadedApk.cpp","shell/src/main/cpp/reflect/android_app_LoadedApk.h","shell/src/main/cpp/reflect/android_content_pm_ApplicationInfo.cpp","shell/src/main/cpp/reflect/android_content_pm_ApplicationInfo.h","shell/src/main/cpp/reflect/dalvik_system_BaseDexClassLoader.cpp","shell/src/main/cpp/reflect/dalvik_system_BaseDexClassLoader.h","shell/src/main/cpp/reflect/dalvik_system_DexPathList.cpp","shell/src/main/cpp/reflect/dalvik_system_DexPathList.h","shell/src/main/cpp/reflect/dpt_reflect.h","shell/src/main/cpp/reflect/java_io_File.cpp","shell/src/main/cpp/reflect/java_io_File.h","shell/src/main/cpp/reflect/java_lang_Class.cpp","shell/src/main/cpp/reflect/java_lang_Class.h","shell/src/main/cpp/reflect/java_util_ArrayList.cpp","shell/src/main/cpp/reflect/java_util_ArrayList.h","shell/src/main/java/com/luoye/dpt/MainActivity.java","shell/src/main/java/com/luoye/dpt/MyAppComponentFactory.java","shell/src/main/java/com/luoye/dpt/ThisApplication.java","shell/src/main/java/com/luoyesiqiu/shell/Global.java","shell/src/main/java/com/luoyesiqiu/shell/JniBridge.java","shell/src/main/java/com/luoyesiqiu/shell/ProxyApplication.java","shell/src/main/java/com/luoyesiqiu/shell/ProxyComponentFactory.java","shell/src/main/java/com/luoyesiqiu/shell/util/EnvUtils.java","shell/src/main/java/com/luoyesiqiu/shell/util/FileUtils.java","shell/src/main/res/drawable-v24/ic_launcher_foreground.xml","shell/src/main/res/drawable/ic_launcher_background.xml","shell/src/main/res/layout/activity_main.xml","shell/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","shell/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","shell/src/main/res/mipmap-hdpi/ic_launcher.png","shell/src/main/res/mipmap-hdpi/ic_launcher_round.png","shell/src/main/res/mipmap-mdpi/ic_launcher.png","shell/src/main/res/mipmap-mdpi/ic_launcher_round.png","shell/src/main/res/mipmap-xhdpi/ic_launcher.png","shell/src/main/res/mipmap-xhdpi/ic_launcher_round.png","shell/src/main/res/mipmap-xxhdpi/ic_launcher.png","shell/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","shell/src/main/res/mipmap-xxxhdpi/ic_launcher.png","shell/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","shell/src/main/res/values/colors.xml","shell/src/main/res/values/strings.xml","shell/src/main/res/values/themes.xml","shell/src/test/java/com/luoye/dpt/ExampleUnitTest.java"],"storefront":"/r/luoyesiqiu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/luoyesiqiu/dpt-shell/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}