凡科网地址:
https://i.fkw.com/

js代码调试阶段

凡科网搜搜pwd = 快速定位到记录

根据分析,只有这行代码有点可疑,进入该函数实现内部

进来之后,发现这个函数在一个闭包里面(小技巧,只需要将闭包中所有的代码全复制出来调试即可)

将代码全复制到调试工具中,调试成功

爬虫代码编写

fanke.py

import requests
import execjs
#实例化一个node对象
node=execjs.get()
#js源文件编译
ctx=node.compile(open('./fanke.js',encoding='utf-8').read())
#执行指定函数
password=123
funcName='md5("{0}")'.format(password)
pwd=ctx.eval(funcName)
print(pwd)

fanke.js

(function(g) {function o(u, z) {var w = (u & 65535) + (z & 65535),v = (u >> 16) + (z >> 16) + (w >> 16);return (v << 16) | (w & 65535)
}
function s(u, v) {return (u << v) | (u >>> (32 - v))
}
function c(A, w, v, u, z, y) {return o(s(o(o(w, A), o(u, y)), z), v)
}
function b(w, v, B, A, u, z, y) {return c((v & B) | ((~v) & A), w, v, u, z, y)
}
function i(w, v, B, A, u, z, y) {return c((v & A) | (B & (~A)), w, v, u, z, y)
}
function n(w, v, B, A, u, z, y) {return c(v ^ B ^ A, w, v, u, z, y)
}
function a(w, v, B, A, u, z, y) {return c(B ^ (v | (~A)), w, v, u, z, y)
}
function d(F, A) {F[A >> 5] |= 128 << ((A) % 32);F[(((A + 64) >>> 9) << 4) + 14] = A;var w, z, y, v, u, E = 1732584193,D = -271733879,C = -1732584194,B = 271733878;for (w = 0; w < F.length; w += 16) {z = E;y = D;v = C;u = B;E = b(E, D, C, B, F[w], 7, -680876936);B = b(B, E, D, C, F[w + 1], 12, -389564586);C = b(C, B, E, D, F[w + 2], 17, 606105819);D = b(D, C, B, E, F[w + 3], 22, -1044525330);E = b(E, D, C, B, F[w + 4], 7, -176418897);B = b(B, E, D, C, F[w + 5], 12, 1200080426);C = b(C, B, E, D, F[w + 6], 17, -1473231341);D = b(D, C, B, E, F[w + 7], 22, -45705983);E = b(E, D, C, B, F[w + 8], 7, 1770035416);B = b(B, E, D, C, F[w + 9], 12, -1958414417);C = b(C, B, E, D, F[w + 10], 17, -42063);D = b(D, C, B, E, F[w + 11], 22, -1990404162);E = b(E, D, C, B, F[w + 12], 7, 1804603682);B = b(B, E, D, C, F[w + 13], 12, -40341101);C = b(C, B, E, D, F[w + 14], 17, -1502002290);D = b(D, C, B, E, F[w + 15], 22, 1236535329);E = i(E, D, C, B, F[w + 1], 5, -165796510);B = i(B, E, D, C, F[w + 6], 9, -1069501632);C = i(C, B, E, D, F[w + 11], 14, 643717713);D = i(D, C, B, E, F[w], 20, -373897302);E = i(E, D, C, B, F[w + 5], 5, -701558691);B = i(B, E, D, C, F[w + 10], 9, 38016083);C = i(C, B, E, D, F[w + 15], 14, -660478335);D = i(D, C, B, E, F[w + 4], 20, -405537848);E = i(E, D, C, B, F[w + 9], 5, 568446438);B = i(B, E, D, C, F[w + 14], 9, -1019803690);C = i(C, B, E, D, F[w + 3], 14, -187363961);D = i(D, C, B, E, F[w + 8], 20, 1163531501);E = i(E, D, C, B, F[w + 13], 5, -1444681467);B = i(B, E, D, C, F[w + 2], 9, -51403784);C = i(C, B, E, D, F[w + 7], 14, 1735328473);D = i(D, C, B, E, F[w + 12], 20, -1926607734);E = n(E, D, C, B, F[w + 5], 4, -378558);B = n(B, E, D, C, F[w + 8], 11, -2022574463);C = n(C, B, E, D, F[w + 11], 16, 1839030562);D = n(D, C, B, E, F[w + 14], 23, -35309556);E = n(E, D, C, B, F[w + 1], 4, -1530992060);B = n(B, E, D, C, F[w + 4], 11, 1272893353);C = n(C, B, E, D, F[w + 7], 16, -155497632);D = n(D, C, B, E, F[w + 10], 23, -1094730640);E = n(E, D, C, B, F[w + 13], 4, 681279174);B = n(B, E, D, C, F[w], 11, -358537222);C = n(C, B, E, D, F[w + 3], 16, -722521979);D = n(D, C, B, E, F[w + 6], 23, 76029189);E = n(E, D, C, B, F[w + 9], 4, -640364487);B = n(B, E, D, C, F[w + 12], 11, -421815835);C = n(C, B, E, D, F[w + 15], 16, 530742520);D = n(D, C, B, E, F[w + 2], 23, -995338651);E = a(E, D, C, B, F[w], 6, -198630844);B = a(B, E, D, C, F[w + 7], 10, 1126891415);C = a(C, B, E, D, F[w + 14], 15, -1416354905);D = a(D, C, B, E, F[w + 5], 21, -57434055);E = a(E, D, C, B, F[w + 12], 6, 1700485571);B = a(B, E, D, C, F[w + 3], 10, -1894986606);C = a(C, B, E, D, F[w + 10], 15, -1051523);D = a(D, C, B, E, F[w + 1], 21, -2054922799);E = a(E, D, C, B, F[w + 8], 6, 1873313359);B = a(B, E, D, C, F[w + 15], 10, -30611744);C = a(C, B, E, D, F[w + 6], 15, -1560198380);D = a(D, C, B, E, F[w + 13], 21, 1309151649);E = a(E, D, C, B, F[w + 4], 6, -145523070);B = a(B, E, D, C, F[w + 11], 10, -1120210379);C = a(C, B, E, D, F[w + 2], 15, 718787259);D = a(D, C, B, E, F[w + 9], 21, -343485551);E = o(E, z);D = o(D, y);C = o(C, v);B = o(B, u)}return [E, D, C, B]
}
function p(v) {var w, u = "";for (w = 0; w < v.length * 32; w += 8) {u += String.fromCharCode((v[w >> 5] >>> (w % 32)) & 255)}return u
}
function j(v) {var w, u = [];u[(v.length >> 2) - 1] = undefined;for (w = 0; w < u.length; w += 1) {u[w] = 0}for (w = 0; w < v.length * 8; w += 8) {u[w >> 5] |= (v.charCodeAt(w / 8) & 255) << (w % 32)}return u
}
function k(u) {return p(d(j(u), u.length * 8))
}
function f(w, z) {var v, y = j(w),u = [],x = [],A;u[15] = x[15] = undefined;if (y.length > 16) {y = d(y, w.length * 8)}for (v = 0; v < 16; v += 1) {u[v] = y[v] ^ 909522486;x[v] = y[v] ^ 1549556828}A = d(u.concat(j(z)), 512 + z.length * 8);return p(d(x.concat(A), 512 + 128))
}
function t(w) {var z = "0123456789abcdef",v = "",u, y;for (y = 0; y < w.length; y += 1) {u = w.charCodeAt(y);v += z.charAt((u >>> 4) & 15) + z.charAt(u & 15)}return v
}
function m(u) {return unescape(encodeURIComponent(u))
}
function q(u) {return k(m(u))
}
function l(u) {return t(q(u))
}
function h(u, v) {return f(m(u), m(v))
}
function r(u, v) {return t(h(u, v))
}
g.md5 = function(v, w, u) {if (!w) {if (!u) {return l(v)} else {return q(v)}}if (!u) {return r(w, v)} else {return h(w, v)}
}
} (typeof jQuery === "function" ? jQuery: this));

