当前位置:网站首页>秒拍app分析
秒拍app分析
2022-08-09 09:19:00 【Codeooo】
秒拍APP短视频逆向分析:最新版version ===7.2.98 :

抓一个用户主页包看下:
这个是我抓的科普中国用户的主页,经过分析发现请求头有变化参数。
rt : 暂时分析微时间戳 pk:固定 ov : 固定
变化:si ,ti, sk, p
开始正式逆向路程========
jadx 查看下入口:
这不啥也找不到,加壳了,不说了 直接脱壳:
网上各种脱壳工具或者脱壳机,自动回填修复dex:
定位加密地方:当前包名: package e.f.a.l.v;
valueOf: 当前时间 String valueOf = String.valueOf(System.currentTimeMillis());
str2: str2 = deviceBean; 设备数据
str, strArr 传进来的
静态分析后:
linkedList.add(new h("si", g.getKey()));
linkedList.add(new h("ti", g.getTrace()));
linkedList.add(new h("sk", g.getSignature()));
是通过走了一个g方法后:将所有参数回写。
这是一个 native 同步锁的操作,将参数传进so加密结果返回到 bean 对象里。
frida hook下查看传入传出:
# -*- coding: utf-8 -*-
# @Author : Codeooo
# @Time : 2022/04/29
import sys
import frida
code = """ Java.perform(function(){ var lk = Java.use("com.dubmic.basic.e"); lk.g.implementation = function(a,b,c,d,e){ //var b1 = String((new Date()).valueOf()); //console.log(typeof b) //console.log(typeof b1) //console.log('参数b1 ' + b1) console.log('参数str ' + a) console.log('参数str1 '+ b) console.log('参数str2 ' + c) //var c1 = '{"dpi":420,"did":"b81b219fcafc7d50e652e0d80ff12985","dname":"QW5kcm9pZA\u003d\u003d","sl":"zh","sv":"7.1.2","os":"android","av":"7.2.87","bv":"6790000","dm":"AOSP on msm8996","dmid":"AB:44:48:4P:3R:19","daid":"89d9abcd39014bfd","network":1,"dw":1440,"dh":2434,"lon":0.0,"lag":0.0,"channel":"xiaomi_market","rt":1639052393988,"carrier":0}' console.log('参数str3 ' + d) console.log('参数str4 ', JSON.stringify(e)) var e2 = [["userId","78143099"],["type","1"],["page","1"],["limit","20"]] console.log('==== ' + this.g(a,b,c,d,e2)) return this.g(a,b,c,d,e2) } var EncryptUtils = Java.use("com.dubmic.basic.bean.HttpEncryptionBean"); var EncryptUtils = Java.use("com.dubmic.basic.bean.HttpEncryptionBean"); EncryptUtils.getKey.implementation = function(){ //console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new())); console.log("Codeoooo " + this.getCode()) console.log("si " + this.getKey()) console.log("ti " + this.getTrace()) console.log("sk " + this.getSignature()) console.log("p " + this.getP()) return this.getKey() } }); """
process = frida.get_remote_device().attach('com.yixia.videoeditor')
script = process.create_script(code)
script.load()
sys.stdin.read()

再搭建个frida_RPC + flask 一个动态刷用户服务即可调用。
接下来咱们分析下so文件:


在 IDA 打开的时候发现报错,该so文件为加密so,需要在内存中dump修复elf文件,这个需要了解elf文件结构。
我们可以用 010Editor 或者 其他medit 去看下so文件到底是什么文件。
参考:https://blog.csdn.net/weixin_38927522/article/details/120164359

以后面试再问到这么基础的题,可不要不会了啊,多了解下NDK开发及so文件elf结构。
解决思路:
1.可以用IDA中的plugins下修改so插件 内存dump脚本
2.frida dump内存
3.SoFixer_Rel
4.xAnSo
5.大佬手动修复
当然修复的so可能并不一定成功,需要自己去回填指定等。
由于frida 不稳定的因素,这里我编写了一个xposed 主动调用去调用so文件进行解密:
部分代码公开:

边栏推荐
- Venture DAO Industry Research Report: Macro and Classic Case Analysis, Model Summary, Future Suggestions
- 第四讲 SVN
- MySQL Leak Detection and Filling (3) Calculated Fields
- 银联最新测试工程师笔试题目,你能得多少分?
- 软件测试的流程规范有哪些?具体要怎么做?
- Swap swap partition
- 数据治理(四):数据仓库数据质量管理
- 【分布式事务】
- Understanding of PID control motor output as motor PWM duty cycle input
- 国产谷歌地球同款软件,查看下载19级高清卫星影像so easy!
猜你喜欢

"The camera can't be used" + win8.1 + DELL + external camera + USB drive-free solution

on duplicate key update

Amplify Shader Editor手册 Unity ASE(中文版)

China to create a domestic "Google Earth" clarity scary
自动化测试简历编写应该注意哪方面?有哪些技巧?

Venture DAO Industry Research Report: Macro and Classic Case Analysis, Model Summary, Future Suggestions

本体开发日记05-努力理解SWRL(上)

canal工作原理及简单案例演示

MySQL索引

中国打造国产“谷歌地球”清晰度吓人
随机推荐
全网最全的软件测试基础知识整理(新手入门必学)
“摄像头用不了”+win8.1+DELL+外置摄像头+USB免驱的解决办法
通用的测试用例编写大全(登录测试/web测试等)
The era of Google Maps is over, how to view high-definition satellite image maps?
swap交换分区
自动化测试框架有哪几种?搭建的思路是什么?一篇文章让你彻底了解自动化
多维度LSTM(长短期记忆)神经网络预测未来存款余额走势
软件测试的流程规范有哪些?具体要怎么做?
MySQL查漏补缺(三) 计算字段
绝了,这套RESTful API接口设计总结
MySQL transaction isolation
JMeter参数化4种实现方式
"The camera can't be used" + win8.1 + DELL + external camera + USB drive-free solution
QT sets the icon of the exe executable
mysql进阶(三十一)常用命令汇总
【环境搭建】tensorrt
本体开发日记03-理解代码
国产谷歌地球,地形分析秒杀同款地图软件
MySQL查漏补缺(五)不熟悉的知识点
Domestic Google earth, terrain analysis seconds kill with the map software