【JS逆向】某麻将游戏数据生成JS加密逆向分析探索!

某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑!

建议:JS逆向,JS基础是关键,JS基础语法学习一定不要落下!

踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行!

e027790df2325e1be7bdf848942c9cc6.png

网址:

aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG

特征:

页面数据在源码中无法找到,因为源码中根本不存在该代码,由JS驱动生成html数据代码!

5dbc3af744b72fe4e26374b324c1470c.png

原理:

一个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

以下为踩坑过程:

  1. 打开网页查看数据

81398470edff8a57dfeb80a165fa05a3.png

2.查看需要获取的数据html代码片段

b605f819f45e34bf2c7ea044e48a5911.png

3.python 爬取效果,无数据

a7d2acddbc84b2539623d5cfa198faa4.png

4.数据对比,大概率可以确定是1008js文件生成页面数据

5ba32d0381543284dda0bf93b134680c.png

5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById

7eda1a4f40b3e41a68d275ccc8d032e9.png

6.可以看到就是1008js文件,在生成数据可疑处打上断点

d7d151e545ed826efffbc0a61d6d00f2.png

7.断点调试验证数据生成,可看到部分数据生成

57263de8b8065d875c066a11eddc355e.png

8.继续下一行调试,验证,这里就考验js阅读能力了

ae1af3e8a72be948d82197474fe5b589.png

9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可

8017939df2c2e45b5bd84590b16de4fe.png

10.抠出js代码,并修改调试

由于关联函数多,基本上都可以全部抠出再进行修改

其中:

参数 a=‘q’

c0d841e6d524cd528f1488d1b0477628.png

参数 o

546918780fd3c3f0091ce8684322b6a4.png

还需要替换一处代码,注释后面不要的代码

以及 return g

这些就是js调试的坑了:

ReferenceError: fa is not defined
ReferenceError: document is not defined

这里如果不懂js调试运行,主要是处理报错的能力,坑是没办法填了!

本地运行效果:

d3397ad8b73c37c3b29838d68742928f.png

完整代码获取 

请关注本渣渣公众号

d0279dcd1ab4f4d8ff0e9c4a5d90bb6c.jpeg

后台回复“麻将”

声明 

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系立即删除!

参考来源:

【JS 逆向百例】元素ID定位加密位置,某麻将数据逆向-K哥爬虫

https://mp.weixin.qq.com/s/KWJLN3O2qTwqjj3ZrVo2fA

JavaScript 语句-菜鸟教程

https://www.runoob.com/js/js-statements.html

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

30bc4b3f319572c125734ec7bedb0170.jpeg

a0d7336019da5faa85e16493eca466b4.png

关注我的都变秃了

说错了,都变强了!

不信你试试

6aa334a60c814d029e02b2eb6da843ae.jpeg

扫码关注最新动态

公众号ID:eryeji

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值