这个东西搞出来有段时间了,一直硬盘吃灰,今天看了一下发现不能用啦,又去网页看了一下 变了一小部分,既然之前的不能用啦,那我就分享出来解密过程。具体分析过程就免了,时间太久时间太久记不起来当时的思路了 现在就看着代码来说一说加密。
- 首先获取key,从脱机js算法经过自己完善 js带入酒店id
window.location = {
href: "http://hotels.ctrip.com/hotel/[id].html?isFull=F#ctm_ref=hod_sr_lst_dl_n_1_6"
}var h = "123";```
伪造一个常量混淆判断的
然后获取一个随机的函数名
for (var e = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"], o = "CAS", n = 0; n < 16; n++) {
var a = Math.ceil(51 * Math.random());
o += e[a]
}
return o;
}
拿到加密密文
function get(){return eval(密文);}```
然后我们就可以动态组合算法
head+body
```function [过程](aa) {
h = aa;
}
function d() {
return h;
}```
然后计算出来结果
var key = 结果.split('"')[1];
var a = key.substring(key.length-1,1);
var b = key.substring(1,length-1);
if(a>0){
b+=(a-1).toString();
}else{
b+=String.fromCharCode(a.charCodeAt()+1);
}
ok
此时b的key就是eleven值。就可以拿着请求评论
最后说明一下此贴不针对携程仅仅作为学术分析讨论,如果你认为这就能爬携程那就天真了