JS逆向 - 某住会同盾blackbox纯算分析

文章目录

概要

提示:仅供学习,不得用做商业交易,如有侵权请及时联系

逆向 :JS逆向 - 某住会同盾blackbox纯算分析
URL:aHR0cHM6Ly9zaWduaW4uaHdvcmxkLmNvbS9sb2dpbj9yZWRpcmVjdFVybD1odHRwcyUzQSUyRiUyRnd3dy5od29ybGQuY29tJTJG

整体架构流程

提示:分析参数及加密位置

1、全局搜索black_box

最后生成的位置,直接在此处下断点,然后往上跟一个站、

Q0OoO()这个函数就是生成blackbox的位置,我们进去看一下return的情况


所以我们需要找到t(全局搜索)是怎么来的,而v这里你多刷几次会知道是一个固定的值(版本)


2、 这里有一堆参数,都是需要逆向分析的,直接通过断脚本,找到加载的位置


3、初始化加载之后,继续往下跟栈

这里我们看到QQoO0是有一个全局对象,ubid是一个时间戳+随机字符串,继续往下看

4、跟到这里面,就是生成profile.json发包的那些参数了(可以AST代码还原代码,然后替换代码)

  • 首先找到fm.js

  • 可以看到fp文件也是动态的所以,我们也需要替换

5、替换之后我们找到上面分析的那个位置进行断点

6、这里我就不一步步跟着去分析了,直接上插装

javascript 复制代码
fm.js?ver=0.2&t=491895:3835 zhiw数组: 738
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1536
fm.js?ver=0.2&t=491895:3835 zhiw数组: 11110
fm.js?ver=0.2&t=491895:3835 zhiw数组: 864
fm.js?ver=0.2&t=491895:3835 zhiw数组: 295
fm.js?ver=0.2&t=491895:3835 zhiw数组: 824
fm.js?ver=0.2&t=491895:3835 zhiw数组: d3a9f77bed605f4a9e2a782955b65f1a
fm.js?ver=0.2&t=491895:3835 zhiw数组: zh-CN,zh
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1
fm.js?ver=0.2&t=491895:3835 zhiw数组: Google Inc. (Intel)-&-ANGLE (Intel, Intel(R) UHD Graphics (脱敏数据) Direct3D11 脱敏数据, D3D11)
fm.js?ver=0.2&t=491895:3835 zhiw数组: functiongetoffsetHeight(){[nativecode]}
fm.js?ver=0.2&t=491895:3835 zhiw数组: 6ef4a53a32a3086171ad14d663a1e981
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 2d935b92b11329aa1d14e4a780e02361
fm.js?ver=0.2&t=491895:3835 zhiw数组: 738
2fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 280
fm.js?ver=0.2&t=491895:3835 zhiw数组: 48000_2_1_0_2_explicit_speakers
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 脱敏数据|b0f2202fc3f0f72f424ca4fc6db815df
fm.js?ver=0.2&t=491895:3835 zhiw数组: [object Window]
fm.js?ver=0.2&t=491895:3835 zhiw数组: functioncreateAnalyser(){[nativecode]}
2fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 139720
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 824
fm.js?ver=0.2&t=491895:3835 zhiw数组: 8
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1770822894492
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1536
fm.js?ver=0.2&t=491895:3835 zhiw数组: 0
fm.js?ver=0.2&t=491895:3835 zhiw数组: Webkit-Chrome
fm.js?ver=0.2&t=491895:3835 zhiw数组: functiongetParameter(){[nativecode]}
fm.js?ver=0.2&t=491895:3835 zhiw数组: Win32
fm.js?ver=0.2&t=491895:3835 zhiw数组: zh-CN
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1536
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 脱敏数据|01100100011111111011111011011111011111011011110001111111111011111
fm.js?ver=0.2&t=491895:3835 zhiw数组: Netscape
2fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 480
fm.js?ver=0.2&t=491895:3835 zhiw数组: https 脱敏数据
fm.js?ver=0.2&t=491895:3835 zhiw数组: Mozilla/5.0 脱敏数据
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1
fm.js?ver=0.2&t=491895:3835 zhiw数组: Mozilla
fm.js?ver=0.2&t=491895:3835 zhiw数组: u9VVQzDE0zrnrPfu0Drv6ZFNy\0EqfWtLowPO1iAjSMOMtmwAYxguM64fqGMuBhvQFfavEPvDYDxWpbxaNRUupnmMw8wGXUwMi6JX687cNzcx6ivpTJ5HbJwd38cCaZU
fm.js?ver=0.2&t=491895:3835 zhiw数组: 33
fm.js?ver=0.2&t=491895:3835 zhiw数组: functiontoString(){[nativecode]}
fm.js?ver=0.2&t=491895:3835 zhiw数组: 8
fm.js?ver=0.2&t=491895:3835 zhiw数组: functionenumerateDevices(){[nativecode]}
fm.js?ver=0.2&t=491895:3835 zhiw数组: 1
fm.js?ver=0.2&t=491895:3835 zhiw数组: 8
fm.js?ver=0.2&t=491895:3835 zhiw数组: [objectPluginArray]
fm.js?ver=0.2&t=491895:3835 zhiw数组: N1nyPKdX-1770822894576-9619e57598bdf692669836
fm.js?ver=0.2&t=491895:3835 zhiw数组: -
fm.js?ver=0.2&t=491895:3835 zhiw数组: 8
fm.js?ver=0.2&t=491895:3835 zhiw数组: functiontoDataURL(){[nativecode]}
fm.js?ver=0.2&t=491895:3835 zhiw数组: 8
fm.js?ver=0.2&t=491895:3835 zhiw数组: functionRTCPeerConnection(){[nativecode]}

需要注意的是 var OQOQO = new window["Date"]()["getTime"]()["toString"](32);每次拼接指纹都是会变的

技术名词解释

提示:加密a、b、c、d、e、f、g.......

  1. 使用的是魔改的SM4加密,CBC模式
  2. 默认发IV值是:1234567812345678
  3. key是指纹里面的idf.substring(0, 16)
  4. 指纹数组里面的32位字符串,其实是浏览器指纹进行Fingerprint2.x64hash128加密

技术细节

提示:纯算实现结果

小结

提示:学习交流主页,星球持续更新中:(+星球主页+v)

相关推荐
树獭非懒24 分钟前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
拉不动的猪1 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
大金乄4 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
唐叔在学习4 小时前
就算没有服务器,我照样能够同步数据
后端·python·程序员
曲幽5 小时前
FastAPI流式输出实战与避坑指南:让AI像人一样“边想边说”
python·ai·fastapi·web·stream·chat·async·generator·ollama
Lee川5 小时前
解锁 JavaScript 的灵魂:深入浅出原型与原型链
javascript·面试
Flittly6 小时前
【从零手写 AI Agent:learn-claude-code 项目实战笔记】(1)The Agent Loop (智能体循环)
python·agent
swipe6 小时前
从原理到手写:彻底吃透 call / apply / bind 与 arguments 的底层逻辑
前端·javascript·面试
vivo互联网技术7 小时前
ICLR2026 | 视频虚化新突破!Any-to-Bokeh 一键生成电影感连贯效果
人工智能·python·深度学习