blackbox逆向

aHR0cHM6Ly93d3cuanVuZXlhb2Fpci5jb20vaG9tZQ==
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

blackbox

直接搜索blackbox即可定位到生成的位置

image-20250206101143992

往上跟栈一点就能找到加密函数(这个js需要本地替换一下不然每次会变,可以AST简单解一下

image-20250206101845119

扣出来QOoooO()这个函数,直接粘贴出来就好,缺的一些函数都是运算操作函数,页面上有。

主要是第一个位置的这个加密参数,它是由web3_8/profile.json这个json中返回的。

image-20250206102746732

加密参数挺多的,就不截图了。

token_id

直接在加密的那个js上搜token_id

image-20250206103340790

在搜Q0oQ0o["token"] = 就能看到加密位置

主要就是拼接了jxhk,时间戳,和随机数

Q0oQ0o["token"] = oo0OoO(oo0OoO(oo0OoO(oo0OoO(_fmOpt["partner"] || Q0oQ0o["partner"], "-"), new window["Date"]()["getTime"]()), "-"), window["Math"]["random"]()["toString"](16)["substr"](2));

a,b,c,d,g,f,w,ct

这个地方的值可以不用动态生成,直接写死就可以过包括时间戳

a,b,c,d,g的数组生成位置,变化的直接搜n,m,x,y中对应某个值,就可以找到这个数组的生成位置以及动态变化的几个值的生成位置

image-20250206104811383

let arr_suffix = new window["Date"]()["getTime"]()["toString"](32)
let arr = []
let data = arr.join("^^")
// 拼接时间戳
data = data + "^^" + arr_suffix

加密位置,主要是一个3DES加密,iv是12345678,模式是CBC,使用 PKCS7 填充

这个地方要注意会生成两次a,b,c,d,g,第二次的时候会往各自的数组里添加了部分数据,写死即可,如果直接用写死的明文,需要用第二次的加密的明文

image-20250206105253774

Q0oQ0o[timestamp]的生成位置直接搜就好了

f的明文参数1^^0^^0^^0^^0^^0

w的明文是写死在页面的上的也就是v的值JZuFK8iZfzhZG+BaqcUjAgNuPh8lFrtHCX3Ev7uGAGTj9gLkI0nL5bb/QS7zhKew

ct的明文参数是一个时间差,jsDownloadedTime(直接搜这个就可以看到生成的位置)-当前的时间差值,最后大概在5000-5500之间

e

因为最后数据都存在了deviceInfo里面,所有利用这个可以定位到e的生成位置

image-20250206111728531

主要由Q0o0o0()随机生成,扣出来就行了,很好扣

idf

idf即可定位到生成位置

秘钥是在页面上写死的,是一个RSA加密,使用 PKCS1 填充

image-20250206112214826

_callback

直接搜_callback

image-20250206112638500

OoOOQO =,这个函数很短简单看一下,就能发现是一个时间戳加个随机数组成的

image-20250206112725426

h

在上面那个_callback后面就可以看到h的生成位置

hash128那个函数直接扣下来即可,加密参数是把前面的所有数据用&拼接在一起,开头加一个?

image-20250206113103556

image-20250206113853288

本文作者:逍遥子D

本文链接:https://www.cnblogs.com/xyzJoker/p/18700949

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   逍遥子D  阅读(17)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起