猿人学题库十四题——css加密-雪碧图/数据干扰等

1.  首先 进入 浏览器的开发者工具,

打开就是 俩个无线debugg,正常的操作过掉

1.  找到 debugg 对应的行数,右击选择 never pause here ,刷新 就不会再此处 停下了

虽然 这样过掉了,但是你会 发现 特别异常的卡,(我怀疑浏览器卡关闭重开,电脑卡了重启发现还是一样的),

这样根本不好调试 代码,就无法找到 js 的逻辑,(后来发现 虽然用 never pause here过了,但这不是真真的跳过debug了,只是在 debug处 不暂停而已,JS代码还是在无线执行消耗内存卡的吧,卡的导致无法调试)

以下俩种解决思路:

1.1  中间人攻击 fiddler 自己返回 数据

1.2  浏览器的 Override 工具(这里可以查阅资料看看,有时间我补一篇博客)

2.  中间人攻击 fiddler

  • 可以参考 怎么 fiddler修改返回的数据

先做个测试 对比一下数据:

2.1  fiddler 修改后返回的数据  (这里我已经修改 代码了

2.2  正常请求返回的数据

可以看到俩个数据是一样的,我改后的html代码没有页数了,这里页数这里不用关注,因为我我们只要看到数据对应上就OK了。

3.  分析 JS

看到源码的有大堆 JS 看不懂东西,ob混淆

(这里我也不知道怎么区别是不是 ob混淆的,目前只知道这种,看不懂的JS丢进去就好了,补充博客)

ob解混淆后来看下对比,这代码好看程度大大提升,容易看懂很多

         

后面我就直接看 解混淆后的代码了,可以看到很多的方法,但是都是 定义JS方法,我们需要找到 函数执行的地方

1. 函数自执行函数

2. 等待 函数执行

3. (function(){ })(window)  也是 自执行函数

                

这一题 就这俩个地方,JS的只执行函数的方式很多,花里胡哨的有些可以看不懂。

然后 把  ajax 请求 返回 success 成功后面 { } 大括号里面 的代码 全部 换成 解混淆后的代码

在 用浏览器 请求,返回 fiddler 自定义修改后 数据(就是更换 解混淆JS的Html),请求还是会断在 无线debug 那里

但是我们 找出了,自执行函数的位置,就提前打断点,在自执行函数 里面 申明的JS方法,然后又自己执行,我们就在这里先打断点

调试 下一个断点 就出现了,开始的那俩个 无线debug ,一直在有个方法里死循环(自己调用自己)

我们可以直接 重写这个 方法的上一个 栈方法 无线死循环的是 _0x1e51f8 我们重写 _0xde23e 函数

(这俩个函数是我静态保存的,每次请求是不一样的,你们要找到你们保存数据的方法)

再次 刷新请求 ,除了断在自己打的断点上,无线debug已经没有了。

你会惊奇的发现,前面提到的 setInterval 定时里面也有这个函数 _0xde23e ,但是重写了就失效了

这里有个小问题,感觉上 setInterval的定时函数没有起到作用,我做测试的时候 在重写 _0xde23e 方法的上一层函数 _0x18be96,不重写 _0xde23e 函数,自执行函数的无线debug会过掉,但是 定时函数的_0xde23e方法的无线debug方法没有过掉,但是还是没有出现。

继续分析,

厉害的人 可能会直接略过前面的步骤,直接看到 下面这部分代码就知道了,ajax 请求成功后,获取数据,然后通过JS添加到前端显示。

但是 这里有个主意的点,通过JS方法把一些多余干扰的图片隐藏了,不然会把干扰的数据也获取到。

把返回的 info 是HTML字符串,自己新建一个 HTML 可以打开看看

先 测试 一下,把 JS隐藏样式的代码注释掉,把 要隐藏的class打印在控制台查看,

同时 在这里 把 图片的base64编码的字符串 和 对应的 数字,纯手工 copy 到代码的 字典里吧,后面根据 图片找到 对应的 数值

进一步 解析 隐藏class 的由来,主要有个 btoa 是个win自带的base64编码,js逆向加密中Base64方法替换

然后 其他的 就是 慢慢扣JS了,缺什么补什么,

var _0x20c24d = "." + _0x124e6b(btoa(data["key"] + data["value"])["replace"](/=/g, ""));

扣完请求后,模拟请求 ,发现 数据还是不对,数值的位置不对,这里用偏移了,这里植入 css 的知识

position :相对定位,当前元素 和 上一个元素的位置 关系

这里看到 img-number 的宽度是 9px 像素,数值框的 宽度是 69px 像素,(有些可能会遇到偏移出去了)

                   

偏移量  [ 0 , 9 . -9 , 0 ]

数字      [ 1 , 6   1   7 ]

第一个偏移量 0 : 是第一个元素,偏移量还是0,那就是第一个值了
第二个偏移量 9∶  正常第二个元素对应第一个元素的位置关系为 0,加9的偏移量,那就是是第三个位置了 
第三个偏移量 -9∶ 第三个元素 对应 第二个元素的位置为 0 ,偏移量是 -9  就是往往前面移动,那就是第二个位置了
第四个偏移量 0∶  没有偏移,那就是第四个位置设有变化

这里 总结一下,四个元素 产生偏移量时,想要四个值都在 他们的 偏移求和 肯定等于 0,如果不等于 那就是 偏移到 外面的框或重叠了。

# 偏移量 逻辑
a = [0.0, 1.0, -1.0, 0.0]
b =  [1, 6, 1, 7]
tem = b.copy()for index,aa in enumerate(a):if aa:if aa>0:b[index+1] = tem[index]else:b[index-1] = tem[index]
print(b)# [1, 6, 6, 7]   这就是 需要的结果 1167 

得到 正确的 数据,下面开始撸代码

4. 撸代码

var encode_version = "sojson.v5",ubbgr = "__0x8c0ec";
var _0x8f754e = 0;
var _0x130c55 = "";
var _0x690c11 = 8;function _0x4a5ee7(_0x540928, _0x1c68c7, _0x55fb3a, _0xc73c5d, _0x32e9c6, _0x3a61fb, _0x1c075e) {return _0x4efd4f(_0x55fb3a ^ (_0x1c68c7 | ~_0xc73c5d), _0x540928, _0x1c68c7, _0x32e9c6, _0x3a61fb, _0x1c075e);
}function _0x5284de(_0x15415d, _0x4be6fe, _0x245ee5, _0x438931, _0x452339, _0x1f7c91, _0x4ef10f) {return _0x4efd4f(_0x4be6fe ^ _0x245ee5 ^ _0x438931, _0x15415d, _0x4be6fe, _0x452339, _0x1f7c91, _0x4ef10f);
}function _0x1a3ade(_0x5d7666, _0x36a29d, _0x3b74c1, _0x480b22, _0x30475b, _0x1dd9e9, _0x636b5) {return _0x4efd4f(_0x36a29d & _0x480b22 | _0x3b74c1 & ~_0x480b22, _0x5d7666, _0x36a29d, _0x30475b, _0x1dd9e9, _0x636b5);
}function _0x1cb164(_0x16b706, _0xbd8b87) {return _0x16b706 << _0xbd8b87 | _0x16b706 >>> 32 - _0xbd8b87;
}function _0x50651a(_0x7b44fe, _0x498d2c) {var _0x2b4226 = (_0x7b44fe & 65535) + (_0x498d2c & 65535);var _0x208fba = (_0x7b44fe >> 16) + (_0x498d2c >> 16) + (_0x2b4226 >> 16);return _0x208fba << 16 | _0x2b4226 & 65535;
}function _0x4efd4f(_0x29aa42, _0x422c7a, _0x2dfb85, _0x367f62, _0x591028, _0x6038d7) {return _0x50651a(_0x1cb164(_0x50651a(_0x50651a(_0x422c7a, _0x29aa42), _0x50651a(_0x367f62, _0x6038d7)), _0x591028), _0x2dfb85);
}function _0x56e427(_0x28552e, _0x519e35, _0x2d221d, _0x265f8e, _0x2baabe, _0x6a5908, _0xa03ce0) {return _0x4efd4f(_0x519e35 & _0x2d221d | ~_0x519e35 & _0x265f8e, _0x28552e, _0x519e35, _0x2baabe, _0x6a5908, _0xa03ce0);
}function _0x2755cc(_0x3af3a2) {var _0x5150ad = Array();var _0x536650 = 255;for (var _0x57f6ed = 0; _0x57f6ed < _0x3af3a2["length"] * _0x690c11; _0x57f6ed += _0x690c11) _0x5150ad[_0x57f6ed >> 5] |= (_0x3af3a2["charCodeAt"](_0x57f6ed / _0x690c11) & _0x536650) << _0x57f6ed % 32;return _0x5150ad;
}function _0x5f2dd4(_0x8dce70, _0x16e827) {_0x8dce70[_0x16e827 >> 5] |= 128 << _0x16e827 % 32;_0x8dce70[(_0x16e827 + 64 >>> 9 << 4) + 14] = _0x16e827;var _0x4351a3 = 1732584193;var _0x245564 = -271733879;var _0x80a9d = -1732584194;var _0x3c2f7b = 271733878;for (var _0x2bfaa7 = 0; _0x2bfaa7 < _0x8dce70["length"]; _0x2bfaa7 += 16) {var _0x308fc9 = _0x4351a3;var _0x5432b0 = _0x245564;var _0xb174aa = _0x80a9d;var _0x227f98 = _0x3c2f7b;_0x4351a3 = _0x56e427(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 0], 7, -680876936);_0x3c2f7b = _0x56e427(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 1], 12, -389564586);_0x80a9d = _0x56e427(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 2], 17, 606105819);_0x245564 = _0x56e427(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 3], 22, -1044525330);_0x4351a3 = _0x56e427(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 4], 7, -176418897);_0x3c2f7b = _0x56e427(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 5], 12, 1200080426);_0x80a9d = _0x56e427(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 6], 17, -1473231341);_0x245564 = _0x56e427(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 7], 22, -45705983);_0x4351a3 = _0x56e427(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 8], 7, 1770035416);_0x3c2f7b = _0x56e427(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 9], 12, -1958414417);_0x80a9d = _0x56e427(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 10], 17, -42063);_0x245564 = _0x56e427(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 11], 22, -1990404162);_0x4351a3 = _0x56e427(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 12], 7, 1804603682);_0x3c2f7b = _0x56e427(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 13], 12, -40341101);_0x80a9d = _0x56e427(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 14], 17, -1502002290);_0x245564 = _0x56e427(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 15], 22, 1236535329);_0x4351a3 = _0x1a3ade(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 1], 5, -165796510);_0x3c2f7b = _0x1a3ade(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 6], 9, -1069501632);_0x80a9d = _0x1a3ade(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 11], 14, 643717713);_0x245564 = _0x1a3ade(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 0], 20, -373897302);_0x4351a3 = _0x1a3ade(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 5], 5, -701558691);_0x3c2f7b = _0x1a3ade(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 10], 9, 38016083);_0x80a9d = _0x1a3ade(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 15], 14, -660478335);_0x245564 = _0x1a3ade(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 4], 20, -405537848);_0x4351a3 = _0x1a3ade(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 9], 5, 568446438);_0x3c2f7b = _0x1a3ade(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 14], 9, -1019803690);_0x80a9d = _0x1a3ade(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 3], 14, -187363961);_0x245564 = _0x1a3ade(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 8], 20, 1163531501);_0x4351a3 = _0x1a3ade(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 13], 5, -1444681467);_0x3c2f7b = _0x1a3ade(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 2], 9, -51403784);_0x80a9d = _0x1a3ade(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 7], 14, 1735328473);_0x245564 = _0x1a3ade(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 12], 20, -1926607734);_0x4351a3 = _0x5284de(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 5], 4, -378558);_0x3c2f7b = _0x5284de(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 8], 11, -2022574463);_0x80a9d = _0x5284de(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 11], 16, 1839030562);_0x245564 = _0x5284de(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 14], 23, -35309556);_0x4351a3 = _0x5284de(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 1], 4, -1530992060);_0x3c2f7b = _0x5284de(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 4], 11, 1272893353);_0x80a9d = _0x5284de(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 7], 16, -155497632);_0x245564 = _0x5284de(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 10], 23, -1094730640);_0x4351a3 = _0x5284de(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 13], 4, 681279174);_0x3c2f7b = _0x5284de(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 0], 11, -358537222);_0x80a9d = _0x5284de(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 3], 16, -722521979);_0x245564 = _0x5284de(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 6], 23, 76029189);_0x4351a3 = _0x5284de(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 9], 4, -640364487);_0x3c2f7b = _0x5284de(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 12], 11, -421815835);_0x80a9d = _0x5284de(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 15], 16, 530742520);_0x245564 = _0x5284de(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 2], 23, -995338651);_0x4351a3 = _0x4a5ee7(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 0], 6, -198630844);_0x3c2f7b = _0x4a5ee7(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 7], 10, 1126891415);_0x80a9d = _0x4a5ee7(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 14], 15, -1416354905);_0x245564 = _0x4a5ee7(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 5], 21, -57434055);_0x4351a3 = _0x4a5ee7(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 12], 6, 1700485571);_0x3c2f7b = _0x4a5ee7(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 3], 10, -1894986606);_0x80a9d = _0x4a5ee7(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 10], 15, -1051523);_0x245564 = _0x4a5ee7(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 1], 21, -2054922799);_0x4351a3 = _0x4a5ee7(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 8], 6, 1873313359);_0x3c2f7b = _0x4a5ee7(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 15], 10, -30611744);_0x80a9d = _0x4a5ee7(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 6], 15, -1560198380);_0x245564 = _0x4a5ee7(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 13], 21, 1309151649);_0x4351a3 = _0x4a5ee7(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b, _0x8dce70[_0x2bfaa7 + 4], 6, -145523070);_0x3c2f7b = _0x4a5ee7(_0x3c2f7b, _0x4351a3, _0x245564, _0x80a9d, _0x8dce70[_0x2bfaa7 + 11], 10, -1120210379);_0x80a9d = _0x4a5ee7(_0x80a9d, _0x3c2f7b, _0x4351a3, _0x245564, _0x8dce70[_0x2bfaa7 + 2], 15, 718787259);_0x245564 = _0x4a5ee7(_0x245564, _0x80a9d, _0x3c2f7b, _0x4351a3, _0x8dce70[_0x2bfaa7 + 9], 21, -343485551);_0x4351a3 = _0x50651a(_0x4351a3, _0x308fc9);_0x245564 = _0x50651a(_0x245564, _0x5432b0);_0x80a9d = _0x50651a(_0x80a9d, _0xb174aa);_0x3c2f7b = _0x50651a(_0x3c2f7b, _0x227f98);}return Array(_0x4351a3, _0x245564, _0x80a9d, _0x3c2f7b);
}function _0x397d65(_0x41002e) {var _0x2c5f6d = "0123456789abcdef";var _0x389ccd = "";for (var _0x2101be = 0; _0x2101be < _0x41002e["length"] * 4; _0x2101be++) {_0x389ccd += _0x2c5f6d["charAt"](_0x41002e[_0x2101be >> 2] >> _0x2101be % 4 * 8 + 4 & 15) + _0x2c5f6d["charAt"](_0x41002e[_0x2101be >> 2] >> _0x2101be % 4 * 8 & 15);}return _0x389ccd;
}function _0x124e6b(_0x280199) {return _0x397d65(_0x5f2dd4(_0x2755cc(_0x280199), _0x280199["length"] * _0x690c11));
}var Base64 = {// private property_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="// public method for encoding, encode: function (input){var output = "";var chr1, chr2, chr3, enc1, enc2, enc3, enc4;var i = 0;input = Base64._utf8_encode(input);while (i < input.length){chr1 = input.charCodeAt(i++);chr2 = input.charCodeAt(i++);chr3 = input.charCodeAt(i++);enc1 = chr1 >> 2;enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);enc4 = chr3 & 63;if (isNaN(chr2)){enc3 = enc4 = 64;}else if (isNaN(chr3)){enc4 = 64;}output = output +this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);} // Whendreturn output;} // End Function encode// public method for decoding,decode: function (input){var output = "";var chr1, chr2, chr3;var enc1, enc2, enc3, enc4;var i = 0;input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");while (i < input.length){enc1 = this._keyStr.indexOf(input.charAt(i++));enc2 = this._keyStr.indexOf(input.charAt(i++));enc3 = this._keyStr.indexOf(input.charAt(i++));enc4 = this._keyStr.indexOf(input.charAt(i++));chr1 = (enc1 << 2) | (enc2 >> 4);chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);chr3 = ((enc3 & 3) << 6) | enc4;output = output + String.fromCharCode(chr1);if (enc3 != 64){output = output + String.fromCharCode(chr2);}if (enc4 != 64){output = output + String.fromCharCode(chr3);}} // Whendoutput = Base64._utf8_decode(output);return output;} // End Function decode// private method for UTF-8 encoding,_utf8_encode: function (string){var utftext = "";string = String(string).replace(/\r\n/g, "\n");for (var n = 0; n < string.length; n++){var c = string.charCodeAt(n);if (c < 128){utftext += String.fromCharCode(c);}else if ((c > 127) && (c < 2048)){utftext += String.fromCharCode((c >> 6) | 192);utftext += String.fromCharCode((c & 63) | 128);}else{utftext += String.fromCharCode((c >> 12) | 224);utftext += String.fromCharCode(((c >> 6) & 63) | 128);utftext += String.fromCharCode((c & 63) | 128);}} // Next nreturn utftext;} // End Function _utf8_encode// private method for UTF-8 decoding,_utf8_decode: function (utftext){var string = "";var i = 0;var c, c1, c2, c3;c = c1 = c2 = 0;while (i < utftext.length){c = utftext.charCodeAt(i);if (c < 128){string += String.fromCharCode(c);i++;}else if ((c > 191) && (c < 224)){c2 = utftext.charCodeAt(i + 1);string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));i += 2;}else{c2 = utftext.charCodeAt(i + 1);c3 = utftext.charCodeAt(i + 2);string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));i += 3;}} // Whendreturn string;} // End Function _utf8_decode};function get_class(data) {
//    var class_name = _0x124e6b(btoa(data["key"] + data["value"])["replace"](/=/g, ""));var class_name = _0x124e6b(Base64.encode(data["key"] + data["value"])["replace"](/=/g, ""));// btoa//    var s = new Buffer.from(data["key"] + data["value"], "binary").toString("base64")//    console.log(s)//    var class_name = _0x124e6b(s["replace"](/=/g, ""));console.log('class_name -->>',class_name)return class_name
}data = {'status': '1', 'state': 'success', 'key': '1NrwivKFu3', 'value': 'w8125c9xlj', 'IV': 'qliuz', 'info': '<td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524162045.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-18px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-27px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-18px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-18px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524162045.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524859840.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524859840.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524859840.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524162045.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-18px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-18px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-27px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524162045.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524162045.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524362290.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524198401.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:27px"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-27px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-18px"><img src="https://img-blog.csdnimg.cn/2022010710524117763.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524610892.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524859840.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:-18px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"></td><td class="info"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524265568.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010710524536642.png" class="img_number 5f3ea590ab60c410b19492216448e6f5" style="left:18px"><img src="https://img-blog.csdnimg.cn/2022010710524281954.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:9px"><img src="https://img-blog.csdnimg.cn/2022010710524420066.png" class="img_number 9a8a609402dae813bb9c1cfc6cf9495a" style="left:-9px"></td>'}get_class(data)
# -*- encoding=utf-8 -*-
from operator import itemgetter
import requests
from parsel import Selector
import execjs
import recookies = {'Hm_lvt_337e99a01a907a08d00bed4a1a52e35d': '1608776277,1609252702,1609295123,1609308428','sessionid': '8iaw2emkx9fedvjvq8sntsa7f986uy0n','no-alert': 'true','Hm_lpvt_337e99a01a907a08d00bed4a1a52e35d': '1609308998',
}headers = {'Connection': 'keep-alive','Pragma': 'no-cache','Cache-Control': 'no-cache','Accept': 'application/json, text/javascript, */*; q=0.01','X-Requested-With': 'XMLHttpRequest','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Origin': 'http://www.python-spider.com','Referer': 'http://www.python-spider.com/challenge/19','Accept-Language': 'zh-CN,zh;q=0.9',
}img_dict = {"iVBORw0KGgoAAAANSUhEUgAAABoAAAAjCAMAAAC94eqZAAAAAXNSR0IArs4c6QAAAN5QTFRF+fv9od/9+fvb6axkUAAA2fv9+frlAAAAAABQ+d+jAEedFFuhbgAAFgAAyY0wAABC7fv9AB48Vqblq14Au/D9AAAamdn9PFxv8bdyfsT9aLHw+fHF+fO7ABhyAHrF+fv1fjAA+fvISJ3biYl6+cWD+eO7AACDaEwoiVQgQCoYmUQAIGCrQBgAAABqwYE4yaub+dmbcKPToVQAoVwY+fvt0aNysWo4kaPFQAAA4fP94adYgQAAcGBAiS4AFkyDNoHFeImL+euzIHa7ueP9AC6DUKHbcImLKEBiAIHFyef90jE/4QAAAQNJREFUKM9jYIADNn0bTXZ2QXFzSwZUIG+qww4FgoYCyDJMZuxIQJsVSY8eSERU3EFZnRfEckLokwAJcHuCmKoaIEVSMBlFW5AM1BQmYyDHRQQqxQzkyMI4DNIKQC5UG5sRkK2EsBmkkgtiBicLOzu/GEJKhgfOl0CogpgiDBQQAjP5gCw5ZF/CBcCKXJGlrEDGgF2rhXARBKgABdTAvrIGsiSRpQws2Nl10RwEBSAnc8AZjAMuBXIhDik8/gKHhiTW0DBBBDRSGHLDA9oDa8jjiy901zsiAhVP2sCWopSQOSjpEKGQGZR67ZwRqVcIPc27u0HTvL0AMTkFGCQ48xeWXAkAP2Ubepd6ecoAAAAASUVORK5CYII=": 0,"iVBORw0KGgoAAAANSUhEUgAAABoAAAAjCAMAAAC94eqZAAAAAXNSR0IArs4c6QAAAF1QTFRFAAAAoVQAPAkAxYQ8+cWD+fvnGQAA+fv9AFSj4fv97fv9+eaz8cmHYJ3TgavTueP9ibvlIFSLFhgYACRQoXJIIGCjAAAg+evT6bd6qWRYcEAYcBgA2aNY2buD+fv1QCX7aQAAAGBJREFUKM/ty0kOgCAUA9CvCCg4z/P9j2lgYWLoTzwA3bUvJc2GPs0elBeQbkEcnYqjMiWGvEBavQCSQhEmu7u5D2kZ/WW6ApKJg7kyGaau0RrS0LoCaKuNxvQmUqR/9ACWThad7ZHt3QAAAABJRU5ErkJggg==": 1,"iVBORw0KGgoAAAANSUhEUgAAABoAAAAjCAMAAAC94eqZAAAAAXNSR0IArs4c6QAAARdQTFRF+fv92fv9NAAA+fv1+fvlAAAYAIHFAAAA8fv9FgAAAAA6oVQA+e3Fmdn9od79+fvN8bp3AABKACA6ABhY+fvbNnC3FlyfhUYY+eWrVJ3Xqd/9aK/bbFo8DDuDuXQNcLf1QIXFACRinVwYxYk8fTYA+c2Lwe39Fna7iS4ASERAYDANXB4AIAAA+fvt+d2j+fvFWKXggcPxAEib+e/QgRgAcJ2r2aNYiTYA0e/9gQAA6cGDsWo4wYE4KBhQKBgAqVwA+d2zmYmL2ZlIAABiiYmLSBgAyd/1qef9+ee7UGZ6wYEA6fv9kcXlueP9mXpqMI3NQERiiYl6IFSLWAAAuYlQ6dWzSI3N2a9qYAAAyY1I6cGL8c2LYKvt2JmUjQAAAR1JREFUKM910mlbwjAMAOAhg3KfgqKgXCqIiAh4AIrgCXgrKOL//x0mkY7uWZZPXd+maddo2iKck+fypRCx19adZo6ffWHE+5MC1YJXKOHbNMTZpZnY8OYtfUBWlxTBnNwjjfVPxPjGv4RP4SOzKxe2V+Bzz2MkRYPLygOg63uqtLVcRbH+DRPbtF9Jjhah+2EiRYs+YL+QeskRkBsHgX66fKGS3gN60bioNYGOWMIT+4Kc0CmOHRyd4L/55eSwYpd0ha8T5SoFiiAu7ngPJFmPTR1W5rcoU0a+8KFcKatUZ15zWxix2qH2qFulkUfJhZjrrAlTfyg5JMkzpg7tluD+W4FkzMgO3ifpsHs62a5MkiXcskN5og7lqXZuQ38KGhzS8FaWQgAAAABJRU5ErkJggg==": 2,"iVBORw0KGgoAAAANSUhEUgAAABoAAAAjCAMAAAC94eqZAAAAAXNSR0IArs4c6QAAAWJQTFRF+fv96fv9mdn9+euz+fvt3aJQ+fvbAAAA+fv12fv9IAAA+fvIXabbvOH4rOn9iYmL9MWAwfv9AABlMAAAAAA4hMn9NgAAgQAA8d+7odHtQDAcuXINwYEYaHqLG1ajiVAcaK/t+c2Lve39+fPp+e/JAAAgADaDSA0AACRMFkyHpV4NAAAYTKDgoVQAXB4AAC6HaAAAwfH9iXZmIDZQFgAAAABEAACDeGZQDGaz4cWTAEByiYl6yev9+d+jUCQAIEhymUQA4dW7cKPTgUAYuYlQABiD+d2jmUgAMInNmYmLABhYgcX1QERi+fO7+evTQEQ4ABhy6cGDcJGj6cGLAHK76atiyfv9wYE4ADZqAGCrqZ2LaCpAaFQ48fv9mWAgcAAA4cWj2cW7UGZ6sWYA0aNyUDYgNo3NyY1IiWZQ0Z1IoYFQ+fvlAEibicHtIFSLqd/9ABgosdX1iS4AAESbQDZQaK/blFkJ4AAAAU5JREFUKM+Fk2VDAkEQhomTAUUBBQUMDKQUEQsbu7u7u/P/O3t7t7ssq86nmXvu3smzWP4359ldGOBtaaNcJpujYNpLAXTe9gA3/7eA7nXSXe/pChOnzc2ItxrjvZDuD3Sgv/BqEMcsRrGsEc0QNmcETVWoH2Aa24imfdSvQ3/fypC9E6DXRvXGEDXymspqMKYizvOD3JeNo+VTrDGgnAtJXVmhIo406vVbFWTlBFgVorWMP5QiaXXLs681Zph4lj95TFMy+F6kpvejWz4kIfvhhWfoiOQqTkYrmSLQv6hseZ2sKJNVshIoHKpYzweirWMlI1v6dP2q2Of7GwXnc6sNLhlldsg9gbQf7dJcC7kFaBfQSNx8oKXQW2vmu0xxGS9uHFg2bZd0fCMuKkn/gmCEBE/mi9FJMG/+WvdiXD4aAdGSw2K9V3EGEhP0nH4AdB0nRQhEwa4AAAAASUVORK5CYII=": 3,"iVBORw0KGgoAAAANSUhEUgAAABoAAAAlCAMAAABruAmEAAAAAXNSR0IArs4c6QAAAIFQTFRF+fv9hcb9+fDH+fvzQERAAAAYABhYAAAAAIHF4aNQ98WD5Pv9Fl+uXRgAFgAAXaro+fvbNAAAtWwY2aJQyYk4eC4A+duf8bx2oVgNgTYAFlyj3aVY2fv9+cuPWKPbod39qd/9gXpQQCoYwYE4+d+rSAAA+eezsef9ACQ4ABhqmUgAvyuUPQAAAKVJREFUKM/V0skSgjAQRdGGiC2oiBM4ASo4/v8H2smCIbxUWe58q1RO1V010ffzt8wTKGrFLspiF93n7CCTw3SMXVSbHKJkxzy+QJJcUKwRpZI7nEJAJlcSIikFBSFKbzqHKHmbHKKN5BaEKF8yz6aI/L3kzgRINbkBRU3Opk7OIlW1OYuyTq5P+oReD0IUMZ73K+Wj3q7y+9QPb3AFofN6/5vafQB+Gg2W8rL+LAAAAABJRU5ErkJggg==": 4,"iVBORw0KGgoAAAANSUhEUgAAABkAAAAlCAMAAACAj7KHAAAAAXNSR0IArs4c6QAAAS9QTFRF+fv9+d2h+fvt4fb9od/9AABQ+fv1AAAAAAAYGAAAcGBAADCI9Lt1wXwAsWYA+fnCdQAAACA6AAA9+erF+fvN98eDAEibUwAAiYmL8fv9gRgAQGByye39PwAAyd/1AABYWBgAFkyL6fv9DHK7ABgodLz5+eGryfv9NiQAVKHbRBgA3aRU+fnleLft7evtwe/9UCQA+fvbhTIAqeP9aK/tAAAgAABI8c2LmYmLaFRAqZ164cWjQFRqoVAAKBgAQHqz8d/NQDYg2ZlIuXIY4dXF6cGD+euzoVQAibvl4buLeImLaAAAeJ2rsWYYuXIA2fv9wZFiKFiLNlRq2Z1IWJHNQEQ4ueP9wauDQJnbAGqjyY0wIC56mdn9kaPFgcn9FmaziVgomUQAAFSjiWZQACRQopPdIwAAATlJREFUKM+Fk2dbwjAUhVtHb1pALXVUUVTEhQxxbwTFhXvv/f9/g8mlLenjzdN8SvI2NyfnnmpaxOjugfDo7PCIPqAicVCRZxVp6+KLSUpA7xDA6CJFpriA2DRFhICJQYrMcTJLAeMcgL2TAhZUAg4aQoCx+VMFsFNv7S3SZwI8Pcz7r8zeZmQBoTE+7JGE923Kda0ZnMZKCMrbYvF7hA8yjrHqRyZoTlBAc7hSYOiis2bdvZRagvQxjvrJDtc4SZIEO0yS8peKYCPpKCWiSbG4n5ZB/rBJRAjg8V8u/fu+JevRe3zPDScrr5K0M98DfSQckDg/wpbQ3j1hYZCQ1Zw4ctGMm7CQVfCq/KUpx7ou6sHy9Ylr7YhZshCUrufkZtsFSajzafr77Oo+7MjuxjrPgL11mo76Qf8AIxAgoP2MorAAAAAASUVORK5CYII=": 5,"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wgARCAAkABkDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAABgcABAUD/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAC/9oADAMBAAIQAxAAAAHSoVr5cTrC3dZVbRADIQpirpi1xG5J3rkjn//EABsQAAIDAQEBAAAAAAAAAAAAAAIEAQMFAAYV/9oACAEBAAEFAtbQspKMA7Bz2mFNDq7a59CfoB5NtPQnqloZ34GBFwIz93n4LO2QdVOqT+tudZUF1c+fSk11qVa+/8QAGREAAgMBAAAAAAAAAAAAAAAAAAEQMTJB/9oACAEDAQE/AXcPQ7OR/8QAGREAAgMBAAAAAAAAAAAAAAAAAAEQMTJB/9oACAECAQE/AVULIsnY/8QAKhAAAQIEAgkFAAAAAAAAAAAAAQIDAAQREhATFCIxMjNBUZGhISNScsH/2gAIAQEABj8CRKy3Hc8Re/Nqzu9I0CaVeDuqOEw+8oBDQPqe0VblXFN/ImkZiEJzU7bk6wwcac3cxRI6xaAAOkMuM6qV0qB5wRO0q2vb+xmB9u37Qgt8FrngUOJCknkYr7gHQKixlASMP//EACIQAQABBAICAgMAAAAAAAAAAAERACExURBxYZFBgaHB0f/aAAgBAQABPyEOZ+QuhxHmg6KvMQXay0mbYMmNX08eMSoRFRKdN/5DSOAiAezXHpqmCsUUGSAFgoRJKwrsDgiNWHUD91hXZVBHeqiKsK7gzP28Zs7BUSvWn5Jrau4y9vH/2gAMAwEAAgADAAAAEMyXS4If/8QAHBEAAgICAwAAAAAAAAAAAAAAAAERMUFRIYGR/9oACAEDAQE/EJJlhcd5FEuKJtnui2NL0yFR/8QAHhEAAQQBBQAAAAAAAAAAAAAAAAERMUEhUWFxgZH/2gAIAQIBAT8QYxbXPVGWR5I00nkiffyigsn/xAAgEAEAAgAHAQEBAAAAAAAAAAABESEAEDFBUWGBcZGh/9oACAEBAAE/EE0QKhJADUmbdA9Dg5SuI/QVhSdSFJJgrQqHRrnJ4wIlUkG7bAWriAg6MHgH6mCLqgoNJaQrCNTtOQGOpSQB8LHmILxpHAAqMDLq0WSBslxy5DrusbvqRTnzAnVAz1CiunBT1kCCy6SQbxeRTZieHvp71MXTSYr8yn9YnwDNyvKWv3L/2Q==": 6,"iVBORw0KGgoAAAANSUhEUgAAABkAAAAlCAMAAACAj7KHAAAAAXNSR0IArs4c6QAAAK5QTFRF+fv96fv9+fv1MozNgcX9ufP9TAAAAAAA+fvloVQAod39FgAAMwAASJ3bABh6AA1UAGOv+ffNwX4wfQAAaAAA+fHADHS7gTYAwYEN2ZtIue/9+fvF+dmb8fv98bx2AAByAAA0UKLgABhycLf1+euzAAAY4addFmaz+d+j9cmDwfP9mUQA+fvbic39AABI2fv9AC6DaK/tuXYYeBgAAESb4aNQgcX1yYkwWKPbiS4A4f6kdQAAALNJREFUKM+tk8cSgkAQRAdFV8GEATNiQjHn8P8/5oBHuw9UOddXHWa2VoROqWzQ2P8kdQcER64x4QOAuGLM8gVAp6teK+sX5JoKZgMgCRKvMwAe85I+K7wuKslLlvhRIqkiyUXBacNSkESeCmoFdJcrKSaRgoPDXr1hscpzIYeB+amZPwZk0WZmgYIJMpMea7bbKpkKiQn3iMQui7mr2e3ICsBt0j3hnb03qzZsfT9GFoLmA5nrDvr/6ZwVAAAAAElFTkSuQmCC": 7,"iVBORw0KGgoAAAANSUhEUgAAABoAAAAlCAMAAABruAmEAAAAAXNSR0IArs4c6QAAAVBQTFRF+fv96fv9AAA1+d+jTQAA+frb2fv9AAAANAAAFgAA+fv1IAAAG16l4aNQw/v9+frtAAAawe79AABQic39iYmL5Pn9qWAA8ceDUGZ6ADaDAFKjFkBymUUAAEab8fv9eLv1AACDACQ4DHK7+cmDZKXXaAAAWEIwaDsc6dOvufP9tYlQUKLgM3zAJFyTDCdE8dWf+fnl6cGHoc3tcKPTwYE4WBgAdLfx9cF6wYEAod/9eRgAZK3t8bdyzfH9+dmbUCQAoVwY2aNYAIHF2ff9iYlyABhA+euzAC6L+fvN+fPlgcX1FoHF2a9qAC56oVQAiYl6IDZA4buL6a9q8d+7MI3NueP9+e+7uZVimcXlgVQgFkCDAAB6mXpqmcXbAABIgUwYmbPTmdn9aFQ4YHKLyaNqod39ABh6oWAg8ePTAAByuXYY2Z1IyY1IFmazADZqAEqese4bOQAAAWpJREFUKM+1UldbAjEQPEUJnHieCopiF1EUBFTAjgXsvffe2/9/dLPJJXt+92qedjOb3cnMGsZ/naGrRB1je9G7qj9AZpA5pzLuArcCjJzQskZaEemNhsviccjvICfTkFbHsc/hLcdGHOiTIxsyqV2A7CUpkw5IUl1O4XwNpAURrwzAo2Y1OLsD0JGIfVDWNKVJTQK0RKBnT2iNE5xRCI6WFM0PiDvVV2aDjN3cU04pKY8vD0mf4rsIhSx2HTGMt2HQmLU16sm5EtUwPUf1zZ4qgX/G3Gadk0ejxBXzK4hXj+FyAqMLZ5Y5wdOY6LPu4oFuaYtyPP3Gng0tvIyQ4l8RcnMJ7W7CCZXaRGEguLQo33pHOB60RyjUDx17LE9IGYiQ3/NVEaD3JIUO4GbVkqtBnJS/QVsw2iY2FAPqN0INtcyZvDZdangmuj3xQrV7uLC487sPXFxmx7U0r9RkVilQvvt6A+z0sbj7Bdh2KpzcpBFrAAAAAElFTkSuQmCC": 8,"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wgARCAAkABoDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAQHBgEF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAF5VahGX1E9oVmH6/pYllWn9APImoS1VwNZ/8QAHhAAAQUAAgMAAAAAAAAAAAAAAwABAgQFBhESExX/2gAIAQEAAQUC1NMgTNn6/WbpTMVUW8+RrQl6uRLSpWAXIb05tYCdtNF05g1nk0Yhf6e+r1ENwVcDHt1qwqgl/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAExEUH/2gAIAQMBAT8Bdw6Ojo4I/8QAGREAAwEBAQAAAAAAAAAAAAAAAAExETJB/9oACAECAQE/AVNPNFBcioz/xAAoEAACAAMFCAMAAAAAAAAAAAABAgADBBAREhMxFCEiI0FCUVIzobH/2gAIAQEABj8CFLSi+cdT4jM23meuI3Q1LVLhqF+7J5fUYrrJDrrw32CvowSe5RGBaNzO9QYp3qTzprBio7d9gppqqso6PGIkADrGcvwyetnNG9dGGsbM7vl3+Yy5K3D9s//EACIQAQACAQQCAgMAAAAAAAAAAAERIQAQMUFxUZFhsaHB0f/aAAgBAQABPyGmc6JtsB5wl83Tb+M6NFiv70IbLufcfWg1xbfyp9aTFHIJZ65HOFFWCfU4Wl4cFA0hT3JM2V+axoMpU0Gbpux029t6XdiVsDDcGgBkbzd8ry6f/9oADAMBAAIAAwAAABDAB0qIH//EABsRAAICAwEAAAAAAAAAAAAAAAABITERQZGB/9oACAEDAQE/EIPooGsMjoW+dNpQ/8QAHREAAgEEAwAAAAAAAAAAAAAAAAEhETFBkWFxgf/aAAgBAgEBPxBI5OROqdlohwLHusGMuP/EACEQAQACAQMFAQEAAAAAAAAAAAERITEAEEFRYXGBkaHh/9oACAEBAAE/EKQ8CW8gpWboI9TEwfMERf1HfRd5dkAyrAM1SWbEchQwgEe7tEzBLlKz8GwUWFZAhYWCkLM9zrr8u4ijxHvnS+oBqCFlwH9bdhHcmBFhZgIqrUf5njqFeNPACDGgk/tUdjZ8BMBRlJREeiOoiPYJ4ET80OA2VZ6g5dv/2Q==": 9
}with open('./ob解混淆js/扣JS代码.js', encoding='utf-8') as f:Str_code = f.read()
js = execjs.compile(Str_code)def get_imgnum(Count,i):data = {'page': i}response = requests.post('http://www.python-spider.com/api/challenge19', headers=headers, cookies=cookies, data=data,verify=False)res_josn = response.json()print('res_josn  ',res_josn)result = js.call('get_class', res_josn)res_info = res_josn['info']sel = Selector(text=res_info)td_infos = sel.xpath('//td[@class="info"]')print('td_infos ',len(td_infos),td_infos)for td_info in td_infos:# print(result)# print('./img[@class!="%s"]/@src'%(result))# Num_imgs = td_info.xpath('./img[@class!="%s"]/@src'%(result)).getall()# Num_imgs_not = td_info.xpath('./img').getall()Num_imgs = td_info.xpath('./img[not(contains(@class,"%s"))]' % (result)).getall()# print('Num_imgs_not -->', result, len(Num_imgs_not))# print('Num_imgs -->', len(Num_imgs))left_nums = []num_s = []for Num_img in Num_imgs:left_num = re.findall('(?<=style="left:).+?(?=px")', Num_img)[0]img_num = re.findall('(?<=data:image/png;base64,).+?(?=")', Num_img)[0]# print(img_num)# print(left_num)left_nums.append(int(left_num) / 9)num_s.append(str(img_dict[img_num]))print()print()print(len(left_nums), left_nums)print(len(num_s), num_s)tem = num_s.copy()for index, left_num in enumerate(left_nums):# 不为 0,才有 偏移量if left_num:if left_num > 0:num_s[index + int(left_num)] = tem[index]else:num_s[index - abs(int(left_num))] = tem[index]ImgN = int(''.join(num_s))print('ImgN ',ImgN,type(ImgN))Count += ImgNreturn CountCount = 0
for i in range(1,101):Count = get_imgnum(Count,i)print('Count -->>',Count)

