某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑!
建议:JS逆向,JS基础是关键,JS基础语法学习一定不要落下!
踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行!
网址:
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG
特征:
页面数据在源码中无法找到,因为源码中根本不存在该代码,由JS驱动生成html数据代码!
原理:
一个JavaScript 语法,如需从 JavaScript 访问某个 HTML 元素,可以使用 document.getElementById(id) 方法,这个 id 就是某个 HTML 元素的属性,然后使用 innerHTML 来获取或插入元素内容,可以看菜鸟教程的一个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h1>我的网页</h1>
<p id="demo">我的第一个段落。</p>
<script>
document.getElementById("demo").innerHTML = "你好 Dolly";
</script>
</body>
</html>
在线调试代码:
https://www.runoob.com/try/try.php?filename=tryjs_statement
更多或如有时间,可看视频版解析:
一 探寻 JavaScript 反爬虫的根本原因和基本原理-夜幕NightTeam(B站)
https://www.bilibili.com/video/BV16e4y1G7xv?p=2&vd_source=fcecddad2b6d926771ba73e82af70880
以下为踩坑过程:
打开网页查看数据
2.查看需要获取的数据html代码片段
3.python 爬取效果,无数据
4.数据对比,大概率可以确定是1008js文件生成页面数据
5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById
6.可以看到就是1008js文件,在生成数据可疑处打上断点
7.断点调试验证数据生成,可看到部分数据生成
8.继续下一行调试,验证,这里就考验js阅读能力了
9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可
10.抠出js代码,并修改调试
由于关联函数多,基本上都可以全部抠出再进行修改
其中:
参数 a=‘q’
参数 o
还需要替换一处代码,注释后面不要的代码
以及 return g
这些就是js调试的坑了:
ReferenceError: fa is not defined
ReferenceError: document is not defined
这里如果不懂js调试运行,主要是处理报错的能力,坑是没办法填了!
本地运行效果:
完整代码获取
请关注本渣渣公众号
后台回复“麻将”
声明
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系立即删除!
参考来源:
【JS 逆向百例】元素ID定位加密位置,某麻将数据逆向-K哥爬虫
https://mp.weixin.qq.com/s/KWJLN3O2qTwqjj3ZrVo2fA
JavaScript 语句-菜鸟教程
https://www.runoob.com/js/js-statements.html
·················END·················
你好,我是二大爷,
革命老区外出进城务工人员,
互联网非早期非专业站长,
喜好python,写作,阅读,英语
不入流程序,自媒体,seo . . .
公众号不挣钱,交个网友。
读者交流群已建立,找到我备注 “交流”,即可获得加入我们~
听说点 “在看” 的都变得更好看呐~
关注关注二大爷呗~给你分享python,写作,阅读的内容噢~
扫一扫下方二维码即可关注我噢~
关注我的都变秃了
说错了,都变强了!
不信你试试
扫码关注最新动态
公众号ID:eryeji