dexShellMem.zip

上传者: q610098308 | 上传时间: 2024-09-08 12:44:34 | 文件大小: 2.85MB | 文件类型: ZIP
在Android应用开发中,安全和保护代码免受恶意攻击是一个重要的议题。为了增强Apk的安全性,开发者常常采用加固技术,其中就包括对Dex文件的处理。标题"Android Apk 加固之Dex文件 完善篇 InMemoryDexClassLoader 之内存加载dex"指向了Android应用加固的一个关键策略——利用InMemoryDexClassLoader实现Dex的内存加载。这种方法尤其适用于Android 8.0(API级别26)及以上版本。 Dex文件是Android应用程序的字节码形式,包含了所有的类和方法。通常,Dex文件会被打包到Apk中并在安装时被编译为机器码。然而,这样做可能会暴露应用的源代码,使得逆向工程变得容易。因此,将Dex文件在运行时动态加载到内存中可以提高应用的安全性。 InMemoryDexClassLoader是一种自定义的ClassLoader,它允许我们不在文件系统中保存Dex文件,而是将其加载到内存中执行。这样,即使有人获取到Apk,他们也无法直接查看或修改Dex的内容,因为Dex文件并不在磁盘上存在。实现InMemoryDexClassLoader需要覆盖`findResource`和`loadClass`等方法,确保Dex文件在内存中正确解析和加载。 标签"dex 加固 InMemoryDexClass"进一步强调了这个过程的关键点。Dex加固是通过混淆、加密、多态、分包等手段来保护Dex文件,而InMemoryDexClass则是其中的一种高级技术,它使得Dex的加载过程更加隐蔽,增加了逆向工程的难度。 在压缩包文件列表中,我们看到了与构建和管理项目相关的文件,如gradlew.bat、build.gradle、settings.gradle以及gradle.properties。这些文件在Android Studio项目中用于自动化构建流程,包括编译、打包和部署。shrinkedAndroid.jar可能是经过ProGuard或R8工具优化和压缩后的Android库,目的是减小Apk的大小并增强安全性。local.properties通常包含特定于机器的配置,如SDK路径。 这个压缩包可能包含了一个示例项目,展示了如何在Android 8.0以上版本中使用InMemoryDexClassLoader进行Dex文件的内存加载加固。通过学习和理解这个过程,开发者可以提升他们的应用安全,防止恶意篡改和分析。同时,了解和掌握Gradle构建系统以及相关的配置文件对于高效地管理和构建Android项目至关重要。

文件下载

资源详情

