GithubHelp home page GithubHelp logo

apk_auto_enforce's Introduction

Usage: python jiagu.py xxx.apk

效果:实现dex文件整体加密、隐藏

(1)想体验具体效果可以访问我开发的工具:http://01hackcode.com

(2)加固原理,可以访问我写得一系列博客文章:

安装环境:

(1)NDK:14.1

(2)gradle-3.3

(3)build-tools:android-25

(4)jdk1.8

sign文件夹:用于重打包签名

smali文件夹:当目标app没有自定义Application时,给该app添加一个自定义Application

TuokeApk文件夹:用于加密加固了的classes.dex文件

JiaguApk.jar:用于合并TuokeApk/bin/classes.dex和加密了的目标目标TargetApk.zip(只包含:classes.dex)

TODO: ###0.elf头破坏 1.自定义DexClassLoad实现无dex缓存

2.反编译模块:针对apktool、dex2jar、baksmali、idapro、01editor、shakaapktool、Androguard 参考: http://www.freebuf.com/sectool/76884.html https://github.com/wanchouchou/ManifestAmbiguity

3.修改dex文件,DexEducation-PracticingSafeDex.pdf

4.添加反调试、反模拟器模块

5.签名校验、反调试:http://www.jianshu.com/p/f17c60298e75

6.内存保护

7.字节码自修改

8.so、dex方法提取

9.内存加载so

10.独立加解密模块,总结整理几个常用的高效加密算法:rc4、凯撒加密+Base64、TEA加密、AES、RSA、白盒加密(常见算法c库) 参考: http://blog.csdn.net/zhiqiangzhan/article/details/4658106 http://blog.csdn.net/doorxp/article/details/8763018 http://www.aichengxu.com/suanfa/6186233.htm https://www.zhihu.com/question/35136485

11.添加密钥保存模块

http://www.hackdig.com/04/hack-20771.htm

12.合并函数加密功能

13.加密常量字符串

14.添加方法、字段代码提取

15.合并函数隐藏功能

16.自定义linker

17.dex代码混淆,修改https://github.com/strazzere/APKfuscator为python版本

18.so文件混淆,https://github.com/Fuzion24/AndroidObfuscation-NDK

apk_auto_enforce's People

Contributors

guanchao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apk_auto_enforce's Issues

java.lang.NoClassDefFoundError

加固后提示一个内部静态类无法加载,原始apk里面是有两个dex组成,这个错误是在自定义Application里面执行onCreate时候报错的,测试发现一个dex没有问题,但是两个时候,发现这个问题,但是项目中找不到那个类在第一个dex

加固一些apk出现error

1.加固出现error
Traceback (most recent call last):
File "jiagu.py", line 271, in
main()
File "jiagu.py", line 223, in main
shutil.copyfile('Target/dist/Target.apk', 'Target.modified.apk')
File "C:\Python27\lib\shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 'Target/dist/Target.apk'

2.有些应用可以成功加固,但是只能运行在安卓4.4上,高安卓版本闪退

加固后打开即崩溃,提示checksum不匹配

打开即奔溃,错误信息如下:
2021-01-20 14:49:19.265 2600-2600/cn.test.component.originalproject E/AndroidRuntime: FATAL EXCEPTION: main
Process: cn.test.component.originalproject, PID: 2600
java.lang.RuntimeException: Unable to instantiate application cn.test.component.hookjartest.HookJarApplication: java.lang.ClassNotFoundException: Didn't find class "cn.test.component.hookjartest.HookJarApplication" on path: DexPathList[[zip file "/data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/base.apk"],nativeLibraryDirectories=[/data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/lib/x86, /system/lib, /system/product/lib, /system/vendor/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:1226)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)
at android.app.ActivityThread.access$1300(ActivityThread.java:219)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.ClassNotFoundException: Didn't find class "cn.test.component.hookjartest.HookJarApplication" on path: DexPathList[[zip file "/data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/base.apk"],nativeLibraryDirectories=[/data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/lib/x86, /system/lib, /system/product/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
at android.app.Instrumentation.newApplication(Instrumentation.java:1155)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1218)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431) 
at android.app.ActivityThread.access$1300(ActivityThread.java:219) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7356) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
Suppressed: java.io.IOException: Failed to open dex files from /data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/base.apk because: Failure to verify dex file '/data/app/cn.test.component.originalproject-NjuiEcEdctlZiJ0-ICUhKA==/base.apk': Bad checksum (ed074c76, expected 29894b7c)
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:365)
at dalvik.system.DexFile.(DexFile.java:107)
at dalvik.system.DexFile.(DexFile.java:80)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:444)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:403)
at dalvik.system.DexPathList.(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:126)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:101)
at dalvik.system.PathClassLoader.(PathClassLoader.java:74)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:87)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:116)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:114)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:60)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:851)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:950)
at android.app.LoadedApk.getResources(LoadedApk.java:1188)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2462)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2454)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6343)

加粗部分提示checksum不对,但是我通过模拟器,找到baseapk后,解压dex文件,发现是吻合的。
懵逼了。
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.