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)

相关推荐
YMWM_1 天前
【问题】thor上的cubLas
linux·python·thor
wefly20171 天前
免安装!m3u8live.cn在线 M3U8 播放器,小白也能快速上手
java·开发语言·python·json·php·m3u8·m3u8在线转换
2401_873544921 天前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
爱学习的程序媛1 天前
【Web前端】JavaScript设计模式全解析
前端·javascript·设计模式·web
程序员小远1 天前
软件测试常见Bug清单
自动化测试·软件测试·python·功能测试·测试工具·测试用例·bug
薛先生_0991 天前
js学习语法第一天
开发语言·javascript·学习
苦瓜小生1 天前
【前端】|【js手撕】经典高频面试题:手写实现function.call、apply、bind
java·前端·javascript
和沐阳学逆向1 天前
我现在怎么用 CC Switch 管中转站,顺手拿 Codex 举个例子
开发语言·javascript·ecmascript
小仙女的小稀罕1 天前
听不清重要会议录音急疯?这款常见AI工具听脑AI精准转译
开发语言·人工智能·python
书到用时方恨少!1 天前
Python random 模块使用指南:从入门到精通
开发语言·python