总结 :

这一题俩个难点,

第一个无限debug:

无限debugg 通过fiddler修改返回的相应数据,

浏览器的 Overides 把请求的数据保存到 本地,相同的请求就会先去返回本地的文件

第二个就是 css 反爬 .css反爬,有俩个注意的点,

第一个是会隐藏一些多余的图片,通过JS方法获取class的值修改css样式,通过分析JS获取class的值,过滤掉隐藏的图片

第二个是通过 css的样式对图片进行偏移,扰乱正确的顺序,这里要分析偏移量的逻辑,还原正确的顺序就可以得到正确的数据了

猿人学题库十九题——css加密-雪碧图/数据干扰等——地毯式采坑学习相关推荐

  1. 猿人学试题(非常简单js混淆、雪碧图、样式干扰 css加密、js混淆源码乱码、js混淆动态cookie、访问逻辑)

    学习目标: python学习-猿人学试题 学习内容: 1.非常简单js混淆 2.雪碧图.样式干扰 css加密 3.js混淆源码乱码 4.js混淆动态cookie 5.访问逻辑 1.非常简单js混淆 试 ...

  2. 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑

    猿人学题库十六题--js加密_表情包+sojson6.0 1.  首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...

  3. CSS 关于雪碧图预处理和后处理方案的讨论

    广告:SF 里弄了个 CSS 小圈子,欢迎一起来讨论问题 前端小图标处理方案众多,本文主要介绍基于雪碧图的处理方案,分析雪碧图的预处理和后处理模式的得与失,以及在项目中通常会遇到的问题以及解决方案.其 ...

  4. JAVA自动生成雪碧图sprites和样式CSS文件(包含原始图标CSS、雪碧图CSS)

    在项目的开发过程中,如果一个页面有很多的小图标展现.浏览器展示页面时会向后台服务器发送很多的请求获取对应的图片,这样既浪费资源,也使得页面的加载变得很慢,影响客户的体验.此时我们可以采用将这些小图标放 ...

  5. CSS Sprites的原理(图片整合技术)(CSS精灵)/雪碧图

    CSS Sprites的原理(图片整合技术)(CSS精灵)/雪碧图   一.将导航背景图片,按钮背景图片等有规则的合并成一张背景图,即将多张图片合为一张整图,然后用background-positio ...

  6. CSS Sprite雪碧图详解

    CSS雪碧图,即CSS Sprite,也有人叫它CSS精灵图,是一种图像拼合技术.该方法是将多个小图标和背景图像合并到一张图片上,然后利用CSS的背景定位来显示需要显示的图片部分. 雪碧图的使用场景 ...

  7. css sprit雪碧图制作,使用教程

    写在前面: 在网页制作中,雪碧图也是前端攻城狮必须掌握的一项小技能.百度词条对雪碧图的解释是:CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景 ...

  8. 在html中雪碧图的坐标怎么看,详解CSS Sprite雪碧图的应用

    CSS雪碧图,即CSS Sprite,也有人叫它CSS精灵图,是一种图像拼合技术.该方法是将多个小图标和背景图像合并到一张图片上,然后利用CSS的背景定位来显示需要显示的图片部分. 雪碧图的使用场景 ...

  9. css 雪碧图计算方式,前端必备 CSS Sprites雪碧图生成工具

    [摘要] CSS Sprites又称css精灵或者谐音css雪碧,是一种网页图片应用处理方式,今天为大家分享一个一键生成css雪碧图片的工具,复杂的事情简单化,提高开发效率. CSS Sprites又 ...

