某影视APP算法逆向分析
一、抓取数据包
1、请求头有%加十六进制,说以是url编码,先解密一下
GET http://m.mapps.m1905.cn/User/sendVer?request=jYgPer7AuEqdM+DYqs/AbNb35UrMvjLwt4+f0p3RHXc= HTTP/1.1
2、需要找的数值是requests的组成、pid(常量值)、key、did(设备编号)
GET http://m.mapps.m1905.cn/User/sendVer?request=jYgPer7AuEqdM%2BDYqs%2FAbNb35UrMvjLwt4%2Bf0p3RHXc%3D HTTP/1.1
sid:
pid: 236
key: 69b39cb24632252f7bb891bdb1f0de85
did: 010067028741939
uid:
ver: 100/95/2016020901
User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.2; HD1900 Build/N2G47O)
Host: m.mapps.m1905.cn
Connection: Keep-Alive
Accept-Encoding: gzip
二、搜索链接里关键字"User/sendVer"
1、查看aay.b()函数,DESede算法
key:iufles8787rewjk1qkq9dj76,iv:vs0ld7w3
2、由于DESede是对称加密算法,密文是:jYgPer7AuEqdM+DYqs/AbNb35UrMvjLwt4+f0p3RHXc=,可以反推一下得到加密内容为:mobile=15836353612&templateid=1
三、搜索关键字key
1、查看v0.i()函数
public String i() {
return abh.a(abb.c() + "m1905_2014");
}
2、查看abb.c()函数,获取设备id
public static String c() {
String v0_2;
try {
TelephonyManager v0_1 = (TelephonyManager)BaseApplication.a().getSystemService("phone");
v0_2 = v0_1 == null ? "" : v0_1.getDeviceId();
}
catch(Exception v0) {
v0_2 = "";
}
return v0_2;
}
3、查看abh.a()函数,获取md5值
public class abh {
public static final String a(String arg9) {
int v0 = 0;
if(!TextUtils.isEmpty(arg9)) {
char[] v2 = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
try {
byte[] v1 = arg9.getBytes();
MessageDigest v3 = MessageDigest.getInstance("MD5");
v3.update(v1);
byte[] v3_1 = v3.digest();
char[] v5 = new char[(((int)v1)) * 2];
int v1_1 = 0;
while(v0 < v3_1.length) {
int v6 = v3_1[v0];
int v7 = v7 + 1;
char v8 = v2[v8 >>> 4 & 15];
v5[v1_1] = v8;
++v1_1;
v5[v7] = v2[v6 & 15];
++v0;
}
arg9 = new String(v5);
}
catch(Exception v0_1) {
arg9 = null;
}
}
return arg9;
}
}
4、最终就是设备id+m1905_2014,然后再算md5
四、响应值解密
禁止非法,后果自负
欢迎关注公众号:逆向有你
欢迎关注视频号:之乎者也吧
某影视APP算法逆向分析相关推荐
- 对吃鸡APP的逆向分析
吃鸡的APP逆向分析涉及到动态调试分析,涉及到对arm汇编指令的掌握,涉及到一些反调试方案的绕过. 下面通过对吃鸡APP的逆向分析做了一次详解解析. 请点击文字进行阅读对android逆向吃鸡APP的 ...
- AES算法逆向分析报告
一.前置知识 AES加密算法解析: 目前大部分情况下,AES加密使用的密钥长度为128bit,即16字节,分组长度为16字节,加密的轮函数会执行10次.对于16字节的而言密钥,首先会执行一个密钥扩展的 ...
- 天眼查app协议逆向分析
准备工具 脱壳工具:Fdex2 查壳工具:apk messager 抓包工具:Fiddler 分析工具:jadx hook框架:Frida 手机:root 的真机Android 7.0(模拟器一堆问题 ...
- 010 Editor算法逆向分析之编写注册机
将程序拖入OD,通过字符串搜索定位到核心代码,经过分析,主要是如下图所示的两个关键函数,返回正确的值,才算是注册成功. 1 开始分析,我们点击register按钮,弹出来窗口让我们输入用户名和密码 1 ...
- 安卓 sharedpreferences可以被其它activity读取_【安卓逆向】“一份礼物”之我要o泡逆向分析...
最近安卓手机有个恶搞程序"一份礼物"登上热搜. 该app的效果是打开之后手机便会以最大音量循环播放"我要o泡"音乐,并且无法调小音量,无法退出程序,甚至无法关机 ...
- 跟我一起从零学习安卓逆向分析
随着国家对信息安全的重视,兴起了各大CTF的赛事,其中逆向板块的安卓平台题目不断涌现.在这个互联网+的时代,移动互联网的APP犹如滚雪球一般的增长,随之而来的则是移动业务安全如风险控制.反外挂.安全合 ...
- 某app登录协议逆向分析
某app登录协议逆向分析 设备 iphone 5s Mac Os app:神奇的字符串57qm5Y2V 本文主要通过frida-trace.fridaHook.lldb动态调试完成破解相应的登录算法, ...
- 红米k30 允许调用gpu调试层_记一次APP的so层算法逆向(六)
" 前言:初学逆向 请多多指教" 学习到的内容 - 1.在java层,对容器类的对象进行hook来进行快速定位 2.ida的findcrypt插件对so层的算法快速识别 3.文章分 ...
- 某游戏社区App | So层逆向分析
大家好,我是TheWeiJun,不知不觉已经来到了2022年底.回顾这一年,发生了太多事迹:有挫折.有喜悦.其中最开心的是结交了许多志同道合的朋友.本文将是笔者2022年最后一篇文章收官之战,全程高能 ...
最新文章
- linkedblockingqueue使用_阿里规范要求不能使用Executors创建线程
- 【机器学习基础】数学推导+纯Python实现机器学习算法24:LightGBM
- windows路由表 重启后就还原了_绕过Apple id并可以随意重启的终极方案来了 (Windows下操作)...
- realloc()函数
- Linux命令 umask,chmod使用
- N天学习一个Linux命令之grep
- c语言switch工资怎么弄,超级新手,用switch写了个计算器程序,求指导
- JDK8帮助文档生成-笔记
- 【转】D3DXLoadSkinMeshFromXof函数及.x在不同dx版本中
- 找不到罗技鼠标键盘的接收器头:重新连接配对“对码”教程
- 亚马逊资源名称 (ARN) 和 AWS 服务命名空间
- 拍案惊奇——软件调试实战训练营暑期特别班(v2.1)
- 后缀数组(倍增)学习记录,我尽可能详细的讲了
- 华为5g cpe 虚拟服务器,中国移动科普5G CPE:不换手机也能体验5G
- Android开发: 美化输入框EditText
- 2020李宏毅机器学习笔记-More about Auto-encoder
- 如何修改网游服务器,定期修改网游服务器密码确保数据安全
- 我的Android进阶之旅:经典的大牛博客推荐
- 联想7400PRO清零
- 洛谷 P3041 视频游戏的连击Video Game Combos(AC自动机+拓扑排序+数位DP)
热门文章
- 牛客练习赛59 C	装备合成(贪心+数学)
- Linux基础指令(有图有真相,附实例)
- java获取当前日期的下一天,以后的第n天
- 我们如何构建12层堆栈而又不疯狂
- 思科模拟器:交换机路由器 密码设置(明文密文加密明文)
- 荣耀4c android版本,荣耀4C有几个版本?华为荣耀4C畅玩版各版本区别介绍
- 6.3 分配学号(project)
- Kubernetes网络插件Flannel
- 天猫魔盒屏蔽自动升级
- 申请微信小游戏流量主提示 “填写的姓名或身份证与公众号主体信息不一致”