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)

相关推荐
工具派21 小时前
PDF签名贴上去为什么发虚?尺寸、DPI与坐标的边界实测
java·python·pdf
谙忆21 小时前
PNG改成ICO为什么不能用:用Python检查多尺寸目录与256px帧
开发语言·python
长空任鸟飞_阿康21 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·ai·架构·skills
滴啦嘟啦哒21 小时前
【具身笔记】【原理探究】一、对PI05源码的实践笔记
笔记·python·vla·具身
嫂子的姐夫21 小时前
055-wasm:爬虫练习网spa15(token 纯算还原)
爬虫·wasm
miofly21 小时前
GitHub 今日推荐|elephant-goldfish-model:先审查设计草案再写代码
python·开源·github
云和数据.ChenGuang1 天前
深入剖析 Python 的 MRO 规则:从 C3 线性化到实战踩坑
开发语言·python·1024程序员节
123_不打狼1 天前
Squidiff:基于条件扩散模型预测细胞发育与扰动响应
开发语言·python·squidiff
databook1 天前
用Python DSL 写轻量数据质检工具
python·数据分析
裕波1 天前
苏千|从 cnpm 到 Vite+:AI 时代的开发者体验演进
javascript