python js反混淆 eval(function(p,a,c,k,e,d){

前言

在Python爬取资源的时候需要分析网站,有时候关键部分的JS会被混淆,所以不得不去解密这段JS去获取数据,这里推荐两个JS在线解密工具。

https://www.sojson.com/jsjiemi.html #很强的JS反混淆解密工具

https://www.jb51.net/article/9705.htm #带原理代码

原理

拿到一段混淆的JavaScript

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('q p=["5://2.1.0/4-6-9-8/o~7.3","5://2.1.0/4-6-9-8/m~7.3","5://2.1.0/4-6-9-8/n~7.3","5://2.1.0/4-6-9-8/r~7.3","5://2.1.0/4-6-9-8/l~7.3","5://2.1.0/4-6-9-8/w~7.3","5://2.1.0/4-6-9-8/v~7.3","5://2.1.0/4-6-9-8/u~7.3","5://2.1.0/4-6-9-8/t~7.3","5://2.1.0/4-6-9-8/x~7.3","5://2.1.0/4-6-9-8/h~7.3","5://2.1.0/4-6-9-8/c~7.3","5://2.1.0/4-6-9-8/b~7.3","5://2.1.0/4-6-9-8/e~7.3","5://2.1.0/4-6-9-8/a~7.3","5://2.1.0/4-6-9-8/d~7.3","5://2.1.0/4-6-9-8/k~7.3","5://2.1.0/4-6-9-8/f~7.3","5://2.1.0/4-6-9-8/j~7.3","5://2.1.0/4-6-9-8/i~7.3","5://2.1.0/4-6-9-8/g~7.3","5://2.1.0/4-6-9-8/s~7.3","5://2.1.0/4-6-9-8/W~7.3","5://2.1.0/4-6-9-8/P~7.3","5://2.1.0/4-6-9-8/O~7.3","5://2.1.0/4-6-9-8/N~7.3","5://2.1.0/4-6-9-8/M~7.3","5://2.1.0/4-6-9-8/y~7.3","5://2.1.0/4-6-9-8/Q~7.3","5://2.1.0/4-6-9-8/R~7.3","5://2.1.0/4-6-9-8/V~7.3","5://2.1.0/4-6-9-8/U~7.3","5://2.1.0/4-6-9-8/T~7.3","5://2.1.0/4-6-9-8/S~7.3","5://2.1.0/4-6-9-8/L~7.3","5://2.1.0/4-6-9-8/K~7.3","5://2.1.0/4-6-9-8/D~7.3","5://2.1.0/4-6-9-8/C~7.3","5://2.1.0/4-6-9-8/B~7.3","5://2.1.0/4-6-9-8/z~7.3","5://2.1.0/4-6-9-8/A~7.3","5://2.1.0/4-6-9-8/E~7.3","5://2.1.0/4-6-9-8/F~7.3","5://2.1.0/4-6-9-8/J~7.3","5://2.1.0/4-6-9-8/I~7.3","5://2.1.0/4-6-9-8/H~7.3","5://2.1.0/4-6-9-8/G~7.3"]',59,59,'com|dcarimg|p3|jpg|tos|https|cn|noop|0015|avt|811716e5848751f1dae4f43f452975cd|ac1da9e8dcf023ae40eb45195cab20a1|fcae6a61ed85f85031a7829c9b519e61|f7aaa057505d7fdf86bb8e245b1bcd6a|4c77737996ab63f6db336aa073d3227f|3e28866f375affe69d7ed45e1014b414|647872d796cdb80011fe54ba30158f86|1c267424577ba7ca58e2ca4f9972e59b|24177a9f95362d39bf3d83b9bbb51851|018189c7f19dcde8784898368e87224b|993d09a49f7e9ca64f49fdc54c535531|f13a6fcd9427162329b9a55a1d076968|988aed36201086727dbdce71830020a3|f484bfd1aab868bfb1ad94e8e8d64da5|25289976c198b253271c32cfc8f6c5cd|newImgs|var|ba92c1e92141863363f480377dd3260d|66a07a2fdb465192a8db4c2c5392d0a9|f0818bb47337ba55f34df0baeed1f5cc|9355a4db8df02389c4b403ae30fcf274|8048bdbe78ec41d8d3e1ff55d65de01c|26bcc798fbdc2722d9287af869b870b2|9e41a0f6c3c53e71a0cac75cf0d99646|12ed9a9e36d363bd0093334db44ef006|543aeca44254e62a41cdcd2b6e5a5de5|2bbb7c6f1ce099f6908ed45cd5d0e252|9a838fe8cd361123fa35a8c823521bec|b10634e98282a88c93e407cd3479a8c9|6c9bc152695491ef0c1b22bf6e47de2e|875475b9019046940f104818b8e1a0d0|f5fc612de0976995e05b123e35daab32|caff83ebd1266b1548562867b19c4914|702288d93b39e913e1502af2111d5292|24a4a4d935db4fe7e3d9e21f474df902|fd43e76331946eb998a663a5b407dcbe|f10e6797cecc0a5cf480fd17bc0d35c3|4ff3e1adbf079851039e03654980166b|fc62b1ee314ff71e3093dcdc150c03a8|5442a7e61b486de6003ab3fca5c44ac9|c0d22ca08487eed65f2acd3ad712b87c|4067412f2411aab6dcfe30fed69e35a8|c61f4fd9163cd6a58c97530d61d233b1|a8f6298664ec1d5203acd1040746f62c|10439132723f4220eee6ab4c4fc56f4e|ffbc3806dd0bd6f2c754bbda42b6cd68|041f97ded5acefcf3ee41cb2598e0501|ee709d458d06c892c4b4960b0228d3bf|cc4afe36aad5666a2df254d116661fcb'.split('|'),0,{}))

我们把“eval”去掉丢到chrome F12 Console里,得到

所以我们的目标就是使用python来运行这段js

实现

这里我们使用js2py这个包

import js2py

if __name__ == '__main__':
    encrypted=r"""(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('q p=["5://2.1.0/4-6-9-8/o~7.3","5://2.1.0/4-6-9-8/m~7.3","5://2.1.0/4-6-9-8/n~7.3","5://2.1.0/4-6-9-8/r~7.3","5://2.1.0/4-6-9-8/l~7.3","5://2.1.0/4-6-9-8/w~7.3","5://2.1.0/4-6-9-8/v~7.3","5://2.1.0/4-6-9-8/u~7.3","5://2.1.0/4-6-9-8/t~7.3","5://2.1.0/4-6-9-8/x~7.3","5://2.1.0/4-6-9-8/h~7.3","5://2.1.0/4-6-9-8/c~7.3","5://2.1.0/4-6-9-8/b~7.3","5://2.1.0/4-6-9-8/e~7.3","5://2.1.0/4-6-9-8/a~7.3","5://2.1.0/4-6-9-8/d~7.3","5://2.1.0/4-6-9-8/k~7.3","5://2.1.0/4-6-9-8/f~7.3","5://2.1.0/4-6-9-8/j~7.3","5://2.1.0/4-6-9-8/i~7.3","5://2.1.0/4-6-9-8/g~7.3","5://2.1.0/4-6-9-8/s~7.3","5://2.1.0/4-6-9-8/W~7.3","5://2.1.0/4-6-9-8/P~7.3","5://2.1.0/4-6-9-8/O~7.3","5://2.1.0/4-6-9-8/N~7.3","5://2.1.0/4-6-9-8/M~7.3","5://2.1.0/4-6-9-8/y~7.3","5://2.1.0/4-6-9-8/Q~7.3","5://2.1.0/4-6-9-8/R~7.3","5://2.1.0/4-6-9-8/V~7.3","5://2.1.0/4-6-9-8/U~7.3","5://2.1.0/4-6-9-8/T~7.3","5://2.1.0/4-6-9-8/S~7.3","5://2.1.0/4-6-9-8/L~7.3","5://2.1.0/4-6-9-8/K~7.3","5://2.1.0/4-6-9-8/D~7.3","5://2.1.0/4-6-9-8/C~7.3","5://2.1.0/4-6-9-8/B~7.3","5://2.1.0/4-6-9-8/z~7.3","5://2.1.0/4-6-9-8/A~7.3","5://2.1.0/4-6-9-8/E~7.3","5://2.1.0/4-6-9-8/F~7.3","5://2.1.0/4-6-9-8/J~7.3","5://2.1.0/4-6-9-8/I~7.3","5://2.1.0/4-6-9-8/H~7.3","5://2.1.0/4-6-9-8/G~7.3"]',59,59,'com|dcarimg|p3|jpg|tos|https|cn|noop|0015|avt|811716e5848751f1dae4f43f452975cd|ac1da9e8dcf023ae40eb45195cab20a1|fcae6a61ed85f85031a7829c9b519e61|f7aaa057505d7fdf86bb8e245b1bcd6a|4c77737996ab63f6db336aa073d3227f|3e28866f375affe69d7ed45e1014b414|647872d796cdb80011fe54ba30158f86|1c267424577ba7ca58e2ca4f9972e59b|24177a9f95362d39bf3d83b9bbb51851|018189c7f19dcde8784898368e87224b|993d09a49f7e9ca64f49fdc54c535531|f13a6fcd9427162329b9a55a1d076968|988aed36201086727dbdce71830020a3|f484bfd1aab868bfb1ad94e8e8d64da5|25289976c198b253271c32cfc8f6c5cd|newImgs|var|ba92c1e92141863363f480377dd3260d|66a07a2fdb465192a8db4c2c5392d0a9|f0818bb47337ba55f34df0baeed1f5cc|9355a4db8df02389c4b403ae30fcf274|8048bdbe78ec41d8d3e1ff55d65de01c|26bcc798fbdc2722d9287af869b870b2|9e41a0f6c3c53e71a0cac75cf0d99646|12ed9a9e36d363bd0093334db44ef006|543aeca44254e62a41cdcd2b6e5a5de5|2bbb7c6f1ce099f6908ed45cd5d0e252|9a838fe8cd361123fa35a8c823521bec|b10634e98282a88c93e407cd3479a8c9|6c9bc152695491ef0c1b22bf6e47de2e|875475b9019046940f104818b8e1a0d0|f5fc612de0976995e05b123e35daab32|caff83ebd1266b1548562867b19c4914|702288d93b39e913e1502af2111d5292|24a4a4d935db4fe7e3d9e21f474df902|fd43e76331946eb998a663a5b407dcbe|f10e6797cecc0a5cf480fd17bc0d35c3|4ff3e1adbf079851039e03654980166b|fc62b1ee314ff71e3093dcdc150c03a8|5442a7e61b486de6003ab3fca5c44ac9|c0d22ca08487eed65f2acd3ad712b87c|4067412f2411aab6dcfe30fed69e35a8|c61f4fd9163cd6a58c97530d61d233b1|a8f6298664ec1d5203acd1040746f62c|10439132723f4220eee6ab4c4fc56f4e|ffbc3806dd0bd6f2c754bbda42b6cd68|041f97ded5acefcf3ee41cb2598e0501|ee709d458d06c892c4b4960b0228d3bf|cc4afe36aad5666a2df254d116661fcb'.split('|'),0,{}))"""
    print(js2py.eval_js(encrypted))

运行结果

var newImgs=["https://p3.dcarimg.com/tos-cn-avt-0015/25289976c198b253271c32cfc8f6c5cd~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/988aed36201086727dbdce71830020a3~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f484bfd1aab868bfb1ad94e8e8d64da5~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/ba92c1e92141863363f480377dd3260d~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f13a6fcd9427162329b9a55a1d076968~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/26bcc798fbdc2722d9287af869b870b2~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/8048bdbe78ec41d8d3e1ff55d65de01c~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/9355a4db8df02389c4b403ae30fcf274~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f0818bb47337ba55f34df0baeed1f5cc~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/9e41a0f6c3c53e71a0cac75cf0d99646~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/1c267424577ba7ca58e2ca4f9972e59b~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/fcae6a61ed85f85031a7829c9b519e61~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/ac1da9e8dcf023ae40eb45195cab20a1~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/4c77737996ab63f6db336aa073d3227f~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/811716e5848751f1dae4f43f452975cd~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f7aaa057505d7fdf86bb8e245b1bcd6a~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/993d09a49f7e9ca64f49fdc54c535531~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/3e28866f375affe69d7ed45e1014b414~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/018189c7f19dcde8784898368e87224b~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/24177a9f95362d39bf3d83b9bbb51851~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/647872d796cdb80011fe54ba30158f86~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/66a07a2fdb465192a8db4c2c5392d0a9~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/cc4afe36aad5666a2df254d116661fcb~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/4067412f2411aab6dcfe30fed69e35a8~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/c0d22ca08487eed65f2acd3ad712b87c~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/5442a7e61b486de6003ab3fca5c44ac9~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/fc62b1ee314ff71e3093dcdc150c03a8~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/12ed9a9e36d363bd0093334db44ef006~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/c61f4fd9163cd6a58c97530d61d233b1~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/a8f6298664ec1d5203acd1040746f62c~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/ee709d458d06c892c4b4960b0228d3bf~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/041f97ded5acefcf3ee41cb2598e0501~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/ffbc3806dd0bd6f2c754bbda42b6cd68~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/10439132723f4220eee6ab4c4fc56f4e~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/4ff3e1adbf079851039e03654980166b~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f10e6797cecc0a5cf480fd17bc0d35c3~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/6c9bc152695491ef0c1b22bf6e47de2e~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/b10634e98282a88c93e407cd3479a8c9~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/9a838fe8cd361123fa35a8c823521bec~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/543aeca44254e62a41cdcd2b6e5a5de5~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/2bbb7c6f1ce099f6908ed45cd5d0e252~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/875475b9019046940f104818b8e1a0d0~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/f5fc612de0976995e05b123e35daab32~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/fd43e76331946eb998a663a5b407dcbe~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/24a4a4d935db4fe7e3d9e21f474df902~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/702288d93b39e913e1502af2111d5292~noop.jpg","https://p3.dcarimg.com/tos-cn-avt-0015/caff83ebd1266b1548562867b19c4914~noop.jpg"]

进程已结束,退出代码0

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值