硕士生
 
- 金币
- 1499
- 好评
- 3
- 信誉
- 183
|
今天分析了一个软件,
一开始是数字加固,邪修过了下,遇到了签名校验
签名定位修改了,本以为能过,
测试还是发现没过,
然后继续研究,发现是服务器下发的签名,
如果不能正确获取服务器下发的,那么及时过了提示弹窗,
里面的视频也不能看,
由于手机没root,和模拟器的限制,导致自己不能很好的测试出来,就用ai写了一份frida脚本,
发这个帖子,也请大佬帮忙运行,测试下这个下发的签名
OooO0O0.OooO0Oo()方法中
# 1. 获取正确的签名字符串 (服务器配置)
sget-object v0, Lcom/hive/request/utils/OooOo00;->OooO00o
invoke-virtual {v0}, OooOo00;->OooO00o()Ljava/lang/String; # "xxxencrypted_xxx"
# 2. 对签名字符串进行 AES 解密
invoke-static {v1}, OooOOO;->OooO0O0() # 解密后得到正确的签名
# 3. 获取当前 APK 的签名 (调用 Native 层)
invoke-static {}, Lo00Oo0O0/o0OO00O;->OooO0OO()
invoke-virtual {v2, p1, v1}, o0OO00O;->OooO0oo(Context;String) # 返回当前APK签名
# 4. 比较两个签名
invoke-virtual {v0, p1}, String;->equals(Ljava/lang/Object;)Z # 比较正确签名 vs 当前签名
- 服务器下发 : OooOo00.OooOOOO() 返回的签名字符串是从服务器获取的(经过加密)
- 本地签名 : OooO0o0() 通过 Native 层获取 你当前 APK 的实际签名
- 比较 :如果 本地签名 == 服务器下发的签名(解密后) ,验证通过
链接 https://wwapr.lanzouu.com/b0zkr74kj
密码:bc5q |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|