前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JS逆向】某麻将游戏数据生成JS加密逆向分析探索!

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

作者头像
二爷
发布2024-01-12 14:00:15
1380
发布2024-01-12 14:00:15
举报
文章被收录于专栏:二爷记二爷记

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

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

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

网址:

代码语言:javascript
复制
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG

特征:

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

原理:

一个JavaScript 语法,如需从 JavaScript 访问某个 HTML 元素,可以使用 document.getElementById(id) 方法,这个 id 就是某个 HTML 元素的属性,然后使用 innerHTML 来获取或插入元素内容,可以看菜鸟教程的一个例子:

代码语言:javascript
复制
<!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. 打开网页查看数据

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调试的坑了:

代码语言:javascript
复制
ReferenceError: fa is not defined
ReferenceError: document is not defined

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

本地运行效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档