逆向 xx音乐 aversionid

逆向 xx音乐 aversionid

版本 7.2.0
版本 7.22.0

第一步,charles 抓包

目标字段 aversionid
在这里插入图片描述

加固平台

  • com.stub.StubApp 360加固
  • s.h.e.l.l.S 爱加密
  • com.secneo.apkwrapper.ApplicationWrapper 梆梆加固
  • com.tencent.StubShell.TxAppEntry 腾讯加固

第二步,通过adjx查看源码

7.2.0 没有加壳

7.22.0 加壳了[可以看出是爱加密的壳,再脱壳查看源码]
在这里插入图片描述

搜索关键字 aversionid 进入SecurityNative类
在这里插入图片描述

package com.xxx.security;

/* loaded from: classes9.dex */
public class SecurityNative {
    
    
    public static native String decode(String str, String str2);

    public static native String encode(String str, String str2);

    static {
    
    
        System.loadLibrary("mgsecurity");
    }
}

进入后可以看到是native方法,so包的名字也知道了,我们去data/data/包名/lib 找这个so就好了,把他save as到桌面

第三步,huuk SecurityNatice encode方法

记录参数和结果用来测试
在这里插入图片描述

第四步,ida so分析

在这里插入图片描述

第五步,如何使用encode方法

  • 第一种 hook相关函数
  • 第二种 逆向so文件:使用IDA逆向so文件,需要定位到加密函数,还要看得懂汇编和C代码,工作量挺大。[c大神恢复吧]
  • 第三种 调用so文件:通过反编译技术定位到签名函数,找到定义native方法的类,确定使用的so文件,
    将so文件移植到自己的项目中。
第一种 在hook中使用反射
String aversionid = ReflectionUtil.invokeStaticMethod(
    classLoader.loadClass("com.xxx.security.SecurityNative"),
    "encode",
    String.class,String.class,
    "ccTWaprX2aWmTIgA",
    "|||866146036729188||6af97d05472b1302|||1676615131438");
Log.e("xxx","aversionid:" + aversionid);
第三种 调用so文件

把so文件放入:[app\src\main\jniLibs\armeabi-v7a]

build.gradle 添加如下代码

defaultConfig {
    ndk{
        abiFilters  "armeabi-v7a"
    }
}

创建一个相同的类,[包名必须相同]

package com.xxxxx.security;

public class SecurityNative {
    public static native String decode(String str, String str2);

    public static native String encode(String str, String str2);

    static {
        System.loadLibrary("mgsecurity");
    }
}

代码中调用

String aversionid = SecurityNative.encode("ccTWaprX2aWmTIgA", "|||866146036729188||6af97d05472b1302|||1676615131438");
Log.e("xxx","aversionid:" + aversionid);

第二种

  • 可以把内容放入自己的c++文件中生成 so 使用
  • 翻译成java代码使用

猜你喜欢

转载自blog.csdn.net/l331258747/article/details/129089983
今日推荐