Python实战|js逆向凡科网相关推荐

  1. Python实战|js逆向微信公众平台

    话不多说,直接上正餐: 测试微信公众平台 登录后抓包,发现pwd密码处被加密 猜测pwd,ctrl+shift+f进行全局搜索pwd,由于加密一般是由js实现,所以排除css,试探进入图中代码页进行代 ...

  2. Python实战|js逆向完美世界

    逆向完美世界登录 js代码调试阶段 1.查看密码关键字段 2.Ctrl+shift+f全局搜索:password,找到相关js文件 3.从代码的setpublickey.encrypt关键字可以看出, ...

  3. Python实战|js逆向steam社区

    代码调试阶段: steam社区: https://store.steampowered.com/ 总体思路:登录抓包,分析包(全局搜索password = ,局部搜索password,在可疑的地方打上 ...

  4. **超防 ja3+加速乐(三种加密(md5,sha1,sha256)) 实战(python爬虫js逆向)

    **超防 加速乐+ja3 实战(python爬虫js逆向) 地址 aHR0cHM6Ly93d3cuaGVmZWkuZ292LmNuL2NvbnRlbnQvY29sdW1uLzY3OTQ4MTE/cGF ...

  5. Python 爬虫逆向破解案例实战 (三):凡科网逆向之闭包技巧

    目录 1. 凡科网逆向分析 2. 代码实现 3. 总结 1. 凡科网逆向分析 点击 此处 进入到 凡科网 的主页面,在键盘中按下 <Fl2> 快捷键或者是鼠标右键单击选择 检查(inspe ...

  6. 腾讯爬虫python_【Python爬虫+js逆向】Python爬取腾讯漫画!

    前一段假期期间,博主已经自学完了Python反爬虫的相关内容,面对各大网站的反爬机制也都有了一战之力.可惜因实战经验不足,所以总体来说还是一个字--菜.前两天,在学习并实战爬取了博主最爱看的腾讯动漫后 ...

  7. python爬虫js逆向加密,Web爬虫处理参数js加密、js混淆、js逆向

    中国空气质量在线监测平台(https://www.aqistudy.cn/html/city_detail.html)在众多的练习中,关闭了前台数据信息的展示,也就是说现在网页是这样的: 但我们主要学 ...

  8. python爬虫JS逆向加密破解之百度翻译

    最近在从基础学习JS逆向,来分享一下百度翻译JS逆向的整个过程,也有助于自己加深记忆. JS逆向可以说是爬虫工程师必备的知识点了,但是如果对前端知识不够了解还是学起来很有难度的. 想学习的话可以在B站 ...

  9. 基于Python的JS逆向和AST抽象语法树

    一.关于js逆向的一些知识点总结 javascript-数据类型中,null,undefinded都表示没有东西 普通函数,匿名函数,构造函数,一般常见的是匿名函数 函数可以当成字符串看待,可以看成参 ...

最新文章

  1. python链表的创建_Python——新建链表
  2. 深度学习核心技术精讲100篇(十一)-Google利器超强特征提取网络(Transformer)
  3. c# 带返回值的action_C#委托Action、ActionT、FuncT、PredicateT
  4. Java 时间处理 Instant
  5. ThinkPHP5.0源码学习之框架启动流程
  6. 推荐Linux音乐播放器:咪咕音乐
  7. 无线桥接和中继模式的区别
  8. 教育机构计算机机房制度,现代教育与信息技术中心机房管理制度
  9. mybatis事务处理
  10. Excel查看多列重复项
  11. windows server 2012 更改网络位置
  12. 逍遥模拟器自定义默认桌面程序
  13. 2021-09-13 多组EQ切换
  14. 什么是“use strict”,好处和坏处
  15. 关系模式的任何属性(关系模式的任何属性为什么不可再分)
  16. Serializers - Django REST framework
  17. div+css使用padding样式和 important标记实现Firefox和IE6处理带float样式的margi
  18. 网页在线自动回复客服源码
  19. 为什么我们要替换Docker?
  20. 【学习路线】——JAVA工程师成神之路

热门文章

  1. 崩坏学园3里离摄像机近距离的头发透明效果在unity里的实现方法
  2. MiniUI DataGrid 页面分页-前端分页
  3. 今年比亚迪招人招疯了......
  4. 整型数据在内存中的存储方式大解密
  5. html表格背景图片素材,HTML代码精美素材边框
  6. VS2012安装或更新NuGet插件
  7. 电力监控系统在电力系统中的应用
  8. 我国70个大中城市住宅房地产市场行情统计分析
  9. 计算机行业英语单词(二)
  10. 习题:有效的数独(C语言)