逆向 xx音乐 aversionid

news2024/11/13 15:30:41

逆向 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代码使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络编程】Java快速上手InetAddress类

概念 Java具有较好的网络编程模型/库,其中非常重要的一个API便是InetAddress。在Java.net 网络编程中中有许多类都使用到了InetAddress 这个类代表一个互联网协议(IP)地址。 IP地址是一个32(IPV4)位或128(…

求职季哪种 Python 程序员能拿高薪?

本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取了相应的职位信息和任职要求,并通过数据分析可视化,直观地展示了这10个职位的平均薪资和学历、工作经…

02 Context的使用

对于 HTTP 服务而言,超时往往是造成服务不可用、甚至系统瘫痪的罪魁祸首。 context 标准库设计思路 为了防止雪崩,context 标准库的解决思路是:在整个树形逻辑链条中,用上下文控制器 Context,实现每个节点的信息传递…

Package ‘oniguruma‘, required by ‘virtual:world‘, not found

一、操作系统环境 OS版本信息:Rocky Linux 9.1 PHP版本:8.0.26 安装的依赖: dnf -y install libXpm-devel libXext-devel gmp gmp-devel libicu* icu* net-snmp-devel libpng-devel libjpeg-devel freetype-devel libxslt-devel sqlite…

真正意义上的数字零售,最为重要的一点就是要回归零售本身

互联网浪潮的退却并未真正将人们的思维带离互联网的牢笼,相反,越来越多的人依然在用互联网式的眼光看待后互联网时代的事物。尽管这样一种做法可以在一定程度上取得一定的效果,但是,如果仅仅只是用互联网思维来揣度这一切&#xf…

基于虚拟机机的代码保护技术

虚拟机保护技术是基于x86汇编系统的可执行代码转换为字节码指令系统的代码,以达到保护原有指令不被轻易逆向和篡改的目的。 字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的 ,是一种中间码。字节是…

《第一行代码》 第五章:详解广播机制

如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的IP 地址是被保留作为广播地址来使用的。比如某个网络的 IP 范围是 192.168.0XXX,子网掩码是255.255.255.0那么这个网络的广播地址就是 192.168.0255广播数据包会被发送到同-网络上的所有端口…

Spring Security OAuth2四种授权模式总结(七)

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️&#…

【MySQL】MySQL表的增删改查(CRUD)

✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗 目 录🔓一. CRUD🔒二. 新增(Creat…

将array中元素四舍五入取整的np.rint()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将array中元素四舍五入取整 np.rint()方法 选择题 关于以下python代码说法错误的一项是? import numpy as np a np.array([-1.7, 1.5, -0.2, 0.3]) print("【显示】a\n",a) pr…

BI是报表?BI是可视化?BI到底是什么?

很多企业认为只要买一个前端商业智能BI分析工具就可以解决企业级的商业智能BI所有问题,这个看法实际上也不可行的。可能在最开始分析场景相对简单,对接数据的复杂度不是很高的情况下这类商业智能BI分析工具没有问题。但是在企业的商业智能BI项目建设有一…

数字化系统使用率低的原因剖析

当“数字化变革”成为热门话题,当“数字化转型”作为主题频频出现在一个个大型会议中,我们知道数字化时代的确到来了。但是,根据Gartner的报告我们看到一个矛盾的现象——85%的企业数字化建设与应用并不理想、但对数字化系统的需求多年来持续…

软件测试项目实战(附全套实战项目教程+视频+源码)

开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区…

webpack安装步骤(一)

系列文章目录 安装步骤系列文章目录前言一、Webpack是什么?Webpack官网解释解释内容如下图二、Webpack的安装步骤第一步:检查本机是否已经安装过Webpack(全局)1.操作如下2.结果如下图第二步:安装webpack(非…

利用无线通讯技术构建工厂智能化立体仓储

立体仓库主要通过检测、信息识别、控制、通信、监控调度、大屏显示及计算机管理等装置组成。完成仓库各设备连接无线化,可大幅减少网线布防成本,缩短生产线调度时间,实现汽车装配生产线的柔性生产,提高汽车装配生产的自动化水平。…

短视频的素材在哪里找呢?推荐给你一个好办法

我刚刚在视频号做出了30万播放的小爆款,过去3年我做出了很多6位数播放的视频。在这里,我就大家分享20个我常用的素材渠道,其中一些渠道比较小众。除此之外,我也希望同时讲一下短视频的内容生产。为了方便大家浏览,我把…

使用web3连接Georli测试网络

文章目录1.使用geth方式在终端2.写成脚本2.1 通过metamask (现成的太复杂,搞不太来)2.2 通过自己的接口3.通过truffle方式连接 (不成功)目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中&a…

NJ 时钟自动调整功能(SNTP)

NJ 时钟自动调整功能(SNTP) 实验设备:NJ501-1300 实验目的:NJ使用ntp实现时钟自动调整 1. 实验概览 ​ 本次实验通过NJ的ntp功能,将PLC的时钟和阿里的ntp服务器时钟每隔1分钟同步一次。 阿里ntp服务器的域名为:ntp.aliyun.com…

Python fileinput模块:逐行读取多个文件

前面章节中,我们学会了使用 open() 和 read()(或者 readline()、readlines() )组合,来读取单个文件中的数据。但在某些场景中,可能需要读取多个文件的数据,这种情况下,再使用这个组合&#xff0…

力扣56.合并区间

文章目录力扣56.合并区间题目描述排序合并力扣56.合并区间 题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中…