stwhome58 发表于 2024-11-13 15:21

某萌新APP破解永久激活

本帖最后由 stwhome58 于 2024-11-13 15:44 编辑


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


## 准备工具
* Android Studio
* (https://github.com/skylot/jadx)
* (https://github.com/LSPosed/LSPatch)
* [某萌新APP](http://xmx.wwimm.top/#1)

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


2. 找到hook的对应接口,使用lspatch修改返回数据。
3. 通过查找TextView的文本找到校验激活码的接口代码。
```java
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 != null) {
                        String text = param.args.toString();
                        if (text.contains("激活码错误或冻结")) {
                            XposedBridge.log(text);
                            printStackTrace();
                        }
                  }
                }
            });
}
```
```java
private void printStackTrace() {
    Throwable ex = new Throwable();
    StackTraceElement[] stackElements = ex.getStackTrace();
    for (int i = 0; i < stackElements.length; i++) {
      StackTraceElement element = stackElements;
      XposedBridge.log("at " + element.getClassName() + "." + element.getMethodName() + "(" + element.getFileName() + ":" + element.getLineNumber() + ")");
    }
}
```

4. 根据堆栈日志找到对应的代码


5. 使用jadx反编译


6. 使用lspatch修改接口返回值
```java
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 != null) {
                        param.args = "激活成功!";
                  }
                }
            });
}
```

7. 成功进入,效果图


8. 某萌新还需要单独安装下配置器(鸡肋,不清楚为嘛),分析后好像就新建了一个文件目录(支持.txt)。hook掉!
```java
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卡权限,需要开启一下!!!


amwquhwqas128 发表于 2024-11-13 23:36

先好好看看,再学习

zhurilinyu 发表于 2024-11-13 21:23

看看,学习一下

hoverss 发表于 2024-11-13 21:46

看看怎么个事

mostima112 发表于 2024-11-13 22:07

准备入坑,学习一下

lingfeill 发表于 2024-11-13 22:10

看一下怎么个事儿

怡红院ぺ秀才 发表于 2024-11-13 22:13

厉害学习学习

sanrokalv 发表于 2024-11-13 22:19

微信分身版吗

wuzihao123 发表于 2024-11-13 22:44

学习一下

lc2006 发表于 2024-11-13 22:47

好东西啊啊啊按
页: [1] 2 3 4 5 6 7 8
查看完整版本: 某萌新APP破解永久激活