一、目标
何以解忧,除了烤串啤酒,也只有刷刷小视频了。
今天我们的目标就是看看海外版的这个小视频App的 X-Gorgon
二、步骤
Jadx搜索 "X-Gorgon"
居然只有两个结果,很容易就定位到了这里
上Frida搞一下
var strUtilCls = Java.use('com.ss.a.b.a');
strUtilCls.a.overload('[B').implementation = function(a){
var rc = this.a(a);
console.log(">>> X-Gorgon = " + rc);
return rc ;
}
跑一下
>>> X-Gorgon = 040420f90005015f8e95d8d8da66ce27e0c536e8eabdc77847f5
没问题,成功抓到了 X-Gorgon
搞搞入参
结果找到了,那么咱们还需要分析下入参
strUtilCls.a.overload("java.lang.String").implementation = function(a){
var rc = this.a(a);
console.log("inStr = " + a);
return rc ;
}
再跑一下,入参打出来了
inStr = 7322d9d39cbeb2fff08237fb1e2199c495A35C6A6BFFAAFEE6A7265145CC097C0000000000000000000000000000000000000000000000000000000000000000
这个入参看上去比较复杂。
我们结合一下代码看, 这个入参其实由4部分组成,每部分都是一个 MD5串
inStr =
7322d9d39cbeb2fff08237fb1e2199c4
95A35C6A6BFFAAFEE6A7265145CC097C
00000000000000000000000000000000
00000000000000000000000000000000
那么是哪些数据来做md5呢? 我们再打印一下
var ParamHttpCls = Java.use('com.ss.sys.ces.gg.tt$1');
ParamHttpCls.a.implementation = function(a,b){
var rc = this.a(a,b);
console.log("a = " + a);
console.log("b = " + b.entrySet().toArray());
console.log(">>> rc = " + rc.entrySet().toArray());
return rc;
}
跑一下,这个结果就很清晰了
再整理整理,就可以做个RPC调用了。
三、总结
小视频有毒,控制不住我记几
人们从历史中学到的唯一教训,就是人们无法从历史中学到任何教训
关注微信公众号,最新技术干货实时推送
文章作者 奋飞
上次更新 2021-05-17
许可协议 奋飞安全原创,转载请注明出处。