上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

dex解密

[复制链接]
  • TA的每日心情
    难过
    2023-9-12 10:06
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    2

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2023-9-12 10:26:53 | 显示全部楼层 | 阅读模式
    悬赏30油猫币未解决
    各位大神,请问这种类型的dex文件要怎么解密啊,用np管理器和mt管理器都显示不支持此种类型的解密,这个是其中一段代码:
    
    .class public Lezy/assist/compat/SettingsCompat;
    .super Ljava/lang/Object;
    .source "SettingsCompat.java"
    
    # static fields
    .field private static final HUAWEI_PACKAGE:Ljava/lang/String; = "com.huawei.systemmanager"
    
    .field private static final OP_SYSTEM_ALERT_WINDOW:I = 0x18
    
    .field private static final OP_WRITE_SETTINGS:I = 0x17
    
    .field private static final TAG:Ljava/lang/String; = "ezy-settings-compat"
    
    # direct methods
    .method public constructor <init>()V
        .registers 1
    
        .line 33
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    
    .method public static canDrawOverlays(Landroid/content/Context;)Z
        .registers 3
    
        .line 40
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v1, 0x17
    
        if-lt v0, v1, :cond_b
    
        .line 41
        invoke-static {p0}, Landroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z
    
        move-result p0
    
        return p0
    
        .line 42
        :cond_b
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v1, 0x12
    
        if-lt v0, v1, :cond_18
    
        const/16 v0, 0x18
    
        .line 43
        invoke-static {p0, v0}, Lezy/assist/compat/SettingsCompat;->checkOp(Landroid/content/Context;I)Z
    
        move-result p0
    
        return p0
    
        :cond_18
        const/4 p0, 0x1
    
        return p0
    .end method
    
    .method public static canWriteSettings(Landroid/content/Context;)Z
        .registers 4
    
        .line 50
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v1, 0x17
    
        if-lt v0, v1, :cond_b
    
        .line 51
        invoke-static {p0}, Landroid/provider/Settings$System;->canWrite(Landroid/content/Context;)Z
    
        move-result p0
    
        return p0
    
        .line 52
        :cond_b
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v2, 0x12
    
        if-lt v0, v2, :cond_16
    
        .line 53
        invoke-static {p0, v1}, Lezy/assist/compat/SettingsCompat;->checkOp(Landroid/content/Context;I)Z
    
        move-result p0
    
        return p0
    
        :cond_16
        const/4 p0, 0x1
    
        return p0
    .end method
    
    .method private static checkOp(Landroid/content/Context;I)Z
        .registers 11
    
        const-string v0, "appops"
    
        .line 115
        invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
    
        move-result-object v0
    
        check-cast v0, Landroid/app/AppOpsManager;
    
        const/4 v1, 0x0
    
        .line 117
        :try_start_9
        const-class v2, Landroid/app/AppOpsManager;
    
        const-string v3, "checkOp"
    
        const/4 v4, 0x3
    
        new-array v5, v4, [Ljava/lang/Class;
    
        sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    
        aput-object v6, v5, v1
    
        sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
    
        const/4 v7, 0x1
    
        aput-object v6, v5, v7
    
        const-class v6, Ljava/lang/String;
    
        const/4 v8, 0x2
    
        aput-object v6, v5, v8
    
        invoke-virtual {v2, v3, v5}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    
        move-result-object v2
    
        .line 118
        new-array v3, v4, [Ljava/lang/Object;
    
        invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    
        move-result-object p1
    
        aput-object p1, v3, v1
    
        invoke-static {}, Landroid/os/Binder;->getCallingUid()I
    
        move-result p1
    
        invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
    
        move-result-object p1
    
        aput-object p1, v3, v7
    
        invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
    
        move-result-object p0
    
        aput-object p0, v3, v8
    
        invoke-virtual {v2, v0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    
        move-result-object p0
    
        check-cast p0, Ljava/lang/Integer;
    
        invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
    
        move-result p0
        :try_end_44
        .catch Ljava/lang/Exception; {:try_start_9 .. :try_end_44} :catch_48
    
        if-nez p0, :cond_47
    
        const/4 v1, 0x1
    
        :cond_47
        return v1
    
        :catch_48
        move-exception p0
    
        const-string p1, "ezy-settings-compat"
    
        .line 120
        invoke-static {p0}, Landroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
    
        move-result-object p0
    
        invoke-static {p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
    
        return v1
    .end method
    
    .method public static manageDrawOverlays(Landroid/content/Context;)V
        .registers 4
    
        .line 68
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v1, 0x12
    
        if-lt v0, v1, :cond_d
    
        .line 69
        invoke-static {p0}, Lezy/assist/compat/SettingsCompat;->manageDrawOverlaysForRom(Landroid/content/Context;)Z
    
        move-result v0
    
        if-eqz v0, :cond_d
    
        return-void
    
        .line 73
        :cond_d
        sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/16 v1, 0x17
    
        if-lt v0, v1, :cond_3f
    
        .line 74
        new-instance v0, Landroid/content/Intent;
    
        const-string v1, "android.settings.action.MANAGE_OVERLAY_PERMISSION"
    
        invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    
        .line 75
        new-instance v1, Ljava/lang/StringBuilder;
    
        invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    
        const-string v2, "package:"
    
        invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    
        move-result-object v1
    
        invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
    
        move-result-object v1
    
        invoke-virtual {v0, v1}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;
    
        const/high16 v1, 0x10000000
    
        .line 76
        invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
    
        move-result-object v0
    
        invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
    
        :cond_3f
        return-void
    .end method
    
    .method private static manageDrawOverlaysForEmui(Landroid/content/Context;)Z
        .registers 5
    
        .line 182
        new-instance v0, Landroid/content/Intent;
    
        invoke-direct {v0}, Landroid/content/Intent;-><init>()V
    
        .line 183
        sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
    
        const/4 v2, 0x1
    
        const/16 v3, 0x15
    
        if-lt v1, v3, :cond_1a
    
        const-string v1, "com.huawei.systemmanager"
    
        const-string v3, "com.huawei.systemmanager.addviewmonitor.AddViewMonitorActivity"
    
        .line 184
        invoke-virtual {v0, v1, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        .line 185
        invoke-static {p0, v0}, Lezy/assist/compat/SettingsCompat;->startSafely(Landroid/content/Context;Landroid/content/Intent;)Z
    
        move-result v1
    
        if-eqz v1, :cond_1a
    
        return v2
    
        :cond_1a
        const-string v1, "com.huawei.systemmanager"
    
        const-string v3, "com.huawei.notificationmanager.ui.NotificationManagmentActivity"
    
        .line 190
        invoke-virtual {v0, v1, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "showTabsNumber"
    
        .line 191
        invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
    
        .line 192
        invoke-static {p0, v0}, Lezy/assist/compat/SettingsCompat;->startSafely(Landroid/content/Context;Landroid/content/Intent;)Z
    
        move-result v1
    
        if-eqz v1, :cond_2d
    
        return v2
    
        :cond_2d
        const-string v1, "com.huawei.systemmanager"
    
        const-string v3, "com.huawei.permissionmanager.ui.MainActivity"
    
        .line 195
        invoke-virtual {v0, v1, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        .line 196
        invoke-static {p0, v0}, Lezy/assist/compat/SettingsCompat;->startSafely(Landroid/content/Context;Landroid/content/Intent;)Z
    
        move-result p0
    
        if-eqz p0, :cond_3b
    
        return v2
    
        :cond_3b
        const/4 p0, 0x0
    
        return p0
    .end method
    
    .method private static manageDrawOverlaysForFlyme(Landroid/content/Context;)Z
        .registers 4
    
        .line 235
        new-instance v0, Landroid/content/Intent;
    
        const-string v1, "com.meizu.safe.security.SHOW_APPSEC"
    
        invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    
        const-string v1, "com.meizu.safe"
    
        const-string v2, "com.meizu.safe.security.AppSecActivity"
    
        .line 236
        invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const-string v1, "packageName"

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6764

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6764

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-9-12 10:52:27 | 显示全部楼层
    贴il一般是没用的
    dex加密是指对原dex做了一层上层封装,或者直接修改控制流了做混淆
    所以贴出来的很可能是封装的壳代码或者混淆代码
    这个要具体情况具体分析
    一般来说有些是通用的,可以用通用工具做分析
    如果上vmp之类的话只能靠人读和写代码分析
    如果是运行时解密可以考虑尝试dump下来
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6764

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6764

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-9-12 10:56:09 | 显示全部楼层
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表