吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1726|回复: 71
上一主题 下一主题
收起左侧

[Android 脱壳] 某萌新APP破解永久激活

[复制链接]
跳转到指定楼层
楼主
stwhome58 发表于 2024-11-13 15:21 回帖奖励
本帖最后由 stwhome58 于 2024-11-13 15:44 编辑

前言

大家好,我是石头娃,一名Android逆向作者,今天给大家带来一篇Android软件某萌新逆向教程。

准备工具

教程开始

  1. 抓激活码接口,发现http接口并直接返回字符串。尝试修改为【激活成功!】,居然直接通过验证。

  2. 找到hook的对应接口,使用lspatch修改返回数据。

  3. 通过查找TextView的文本找到校验激活码的接口代码。

    private void textViewLog() {
    XposedHelpers.findAndHookMethod("android.widget.TextView", getApplicationClassLoader(), "setText", CharSequence.class,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    if (param.args != null && param.args.length > 0 && param.args[0] != null) {
                        String text = param.args[0].toString();
                        if (text.contains("激活码错误或冻结")) {
                            XposedBridge.log(text);
                            printStackTrace();
                        }
                    }
                }
            });
    }
    private void printStackTrace() {
    Throwable ex = new Throwable();
    StackTraceElement[] stackElements = ex.getStackTrace();
    for (int i = 0; i < stackElements.length; i++) {
        StackTraceElement element = stackElements[i];
        XposedBridge.log("at " + element.getClassName() + "." + element.getMethodName() + "(" + element.getFileName() + ":" + element.getLineNumber() + ")");
    }
    }
  4. 根据堆栈日志找到对应的代码

  5. 使用jadx反编译

  6. 使用lspatch修改接口返回值

    private void successHook() {
    XposedHelpers.findAndHookMethod("i.Api.100000007.100000006", getApplicationClassLoader(),
            "Result", String.class,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    if (param.args != null && param.args.length == 1 && param.args[0] != null) {
                        param.args[0] = "激活成功!";
                    }
                }
            });
    }
  7. 成功进入,效果图

  8. 某萌新还需要单独安装下配置器(鸡肋,不清楚为嘛),分析后好像就新建了一个文件目录(支持.txt)。hook掉!

    private void newTargetFile() {
    try {
        // 在 SD 卡目录下创建一个名为 "支持.txt" 的目录
        File sdcard = Environment.getExternalStorageDirectory();
        File supportDir = new File(sdcard, targetFileName);
    
        if (!supportDir.exists()) {
            boolean dirCreated = supportDir.mkdirs();
            if (dirCreated) {
                XposedBridge.log("targetFile created");
            } else {
                XposedBridge.log("targetFile Failed to create directory");
            }
        } else {
            XposedBridge.log("targetFile Directory already exists");
        }
    } catch (Exception e) {
        XposedBridge.log(e);
    }
    }
  9. 测试功能需要SD卡权限,需要开启一下!!!

免费评分

参与人数 9吾爱币 +8 热心值 +5 收起 理由
llm0197 + 1 + 1 我很赞同!
leger1210 + 1 用心讨论,共获提升!
N99 + 1 热心回复!
xuezhang18 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
pHz + 1 我很赞同!
Carinx + 1 + 1 用心讨论,共获提升!
zgy248654 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
haiyangnanzi + 1 + 1 谢谢@Thanks!
judi1314 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
amwquhwqas128 发表于 2024-11-13 23:36
先好好看看,再学习
沙发
zhurilinyu 发表于 2024-11-13 21:23
3#
hoverss 发表于 2024-11-13 21:46
4#
mostima112 发表于 2024-11-13 22:07
准备入坑,学习一下
5#
lingfeill 发表于 2024-11-13 22:10
看一下怎么个事儿
6#
怡红院ぺ秀才 发表于 2024-11-13 22:13
厉害学习学习
7#
sanrokalv 发表于 2024-11-13 22:19
微信分身版吗
8#
wuzihao123 发表于 2024-11-13 22:44
学习一下
9#
lc2006 发表于 2024-11-13 22:47
好东西啊啊啊按
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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