Skip to content
This repository has been archived by the owner on Aug 15, 2023. It is now read-only.

可能要换新的 DS 了 #51

Closed
Arondight opened this issue Aug 26, 2021 · 7 comments · Fixed by #65
Closed

可能要换新的 DS 了 #51

Arondight opened this issue Aug 26, 2021 · 7 comments · Fixed by #65
Labels
help wanted Extra attention is needed todo The to do list

Comments

@Arondight
Copy link
Owner

const getDS = () => {
let n = "14bmu1mz0yuljprsfgpvjh3ju2ni468r",
i = (Date.now() / 1000) | 0,
r = randomString(6),
c = md5(`salt=${n}&t=${i}&r=${r}`);
return `${i},${r},${c}`;
};

图片

@Arondight
Copy link
Owner Author

我这里已经没法用老 DS 了,发什么请求都出错,谁能把这玩意儿换一下吗?

米游社接口报错: invalid request

@ixCiel
Copy link
Contributor

ixCiel commented Sep 4, 2021

反编译扒拉出一串旧DS代码好像是用于兼容的,只是key似乎不是ASCII了

新DS好像换加密算法了,增加了两个新的.so

    public static String lk2() {
        int[] arrayOfInt = new int[32];
        arrayOfInt[0] = -88;
        arrayOfInt[1] = -120;
        arrayOfInt[2] = -108;
        arrayOfInt[3] = 162;
        arrayOfInt[4] = 102;
        arrayOfInt[5] = 162;
        arrayOfInt[6] = 174;
        arrayOfInt[7] = 192;
        arrayOfInt[8] = -98;
        arrayOfInt[9] = 78;
        arrayOfInt[10] = -74;
        arrayOfInt[11] = 198;
        arrayOfInt[12] = 150;
        arrayOfInt[13] = -82;
        arrayOfInt[14] = -82;
        arrayOfInt[15] = -82;
        arrayOfInt[16] = 180;
        arrayOfInt[17] = -72;
        arrayOfInt[18] = -80;
        arrayOfInt[19] = 210;
        arrayOfInt[20] = 162;
        arrayOfInt[21] = 168;
        arrayOfInt[22] = -19683;
        arrayOfInt[23] = -2187;
        arrayOfInt[24] = -122;
        arrayOfInt[25] = 72;
        arrayOfInt[26] = 78;
        arrayOfInt[27] = -102;
        arrayOfInt[28] = 72;
        arrayOfInt[29] = 114;
        arrayOfInt[30] = -531441;
        arrayOfInt[31] = -104;
        StringBuilder stringBuilder = new StringBuilder();
        ArrayList<Integer> arrayList1 = new ArrayList(arrayOfInt.length);
        int i = arrayOfInt.length;
        for (byte b = 0; b < i; b++) {
            int j = arrayOfInt[b];
            if (j < 0) {
                if (-j >= Math.pow(3.0D, 6.0D)) {
                    j = (int)(Math.log(-(j)) / Math.log(3.0D) - 6 + 48);
                } else {
                    j = j;
                }
            } else {
                j = j / 3 + 48;
            }
            arrayList1.add(Integer.valueOf(j));
        }
        ArrayList<StringBuilder> arrayList = new ArrayList(32);
        for (int value:arrayList1
             ) {
            stringBuilder.append(Character.forDigit(value,10));
            arrayList.add(stringBuilder);
        }

        String str = stringBuilder.toString();
        return str;
    }

@Arondight
Copy link
Owner Author

@ixCiel 改了下样式,坐等一个路过的老大哥重写一下 getDS

@Arondight
Copy link
Owner Author

另外根据 Azure99/GenshinPlayerQuery#20 (comment) 来看,API 也已经改变

@Arondight
Copy link
Owner Author

@Arondight
Copy link
Owner Author

我照着抄了一个,但是仍然不行,谁帮我看看哪儿出问题了 c005718

@Arondight Arondight linked a pull request Sep 6, 2021 that will close this issue
@icetech233
Copy link

反编译扒拉出一串旧DS代码好像是用于兼容的,只是key似乎不是ASCII了

新DS好像换加密算法了,增加了两个新的.so

    public static String lk2() {
        int[] arrayOfInt = new int[32];
        arrayOfInt[0] = -88;
        arrayOfInt[1] = -120;
        arrayOfInt[2] = -108;
        arrayOfInt[3] = 162;
        arrayOfInt[4] = 102;
        arrayOfInt[5] = 162;
        arrayOfInt[6] = 174;
        arrayOfInt[7] = 192;
        arrayOfInt[8] = -98;
        arrayOfInt[9] = 78;
        arrayOfInt[10] = -74;
        arrayOfInt[11] = 198;
        arrayOfInt[12] = 150;
        arrayOfInt[13] = -82;
        arrayOfInt[14] = -82;
        arrayOfInt[15] = -82;
        arrayOfInt[16] = 180;
        arrayOfInt[17] = -72;
        arrayOfInt[18] = -80;
        arrayOfInt[19] = 210;
        arrayOfInt[20] = 162;
        arrayOfInt[21] = 168;
        arrayOfInt[22] = -19683;
        arrayOfInt[23] = -2187;
        arrayOfInt[24] = -122;
        arrayOfInt[25] = 72;
        arrayOfInt[26] = 78;
        arrayOfInt[27] = -102;
        arrayOfInt[28] = 72;
        arrayOfInt[29] = 114;
        arrayOfInt[30] = -531441;
        arrayOfInt[31] = -104;
        StringBuilder stringBuilder = new StringBuilder();
        ArrayList<Integer> arrayList1 = new ArrayList(arrayOfInt.length);
        int i = arrayOfInt.length;
        for (byte b = 0; b < i; b++) {
            int j = arrayOfInt[b];
            if (j < 0) {
                if (-j >= Math.pow(3.0D, 6.0D)) {
                    j = (int)(Math.log(-(j)) / Math.log(3.0D) - 6 + 48);
                } else {
                    j = j;
                }
            } else {
                j = j / 3 + 48;
            }
            arrayList1.add(Integer.valueOf(j));
        }
        ArrayList<StringBuilder> arrayList = new ArrayList(32);
        for (int value:arrayList1
             ) {
            stringBuilder.append(Character.forDigit(value,10));
            arrayList.add(stringBuilder);
        }

        String str = stringBuilder.toString();
        return str;
    }

大佬,你们什么工具抓的 salt

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
help wanted Extra attention is needed todo The to do list
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants