Nope, just tried it. PlayerAuthed gets called AFTER PlayerInitialSpawn.
I made a possible block with gatekeeper, but I have no idea if it will work.
[lua]
if !gatekeeper then require("gatekeeper") end
local SpoofCheckingPlayers = {}
hook.Add( "PlayerPasswordAuth", "BlackOps:PlayerPasswordAuth", function( name, pass, steamid, ip )
table.insert( SpoofCheckingPlayers, { ip=ip, steamid=steamid } )
end )
hook.Add( "PlayerAuthed", "BlackOps:PlayerAuthedSpoofCheckInit", function( ply, steamid, uniqueid )
for k,v in ipairs( SpoofCheckingPlayers ) do
if ply:IPAddress() == v.ip then
if steamid != v.steamid then
ServerLog( "SpoofCheck: Player (" .. ply:Nick() .. ") may possibly be spoofing their SteamID!\nAuthedID: " .. v.steamid .. "\nSteamID: " .. steamid )
--Do whatever you want to them here.
else
ServerLog( "SpoofCheck: Player (" .. ply:Nick() .. ") Connected SteamID: " .. v.steamid .. " | Current SteamID: " .. steamid )
end
table.remove( SpoofCheckingPlayers, k )
end
end
end )
[/lua]
[QUOTE=blackops7799;20288821]No shit.. I don't want people getting into my server that should be banned. I could care less if they want to spoof without ever being banned before.[/QUOTE]
I would care, because they could spoof someone else's steamid with the intention of getting them banned, or having their privileges on the server. For instance, if you owned a server, they would spoof your steamid and have full admin powers or whatever.
You can't choose what SteamID to use. It's chosen randomly from saved auth packet received from fake servers, IIRC. Those packets are only valid for 24 hours, so using it to become admin is easier said than done.
None of that will ever work~
I talked to Avaster he said that none of those will stop Serenity.
The only way to prevent it would be to compare the players steamID, convert it to a community ID and see if it even exists, however that would only work as a frontline defense, and probably wouldn't work if what Flapjack said is correct.
Not a bad idea. Check if their name on their profile page, if it even exists, matches their in-game name?
Incase anyone wants to try.
[lua]local function ConvertToCommunityID( steamid )
local x, y, z = string.match( steamid, "STEAM_(%d+):(%d+):(%d+)" )
if ( x and y and z ) then
local friendid = string.format( "765%0.f", z * 2 + 61197960265728 + y )
return friendid
else
return steamid
end
end[/lua]
Taken from one of Deco's old releases I believe.
[QUOTE=blackops7799;20289872]Not a bad idea. Check if their name on their profile page, if it even exists, matches their in-game name?[/QUOTE]
Why should that work, if the profile is private you will just ban them for no 'real' reason.
Private profiles still show the players name.
[QUOTE=blackops7799;20289872]Not a bad idea. Check if their name on their profile page, if it even exists, matches their in-game name?[/QUOTE]
-wat-
"Match name"
[highlight](User was banned for this post ("Goatse" - SteveUK))[/highlight]
-Snip, seems you can't get profile IDs with Steamworks.
[QUOTE=|FlapJack|;20289958]-Snip, seems you can't get profile IDs with Steamworks.[/QUOTE]
A "profile ID" is the steam id. The steam id you see in-game is the rendered form of the 64-bit steam id. It's trivial to convert the rendered form back to the original 64-bit int. The 64-bit ID is what you use on steamcommunity.
[QUOTE=AzuiSleet;20290007]A "profile ID" is the steam id. The steam id you see in-game is the rendered form of the 64-bit steam id. It's trivial to convert the rendered form back to the original 64-bit int. The 64-bit ID is what you use on steamcommunity.[/QUOTE]
I know, I was hoping you could get the player's real profile ID via steamworks, convert it back to their real SteamID, then compare that to the one given in the server.
[QUOTE=|FlapJack|;20290050]I know, I was hoping you could get the player's real profile ID via steamworks, convert it back to their real SteamID, then compare that to the one given in the server.[/QUOTE]
Steamworks isn't some black magic, it's the same Steam interface the game server uses. There's no "steam id from steamworks" compared to "steam id from the server" because the server is the one that gets the authentication. Steamworks is just a library to interface with steam. There's no discrepancy either, with the program they are that user, there's no way the server can know they're lying.
[QUOTE=AzuiSleet;20290083]Steamworks isn't some black magic, it's the same Steam interface the game server uses. There's no "steam id from steamworks" compared to "steam id from the server" because the server is the one that gets the authentication. Steamworks is just a library to interface with steam. There's no discrepancy either, with the program they are that user, there's no way the server can know they're lying.[/QUOTE]
I realised that, which was why I snipped. (Or rather that even if it was possible, Steamworks wouldn't get the correct result either)
[QUOTE=VoiDeD;20289623]None of that will ever work~
I talked to Avaster he said that none of those will stop Serenity.[/QUOTE]
Wow I didn't know what a bundle of laughs you could be voided.
[QUOTE=|FlapJack|;20289549]You can't choose what SteamID to use. It's chosen randomly from saved auth packet received from fake servers, IIRC. Those packets are only valid for 24 hours, so using it to become admin is easier said than done.[/QUOTE]
Which is why I said don't join random servers, but I didn't know it was chosen randomly, I thought you could pick from the ones that were available.
[QUOTE=yakahughes;20290499]Which is why I said don't join random servers, but I didn't know it was chosen randomly, I thought you could pick from the ones that were available.[/QUOTE]
Everything I say is purely guesswork. I neither have Serenity, nor know the people who made it. I know two people that have it though.
Price has gone up because you are all retards - selling fully working anti serenity now at £50, £50 anyone?
To everyone who was calling me out, it would help if [B]the forum that had the post would load.[/B] I didn't see so much as a screenshot, so rating me dumb is like telling people who can't speak English at the age of two that they're idiots. It's called [B]ignorance[/B].
[QUOTE=VoiDeD;20289623]None of that will ever work~
I talked to Avaster he said that none of those will stop Serenity.[/QUOTE]
Pro tip number one Avaster knows nothing
[QUOTE=Dave_Parker;20300346]Considering your recent history with your 'anticheat', I'm gonna say no.[/QUOTE]
you know that was a joke right
I have something. I know it works. If you want it cough up 5 dollars.
[email]donate@havocgamers.net[/email]
[b]EDIT:[/b] It uses gate keeper.
-snip-
I'll save all of you the money, here's the "anti-serenity"
[lua]
hook.Add("PlayerInitialSpawn", "asdf", function(ply)
timer.Simple(5, function()
ply:SendLua([[RunConsoleCommand("_asc", LocalPlayer():SteamID())]])
end)
end)
concommand.Add("_asc", function(ply, cmd, args)
if ply:SteamID() != args[1] then
RunConsoleCommand("kickid", ply:UserID(), "I sold this anticheat for 50 dollars knowing it would get patched")
end
end)
[/lua]
Run along and override client side SteamID() now azu.
I don't think that's how he patched it.
The steamid is always wrong. There's never a point where it is their actual steamid.
Avaster just added my steam id to their client,im getting banned from 80% of the servers now?
Damn it!
I think azu's anti-serenity should work.
That isn't Azu's [i]"Anti Serenity"[/i].
A mixture of UniqueID, SteamID, and FriendID checks? (i cant remember if skondra's steamworks module lets you get their FriendID (good thing hes hanging here :P)(because theres no way to change that, right?))
Wow that was allot of unneeded brackets..
I don't know how, but isn't it possible to return a table of the player's steam friends? I've seen little addons in servers that'll highlight your steam friends names in chat and such, why not just see if the table of the player's friends is equal to the table of the steamid's frie--
Oh god I'm stupid, you cant get the steamid's friends list because--
Nevermind I dont know what I'm talking about :|
Sorry, you need to Log In to post a reply to this thread.