[{"title":"( 71 个子文件 2.85MB ) dexShellMem.zip","children":[{"title":"dexShell.iml <span style='color:#111;'> 885B </span>","children":null,"spread":false},{"title":"dexShellMem.iml <span style='color:#111;'> 888B </span>","children":null,"spread":false},{"title":"gradlew <span style='color:#111;'> 5.17KB </span>","children":null,"spread":false},{"title":"settings.gradle <span style='color:#111;'> 47B </span>","children":null,"spread":false},{"title":"proxy_core","children":[{"title":"src","children":[{"title":"androidTest","children":[{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"proxy_core","children":[{"title":"ExampleInstrumentedTest.java <span style='color:#111;'> 757B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"test","children":[{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"proxy_core","children":[{"title":"ExampleUnitTest.java <span style='color:#111;'> 398B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"cpp","children":[{"title":"aes.h <span style='color:#111;'> 2.02KB </span>","children":null,"spread":false},{"title":"rc4.h <span style='color:#111;'> 243B </span>","children":null,"spread":false},{"title":"native-lib.cpp <span style='color:#111;'> 5.21KB </span>","children":null,"spread":false},{"title":"rc4.cpp <span style='color:#111;'> 844B </span>","children":null,"spread":false},{"title":"aes.cpp <span style='color:#111;'> 11.80KB </span>","children":null,"spread":false}],"spread":true},{"title":"AndroidManifest.xml <span style='color:#111;'> 110B </span>","children":null,"spread":false},{"title":"res","children":[{"title":"drawable","children":null,"spread":false},{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'> 76B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"proxy_core","children":[{"title":"AES.java <span style='color:#111;'> 1.99KB </span>","children":null,"spread":false},{"title":"Zip.java <span style='color:#111;'> 4.52KB </span>","children":null,"spread":false},{"title":"RefInvoke.java <span style='color:#111;'> 5.63KB </span>","children":null,"spread":false},{"title":"Utils.java <span style='color:#111;'> 2.57KB </span>","children":null,"spread":false},{"title":"ProxyApplication.java <span style='color:#111;'> 15.38KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"CMakeLists.txt <span style='color:#111;'> 1.64KB </span>","children":null,"spread":false},{"title":"proxy_core.iml <span style='color:#111;'> 14.69KB </span>","children":null,"spread":false},{"title":"libs","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 8B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 1.20KB </span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'> 772B </span>","children":null,"spread":false}],"spread":true},{"title":"proxy_tools","children":[{"title":"proxy_tools.iml <span style='color:#111;'> 1.52KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"proxy_tools","children":[{"title":"AES.java <span style='color:#111;'> 1.99KB </span>","children":null,"spread":false},{"title":"Zip.java <span style='color:#111;'> 4.53KB </span>","children":null,"spread":false},{"title":"RC4.java <span style='color:#111;'> 5.18KB </span>","children":null,"spread":false},{"title":"Utils.java <span style='color:#111;'> 2.43KB </span>","children":null,"spread":false},{"title":"Main.java <span style='color:#111;'> 3.90KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"proxy1.jks <span style='color:#111;'> 2.14KB </span>","children":null,"spread":false},{"title":"libs","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 8B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 169B </span>","children":null,"spread":false}],"spread":true},{"title":"local.properties <span style='color:#111;'> 373B </span>","children":null,"spread":false},{"title":"shrinkedAndroid.jar <span style='color:#111;'> 28.92KB </span>","children":null,"spread":false},{"title":"gradlew.bat <span style='color:#111;'> 2.21KB </span>","children":null,"spread":false},{"title":"gradle.properties <span style='color:#111;'> 741B </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 187B </span>","children":null,"spread":false},{"title":"app","children":[{"title":"src","children":[{"title":"androidTest","children":[{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"dexshell","children":[{"title":"ExampleInstrumentedTest.java <span style='color:#111;'> 748B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"test","children":[{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"dexshell","children":[{"title":"ExampleUnitTest.java <span style='color:#111;'> 396B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"main","children":[{"title":"cpp","children":[{"title":"native-lib.cpp <span style='color:#111;'> 874B </span>","children":null,"spread":false}],"spread":false},{"title":"AndroidManifest.xml <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false},{"title":"res","children":[{"title":"mipmap-hdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.89KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 4.79KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 8.91KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 14.78KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 4.38KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 6.73KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-anydpi-v26","children":[{"title":"ic_launcher.xml <span style='color:#111;'> 276B </span>","children":null,"spread":false},{"title":"ic_launcher_round.xml <span style='color:#111;'> 276B </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-mdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 2.72KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable","children":[{"title":"ic_launcher_background.xml <span style='color:#111;'> 5.64KB </span>","children":null,"spread":false}],"spread":false},{"title":"layout","children":[{"title":"activity_main.xml <span style='color:#111;'> 824B </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'> 1.87KB </span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"colors.xml <span style='color:#111;'> 214B </span>","children":null,"spread":false},{"title":"strings.xml <span style='color:#111;'> 74B </span>","children":null,"spread":false},{"title":"styles.xml <span style='color:#111;'> 205B </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 6.24KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 10.17KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"java","children":[{"title":"cn","children":[{"title":"com","children":[{"title":"jni","children":[{"title":"dexshell","children":[{"title":"MyApplication.java <span style='color:#111;'> 120B </span>","children":null,"spread":false},{"title":"utils","children":[{"title":"AppDeviceUtils.java <span style='color:#111;'> 8.98KB </span>","children":null,"spread":false},{"title":"MacUtils.java <span style='color:#111;'> 5.95KB </span>","children":null,"spread":false}],"spread":false},{"title":"MainActivity.java <span style='color:#111;'> 896B </span>","children":null,"spread":false},{"title":"TestJNI.java <span style='color:#111;'> 140B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"CMakeLists.txt <span style='color:#111;'> 1.61KB </span>","children":null,"spread":false},{"title":"build","children":[{"title":"outputs","children":[{"title":"apk","children":[{"title":"debug","children":[{"title":"app-signed-aligned.apk <span style='color:#111;'> 2.78MB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"libs","children":null,"spread":false},{"title":"app.iml <span style='color:#111;'> 11.97KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 8B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'> 772B </span>","children":null,"spread":false}],"spread":true},{"title":"build.gradle <span style='color:#111;'> 573B </span>","children":null,"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明