Anticheat Byp*er
Key Required Patched

Anticheat Byp*er

Typical Colors 2jawjekrjawjekr 16.2K views 7 executesUpdated Sep 28, 2023
Unrated
00
Lua Script•95 lines (3130 chars)
--[[
    Updated to allow exploit calls of tostring without erroring LOL
]]

local typeof = typeof
local hookfunc = hookfunction
local getmt = getrawmetatable or debug.getmetatable
local gsub = string.gsub
local match = string.match
local rnd = math.random
local cache = setmetatable({}, {__mode = "k"})
local possibleMemoryChars = {
    "a", "b", "c", "d", "e", "f", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
}

-- Secure call implementation for (more) secure calling of tostring
-- Still detectable though.

local setidentity = setidentity or setthreadidentity or set_thread_identity or setthreadcontext or set_thread_context or (syn and syn.set_thread_identity)
local getidentity = getidentity or getthreadidentity or get_thread_identity or getthreadcontext or get_thread_context or (syn and syn.get_thread_identity)
local securecall = syn and syn.secure_call or newcclosure(function(func, env, ...)
    return coroutine.wrap(function(...)
        local id = getidentity()
        setidentity(2)
        setfenv(0, getsenv(env))
        setfenv(1, getsenv(env))
        local res = {func(...)}
        setidentity(id)
        return table.unpack(res) -- Hidden args maybe removed? idk about packing and unpacking the arguments
    end)(...)
end)

local _tostring; _tostring = hookfunc(tostring, newcclosure(function(data)
    if checkcaller() then -- return normal if its exploit call
        return _tostring(data)
    end

    local callingScript = getcallingscript()
    local res = securecall(_tostring, callingScript, data)
    local type = typeof(data)

    if type == "table" or type == "userdata" or type == "function" or type == "thread" then
        if type == "table" or type == "userdata" then
            local mt = getmt(data)
            if mt and rawget(mt, "__tostring") then
                return res
            end
        end

        --32bit res E.G > table: 0x000000008b9b661b
        --64bit res E.G > table: 0x7a3241c3abbb4de8
        if match(res, "x00000000") then
            if cache[data] then
                return cache[data]
            end

            -- 32 bit string
            res = gsub(res, "x00000000", function()
                -- Generate fake string
                local finalStr = ""

                for i = 1, 8 do
                    finalStr = finalStr .. possibleMemoryChars[rnd(#possibleMemoryChars)]
                end
               
                return "x" .. finalStr
            end)

            cache[data] = res
        end
    end

    return res
end))

local newversion
task.spawn(function()
    newversion = game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://clientsettings.roblox.com/v2/client-version/WindowsPlayer")).version
end)

local getVersionMiddleware = Instance.new("BindableFunction")
getVersionMiddleware.OnInvoke = function()
    if (not newversion) then
        repeat task.wait() until newversion
    end
    return newversion
end

hookfunction(Version, newcclosure(function()
    return getVersionMiddleware:Invoke()
end))

hookfunction(version, newcclosure(function()
    return getVersionMiddleware:Invoke()
end))

Features & Information

"You've been detected, dont come back" sthu lmao

Community Comments (4)

aunarkyaunarkySep 29, 2023(edited)

hello, aunarky here (tc2 dev) thx

jawjekrjawjekrSep 29, 2023(edited)

oh my *** its aunarky from the hit game tc2

CatAutismCatAutismSep 29, 2023(edited)

@aunarky hi

El_EscarabajoEl_EscarabajoSep 7, 2024(edited)

Even with a good anticheat they can't stop hackers who make their scripts from home and privately, if hackers who have it private make it public they patch it, that's why I have mine well saved and it continues to work even if they update the game and it has AI to detect changes in the Aimbot in case they change something and it self-corrects so that it continues to work.

More Scripts for Typical Colors 2