吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1403|回复: 20
收起左侧

[Web逆向] js逆向实战案例之----X花顺cookie V值逆向

[复制链接]
zhnn 发表于 2025-7-22 10:16
网站:aHR0cHM6Ly9zdG9jay4xMGpxa2EuY29tLmNuL2hzZHBfbGlzdC9pbmRleF8zLnNodG1s
目标:cookie里面的 V值

cookie_v

cookie_v

分析:
里面就只有一个V值的加密

image.png



写一个hook脚本hook里面的V值,搜关键字太多了
[JavaScript] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
(function (){
    'use strict';
    var cookieTemp = '';
    Object.defineProperty(document, 'cookie', {
 
        set: function (value) {
            if (value.indexOf('v') !== -1) {
                debugger
            }
            return  value;
        },
         get: function () {
 
            return cookieTemp;
    },
    });
})();


使用浏览器注入上面的脚本
image.png
直接断住了,还是比较好用的,接下来我们跟栈分析一下
image.png

可以看到就是这个W方法里面的update加密的
进去看看

image.png

加密逻辑全部在这个js文件里面,我们就全部扣,然后把B方法导出就可以了
image.png

大概就是这样
image.png

但是环境还是不完整的,我们需要挂上代理补一下环境,最后环境大概就这么多,不算多

image.png
环境补完就出值了
image.png
最后我们验证一下,看看效果
image.png

没问题,模拟成功

免费评分

参与人数 3威望 +1 吾爱币 +21 热心值 +3 收起 理由
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
anning666 + 1 + 1 我很赞同!
yuchen123 + 1 我去试试

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

熊猫拍板砖 发表于 2025-7-23 17:21
import time,random
from loguru import logger
import requests

TOKEN_SERVER_TIME = 1753247964.406;
# E里的很多值写死了,能用就行
E=[]
E.append(3264648686)
E.append(int(TOKEN_SERVER_TIME))
# E[2]=int(time.time())
# E[3]=195367209 # 这个值是对 ua进行了hash之后偏移计算出来的,这里固定写死,function ln(n) 搜索续写
# E[4]=7
# E[5]=10
# E[6]=5
# E[7]=91
# E[8]=1
# E[9]=19
# E[10]=0
# E[11]=699
# E[12]=422
# E[13]=3748
# E[14]=0
# E[15]=0
# E[16]=7
# E[17]=3
E.append(int(time.time()))   # E[2]
E.append(195367209)          # E[3]
E.append(7)                  # E[4]
E.append(10)                 # E[5]
E.append(5)                  # E[6]
E.append(230)                 # E[7]
E.append(3)                  # E[8]
E.append(19)                 # E[9]
E.append(0)                  # E[10]
E.append(800)                # E[11]
E.append(425)                # E[12]
E.append(3748)               # E[13]
E.append(0)                  # E[14]
E.append(0)                  # E[15]
E.append(1)                  # E[16]
E.append(3)

def tobuff(e):
    a='37'
    o='7'
    i=[4, 4, 4, 4, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 1]
    # u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    c=-1
    u=[]
    # s=0
    # f=len(i)
    # while s<f:
    #     v=e[s]
    #     l=i[s]
    #     c+=l
    #     p=c
    #     while l!=0:
    #         l -= 1
    #         p-=1
    #         v>>=8
    #         u[p] = v & int(a + o, 8)
    #
    #     s+=1
    mask = int(a + o, 8)  # JavaScript: parseInt('377', 8) == 255

    for s in range(len(i)):
        v = e[s]
        l = i[s]
        c += l
        p = c

        while True:
            # 相当于 u[p] = v & 255
            if len(u) <= p:
                u.extend([0] * (p - len(u) + 1))  # 保证有足够长度
            u[p] = v & mask
            l -= 1
            if l == 0:
                break
            p -= 1
            v >>= 8
    return u

def d(n):
    a=0
    o=0
    i=43
    mask = int('ff', 16)
    while o<i:
        a=(a<<5)-a+n[o]
        o+=1
    logger.debug(a)
    return a & mask

def f(n,t,a,i,u):
    c=len(n)
    mask = int('ff', 16)
    mask1 = int('83', 16)

    while t<c:
        a.extend([n[t]^u & mask])
        u = ~(u * mask1)
        i += 1
        t += 1

    logger.debug(a)
    return a

v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
def g(a):
    o=0
    u=45
    c=[]
    mask = int('20', 8)
    while o<u:
        s=(a[o]<<mask)|(a[o+1]<<8) | a[o+2]
        c.append(v[s>>int('22',8)])
        c.append(v[(s>>int('14',8))&int('3f',16)])
        c.append(v[(s>>6)&int('3f',16)])
        c.append(v[s&int('3f',16)])
        o+=3
    logger.debug(c)
    logger.debug(len(c))
    return "".join(c)
def encode(r):
    e=d(r)
    # e=76
    logger.debug(e)
    a=[3,e]
    logger.debug(r)
    a=f(r,0,a,2,e)
    return g(a)

logger.debug(E)
t=tobuff(E)
logger.debug(t)
logger.debug(encode(t))

这个是花了一下午时间给他手动还原的python版本,真累啊

免费评分

参与人数 1吾爱币 +10 热心值 +1 收起 理由
涛之雨 + 10 + 1 用心讨论,共获提升!

查看全部评分

buluo533 发表于 2025-7-22 15:18
其实可以尝试一下分析加密算法,不补环境试试
逍遥黑心 发表于 2025-7-22 15:29
俄洛伊 发表于 2025-7-22 17:48
谢谢分享
cwsyyds 发表于 2025-7-22 21:49
谢谢分享
 楼主| zhnn 发表于 2025-7-22 22:54
buluo533 发表于 2025-7-22 15:18
其实可以尝试一下分析加密算法,不补环境试试

向大佬学习
youfeng0909 发表于 2025-7-22 23:34
好家伙,这是真的强
lngwu11 发表于 2025-7-22 23:52
新手学习js逆向技术,感谢分享
shallies 发表于 2025-7-23 07:24
厉害了,大牛
everleaf 发表于 2025-7-23 13:13
学习一下思路
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-11-6 19:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表