-
-
[原创]某猫小说sign简单分析
-
发表于:
2020-11-22 19:40
7922
-
1、前言
逆向萌新,闲来无事,找了个app练习一下,这次案例是某猫免费小说,特开一贴用来记录一下分析过程。(ps:本篇分析的APP版本为4.0.0)
2、APP抓包分析
用Fiddler对目标app进行抓包,抓包结果如下:

主要找sign的生成过程,打开jadx搜索代码"sign",把可能会生成sign的方法都给hook,再发送一次请求看生成sign的方法在哪。一些包名有huawei,meizu这些的可以直接过滤掉。

代码如下:
function main(){
Java.perform(function(){
/*
var e = Java.use('anet.channel.strategy.dispatch.e');
e.a.overload('java.util.Map').implementation = function(v1,v2){
console.log('dispatch')
return this.a(v1,v2);
}
var p = Java.use('com.bytedance.sdk.openadsdk.core.p');
p.a.overload('java.lang.String', 'java.lang.String').implementation = function(v1,v2){
console.log('openadsdk');
return this.a(v1,v2);
}
var c = Java.use('com.km.repository.net.a.a.c');
c.intercept.implementation = function(v1){
console.log('repository');
return this.intercept(v1);
}
var c = Java.use('com.kmxs.reader.download.a');
c.c.overload('java.lang.String').implementation = function(v1){
console.log('reader...');
console.log('v1:', v1);
var sig = this.c(v1);
console.log('sig:', sig);
return sig;
}
*/
// 生成sig方法
var a = Java.use('com.km.core.b.a');
a.a.overload('java.lang.String').implementation = function(v1){
console.log('core.....');
console.log('v1:', v1);
var sig = this.a(v1);
console.log('sig:', sig);
return sig;
}
/*
var a = Java.use('com.km.repository.net.b.a');a.d.overload().implementation = function(){
console.log('repository.....');
var sig = this.d();console.log('sig:', sig);
return sig;
}
*/
}
)
}
setImmediate(main)
运行脚本查看

多次请求对比可以看到,headers里面的sign是固定的,生成sign的参数都是头部信息里的。url的sign主要由page页数决定。知道这些就可以用frida rpc进行调用。
3、frida rpc进行调用并尝试请求
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-11-22 19:51
被wx_公过水蚊编辑
,原因: