首页
社区
课程
招聘
[原创]免root脱壳源码
发表于: 2020-12-27 14:56 4959

[原创]免root脱壳源码

2020-12-27 14:56
4959

缺点需要:修改apk,只要提供dex所在的名类就能脱出dex(热加载dex一样可以脱)。不一定需要Activity类名
a

 

ZDump.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import android.content.*;
import android.content.pm.*;
import android.widget.*;
import java.io.*;
 
public class ZDump
{
 
    public static void Dump(Context var,String pclass){
        Class<?> clz = null;
 
        try
        {
            clz = var.getClass().getClassLoader().loadClass(pclass);
 
            if(clz != null){
                if(dumphackDex(clz,var)){
                    Toast(var,"dump成功");
                }else{
                    Toast(var,"dump失败");
                }
            }
 
        }
        catch (ClassNotFoundException e)
        {
            Toast(var,"dump失败:"+e.toString());
        }
 
    }
 
 
    private static Boolean dumphackDex(Class<?> cls, Context cont){//脱壳 活动(类:不一定非要活动) 上下文
        try
        {
            byte[] bArr = (byte[]) Class.forName("com.android.dex.Dex").getDeclaredMethod("getBytes", new Class[0]).invoke(Class.forName("java.lang.Class").getMethod("getDex", new Class[0]).invoke(cls, new Object[0]), new Object[0]);
            File file = new File(dataDir(cont),  "Dexdump" + Integer.toHexString(bArr.length) + ".dex");
            if (!file.exists())
            {
                file.createNewFile();
            }
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            fileOutputStream.write(bArr);
            fileOutputStream.flush();
            fileOutputStream.close();
 
            return true;
        }
        catch (Exception e)
        {
            return false;
        }
 
    }
 
    private static String dataDir(Context cont){//获取应用 data数据路径
        try
        {
            return cont.getPackageManager().getApplicationInfo(cont.getPackageName(), 0).dataDir;
        }
        catch (PackageManager.NameNotFoundException e)
        {
            return null;
        }
 
    }
 
    private static void Toast(Context cont,String str) { //弹窗提示方法
        Toast.makeText(cont, str, 1000).show();
    }
 
 
}

[课程]Android-CTF解题方法汇总!

最后于 2020-12-27 14:57 被Gnoliew编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (17)
雪    币: 2644
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
当真好活
2020-12-27 15:00
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这是dalvik的?art下找了半天也没找到java.lang.Class的getDex方法
2020-12-27 17:47
0
雪    币: 2063
活跃值: (3858)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mb_foyotena 这是dalvik的?art下找了半天也没找到java.lang.Class的getDex方法
Android 7.1或者更早版本才有,支持art,不支持Android 8+。
2020-12-27 18:39
0
雪    币: 2063
活跃值: (3858)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
https://github.com/ganyao114/SandVXposed/releases
推荐一个免root脱壳软件,设置图标可以激活脱壳功能,支持Android 4.4 - 9
2020-12-27 18:41
0
雪    币: 3951
活跃值: (3528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
D-t
6
需要xp么  还是直接套用你这两个类去编写app
2020-12-27 19:24
0
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
D-t 需要xp么 还是直接套用你这两个类去编写app
不需要xp 直接使用,生成.smali代码添加进去 调用,有些软件会有签名验证、提前先过验证(也可以在执行签名验证代码之前添加、即使软件打不开也没关系、也能脱出来)、如果是写入到手机存卡先提前给应用权限
2020-12-27 20:07
0
雪    币: 641
活跃值: (3966)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
支持一下
2020-12-27 23:36
0
雪    币: 1
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
壳说:修改apk?想法有点多...
2020-12-28 10:39
1
雪    币: 1867
活跃值: (3763)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
支持一下
2020-12-28 11:26
0
雪    币: 2218
活跃值: (1033)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
多老的方案了, 现在还能拿出来弄?
2020-12-28 11:51
0
雪    币: 97
活跃值: (828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
路过看看
2020-12-28 12:05
0
雪    币: 312
活跃值: (713)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这样不能解决抽取指令吧
2020-12-28 14:01
0
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
tianhaoday 这样不能解决抽取指令吧
不能
2020-12-28 16:19
0
雪    币: 3951
活跃值: (3528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
D-t
15
mb_ycepuenz 不需要xp 直接使用,生成.smali代码添加进去 调用,有些软件会有签名验证、提前先过验证(也可以在执行签名验证代码之前添加、即使软件打不开也没关系、也能脱出来)、如果是写入到手机存卡先提前给应用权 ...
那这个就是一代壳的解决方法啊  直接修改软件代码 添加进去就可以了
2020-12-28 20:26
0
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
D-t 那这个就是一代壳的解决方法啊 直接修改软件代码 添加进去就可以了
什么一代壳,xp hook的也是获取Activity 使用这些代码脱壳,不想修改应用可以利用分身 获取安装在分身应用里的Activity 进行脱壳,除nop 函数抽取 都能脱出
2020-12-28 21:44
0
雪    币: 3951
活跃值: (3528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
D-t
17
mb_ycepuenz 什么一代壳,xp hook的也是获取Activity 使用这些代码脱壳,不想修改应用可以利用分身 获取安装在分身应用里的Activity 进行脱壳,除nop 函数抽取 都能脱出
他这种 也就是脱这种加固的啊 对抽取类没用  抽取类 还是靠主动调用  你说的xphook  跟fdex dumpdex这些一样啊 也是获取android.dex.dex里面的api 然后hook写出dex 
2020-12-28 22:36
0
雪    币: 5330
活跃值: (5424)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
18
感谢楼主分享!
2020-12-29 09:20
0
游客
登录 | 注册 方可回帖
返回
//