Code Monkey home page Code Monkey logo

aupk's Introduction

AUPK

Android Art虚拟机下的主动调用脱壳方案。

该版本在android 7.1.1_r1上进行实现,并为Nexuse 5X做了适配(驱动代号NMF26F)。

若需要适配其他版本,请自行移植。

关于AOSP编译,可以参考我的笔记aosp build.md

关于AUPK的原理和流程,请移步看雪:

AUPK:基于Art虚拟机的脱壳机

下载:

百度网盘

链接:https://pan.baidu.com/s/1Rj2Un2ox9u08K4p1rPx0Kw 提取码:aupk

or

realeases:https://github.com/FeJQ/AUPK/releases

使用方法:
  1. 下载镜像,并运行flash.bat刷机

  2. 安装,并运行待脱壳的app

  3. 获取app的包名,并写入配置文件:

    $ echo "your.app.package">data/local/tmp/aupk.config"
  4. 等待脱壳结束,直到logcat 打印出Aupk run over

  5. 使用DexPatcher对Dex文件进行修复

示例:

首先安装目标app

$ adb install your_app

运行app,可在logcat看到如下信息:

Snipaste_2021-03-28_19-57-20

此时data/data/your_app/aupk下多出许多文件

$ cd data/data/your_app/aupk
$ ls -l

Snipaste_2021-03-28_19-56-55

其中,.dex为整体dump下来的Dex文件,class.json记录了Dex文件里所有的类名,前缀数字代表Dex文件的大小。

可以用findstr命令来查找某一个类的类名在哪个文件中,如:

$ findstr /m "SplashActivity" *class.json

Snipaste_2021-03-28_22-43-16

可以看到,"SplashActivity"类在8273364大小的Dex文件中,那么,我们可以通过以下命令,来写入配置文件

以开始对8273364_ExecuteSwitchImpl_class.json里所有的类的所有方法进行主动调用

$ echo "com.klcxkj.zqxy 8273364_ExecuteSwitchImpl_class.json">data/local/tmp/aupk.config

或者对所有的Dex里的类的所有方法进行主动调用:

$ echo "com.klcxkj.zqxy">data/local/tmp/aupk.config

主动调用过程中打印的log:

Snipaste_2021-03-28_22-54-27

有的壳hook了Log函数,导致Log.i()打印不出来消息,但jni层的LOG和Log.e()依然有效,当打印出Aupk run over时,代表整个主动调用过程结束,可以在data/data/you_app/aupk下看到一些以method.json结尾的文件,这些文件包含了Dex文件的函数CodeItem信息,用于后面对Dex文件的修复。

并非等整个主动调用过程结束才会生成method.json文件,而是每完成对一个class.json文件的解析和调用,就会立即生成对应的method.json,所以,利用主动调用的这段时间,你可以先修复已经完成了主动调用的Dex文件,或者去泡杯咖啡。

将脱下来的文件拷贝到电脑:

$ adb pull data/data/your_app/aupk

开始修复Dex,回填CodeItem:

$ dp fix -d 8273364_ExecuteSwitchImpl.dex -j 8273364_ExecuteSwitchImpl_method.json --nolog

等待片刻,即可完成修复:

Snipaste_2021-03-28_23-08-22

带patched后缀的就是修复后的Dex文件

Snipaste_2021-03-28_23-09-38

反编译看看效果:

Snipaste_2021-03-28_23-13-32

aupk's People

Contributors

fejq 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

aupk's Issues

ijiam 商业版

2021-07-10 18:35:35.940 4068-4634/? I/art: at boolean android.app.Aupk.aupkThreadClasses(java.lang.String, java.lang.String) (Aupk.java:384)
2021-07-10 18:35:35.940 4068-4634/? I/art: at boolean android.app.Aupk.-wrap0(android.app.Aupk, java.lang.String, java.lang.String) (Aupk.java:-1)
2021-07-10 18:35:35.940 4068-4634/? I/art: at void android.app.Aupk$1.run() (Aupk.java:234)
2021-07-10 18:35:35.941 4068-4634/? I/art: at boolean android.app.Aupk.aupkThreadClasses(java.lang.String, java.lang.String) (Aupk.java:384)
2021-07-10 18:35:35.941 4068-4634/? I/art: at boolean android.app.Aupk.-wrap0(android.app.Aupk, java.lang.String, java.lang.String) (Aupk.java:-1)
2021-07-10 18:35:35.941 4068-4634/? I/art: at void android.app.Aupk$1.run() (Aupk.java:234)

某数字免费的壳都无法拖

试了好几个都是修复后无法打开,看了一下文件格式,文件头格式都不对,没有dex魔术特征等,试了fupk3可以拖出来的包,这个工具脱出来修复后也是无法打开的,根本就不是dex格式。这个作者测试过吗?(ps: 完全刷了你的镜像测试的,其他的壳未测试。)

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.