Geo Posted May 11, 2013 Share Posted May 11, 2013 (edited) I have a script to record binaries in a seperate log (simpler and easier to use the data for me) but I was wondering whether I can specify between known cheat binaries and unknown client binaries. I was thinking perhaps disallowing players with a cheat binary whilst allowing players with an unknown binary to play (then speccing/checking them). I know there are the g_ClientBinaries parameters (1) but I assumed this is going to kick all unknown binaries, which I don't want as i'm certain some players use custom ET builds and I don't want to kick these without any valid reason. Parameters:1 Don't allow players with unknown client executables.2 Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.4 Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat. So, is it possible to differentiate between known and unknown binaries? Such as et_ClientBinary( clientNum, checksum, type) where type would be 'known' or 'unknown' for example. Then in my script I can specify actions for players with a cheat binary and ignore those without. Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.Syntaxet_ClientBinary( clientNum, checksum )clientNum is the slot number of the playerchecksum is the 32 character MD5 checksum of the client executable (ET.exe) Edited May 11, 2013 by Arcane Quote Link to comment Share on other sites More sharing options...
Geo Posted May 13, 2013 Author Share Posted May 13, 2013 EDIT: found a solution to this problem! Quote Link to comment Share on other sites More sharing options...
Dragonji Posted May 14, 2013 Share Posted May 14, 2013 (edited) Could you tell us how did you solve the problem? Edited May 14, 2013 by Dragonji Quote Link to comment Share on other sites More sharing options...
Petbark Posted May 14, 2013 Share Posted May 14, 2013 Is this something you would share with us as it could be a useful tool for others to use? Quote Link to comment Share on other sites More sharing options...
Geo Posted May 17, 2013 Author Share Posted May 17, 2013 Sure i'll share what i am using, it would need further testing but i'll create a workable version later and post it Quote Link to comment Share on other sites More sharing options...
Geo Posted May 20, 2013 Author Share Posted May 20, 2013 I wrote a simple script which logs both unknown/known binaries to a seperate log (I prefer seperating the data) and refuses connection to players using a specific cheat binary. This is currently done by specifying the binary in the script itself as I have only detected this one known binary on the server. If more are found, then these can be added to the script or alternatively a .cfg file for the binaries could be used. Note: script is unfinished here, only posting code incase it looks like it could be of any use to other people function et_ClientBinary( clientNum, checksum) local binary = checksum local name = et.gentity_get(clientNum, "pers.netname") local guid = et.gentity_get(clientNum, "sess.guid") local timestamp = os.date("%Y-%m-%d %H:%M:%S") local logLine = timestamp.. "Player: "..name.." silEnT GUID: "..guid.." Binary: "..binary.."\n" et.G_LogPrint(logLine) fd, len = et.trap_FS_FOpenFile("checksums.log", et.FS_APPEND) et.trap_FS_Write(logLine, string.len(logLine), fd) et.trap_FS_FCloseFile(fd) if binary == "30d13c5e1339f3c80ad89ab4525564ab" then et.trap_DropClient ( clientNum, "\^7You have been automatically banned for using a cheat program\n") else return end return 0 end end I also disabled g_ClientBinaries parameter 2 as the point was to seperate the binaries into a dedicated file instead of adding to an existing one. Dragonji 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.