Psyyke / A.C.A.S

Advanced Chess Assistance System for Chess.com, Lichess.org, Pychess.org and more. Hassle-free 1-click install, no downloading. All devices and browsers supported.
https://psyyke.github.io/A.C.A.S/
GNU General Public License v3.0
73 stars 24 forks source link

Add overide support game: "/service/game", #16

Closed beansofhell closed 3 weeks ago

beansofhell commented 7 months ago

Hello I would like to use the overide feature. To stop anticheat in lichess. and second, I would like to send WSS packets. via a bot of sort

https://developer.chrome.com/docs/devtools/overrides

here is an example

[{"channel":"/service/game","data":{"tid":"Move","move":{"gid":10**,"clock":16657,"clockms":65790,"coh":false,"mht":510,"move":"PA","seq":13,"squared":true,"uid":"**"}},"id":"27","clientId":"*****"}]

The WebSocket communication is here wss://live2.chess.com/cometd

image

image

With Chrome override. you can totally remove cheat detection lol

beansofhell commented 7 months ago

@Hakorr

check this cool thing

    function sendLiveGameMove(e, t) {
        let n = (0,
        G.S)(e);
        if (!n)
            return;
        let {move: o, ply: i, cheat: a} = t
          , r = (0,
        m.a)(n.getBoardRef());
        if (!r)
            return;
        let s = o.to ? l().encodeTCN([o]) : ""
          , u = r.getCurrentClock();
        if (u <= 0) {
            b.x.emit(p.U.MoveFail, {
                liveGame: n,
                moveText: n.getLastMoveText(s)
            });
            return
        }
        let d = (0,
        P.t)()
          , c = Math.round(r.getIncrementedClock())
          , v = (i + n.getOddsPlyIncrement()) % 2
          , f = !!a && y.liveGameState.toggledGames.includes(e)
          , h = !!a && a.didUseCheatMouse
          , C = (0,
        S.j)({
            clock: c,
            didUseCheatMouse: h,
            toggledMove: f,
            gameId: e,
            move: s,
            ply: i,
            clientId: getCometdClientId()
        })
          , M = {
            clock: c,
            clockms: C,
            gid: e,
            move: s,
            seq: i,
            uid: d.uid
        };
        a && Object.assign(M, {
            squared: f,
            didUseCheatMouse: h,
            coh: a.didChangePieces,
            mht: a.moveHoldTimes[a.moveHoldTimes.length - 1],
            fm1: a.focusEventsDuringOpponentMove,
            fm2: a.focusEventsDuringPlayerMove,
            bm1: a.blurEventsDuringOpponentMove,
            bm2: a.blurEventsDuringPlayerMove
        });
        setTimeout(publishMove, 0, e, M);
        (0,
        g.b)(n.getBoardRef(), {
            playerToMove: 1 - v,
            moveClock: c
        })
    }
    var _ = n(63357);
Hakorr commented 3 weeks ago

The anti-cheat which is banning most of the people is completely external. However internal anti-cheats detect auto-move very early on (but like you said, are easy to disable to it's commonly not the main method used to detect cheating). Regardless, A.C.A.S doesn't have auto-move, so it isn't a problem.