最新文章

  1. 从头开始学习Adobe Photoshop CC图像编辑
  2. 【CSS3教程】CSS3基础常用技巧实例集合
  3. 【Obj-C】学习杂记-1
  4. PE学习(三)第三章:PE文件头
  5. gpio复用 海思_实现海思平台GPIO驱动
  6. P5591 小猪佩奇学数学(单位根反演)
  7. 支付宝生成RSA密钥,上传应用公钥的完整流程
  8. 2.2.1.处理机调度的概念,层次
  9. UIScrollview 技巧
  10. (十九)ArcGIS JS 加载WMS服务(超图示例)
  11. linux安装opencv让输入密码,linux下安装opencv的全过程(对初学者或者linux不熟悉的童鞋,非常适合)...
  12. MCollective架构篇1-MCollective架构的引入
  13. Ubuntu搭建Anki服务器
  14. android学习-1
  15. 基于比较的排序算法集
  16. C/S系统实现两数求和(非阻塞+epoll+心跳包检测用户在线状况+滚动日志+配置文件.)...
  17. 2022年浙江省电子设计大赛C题小车跟随系统
  18. Redis详细使用文档记录
  19. IPC技术与评分卡技术区别
  20. 复合辛普森公式求解定积分 matlab

热门文章

  1. 电脑桌面云便签软件忘记锁屏密码怎么重新设置?
  2. 微软黑屏属于***行为
  3. 如何用PPT做九宫格图片?来了解一下吧
  4. 选择结构【C语言程序设计】
  5. Android自定义Button样式(自定义样式不生效怎么办)
  6. 谈谈 WebAuthn
  7. 在视频中实时地显示帧率
  8. 自制ST-LINK V2 ,ST-LINK 固件
  9. 常见数字芯片功能描述总结
  10. 【iOS面试粮食】UI视图—iOS事件的传递机制