本帖最后由 zhg158 于 2019-6-28 21:54 编辑
一、前言
因为最近在做个有声小说下载工具,所以就把56有声小说网的分析过程拿出来分享下,比较简单
二、分析
首先打开播放页面
这里可以看到调用了个viewplay();的方法,在请求过的js文件中找到这个函数
这里我看到个datas,应该和数据源有关,到控制台打印看看
结果真发现了真实音频地址,接着找这个datas在哪里,最终在网页源码里面发现
看到这个datas是经过FonHen_JieMa()函数把一些经过*号拼接的数字串进行解密,找到这个函数后发现
其实他就是把这个这个字符串(46*120*109*99*100*110*46*99*111*109*47*103)这样的,用(*)号分割之后
再将每个数字转成了字符再拼接起来的.fromCharCode() 将 Unicode 编码转为一个字符:比如65-->A
到这里解析的差不多了,最后发现这加密和没加一样,
三、java代码解密
[Java] 纯文本查看 复制代码 //56听书
@Test
void testLocalFile() throws Exception {
String html = HtmlUtil.getHtml("http://www.ting56.com/video/18861-0-6.html", "gbk");
Pattern pattern=Pattern.compile("FonHen_JieMa[(]'([\\s\\S]+?)'");
Matcher m=pattern.matcher(html);
m.find();
String group = m.group(1);
String[] u=group.split("*");
String res="";
for(String s:u){
if(!"".equals(s))
res+=(char)Integer.parseInt(s);
}
int code = HttpUtil.getResponseCode(res.split("&")[0]);
System.out.println(code);
System.out.println(res.split("&")[0]);
}
四、最后
过程很简单,就纯粹分享个思路。。
|