Hyper.nl Unreal Services Forum Index Hyper.nl Unreal Services
The forum of Hyper.nl Unreal Services and the semi-offical resource for Winged Unicorn's Unreal mods
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Does UCrashGuard work in all cases?

 
Post new topic   Reply to topic    Hyper.nl Unreal Services Forum Index -> The Website
View previous topic :: View next topic  
Author Message
Zombie



Joined: 27 Jan 2004
Posts: 295

PostPosted: Wed Dec 01, 2004 3:50 am    Post subject: Does UCrashGuard work in all cases? Reply with quote

It's a nice idea for client protection of nice? players, but I'm certain based on knowledge about the mods that not every byte-hacked cache file provided will break those crash commands. It's still better to just practice safe server choices on where you know server admins might try something on you in an unjust abusive manor and never go there.

Some of the mods use a more clever technique to prevent working byte-hacks to command names like done in UCrashGuard. If the command name is defined within a server replicated (Role < RoleAuhtority or Role < 4) function before being passed onto a client-side replicated function then the command name byte-hack will have no effect. However, UCrashGuard may have some success on those which have the command name defined on a client-side replicated function instead.

There is another way in which users can probably de-commission these commands without touching a server mod. It is quite possible and already proven that custom consoles can de-commission known original commands by overriding them within the console uscript itself. The bogus command function in the custom console will most likely break the usage of the command entirely. Users of custom consoles would best try this technique out if they know what they're doing in uscript. The only disadvantage is you can't use a custom console in DM because of cheating concerns, mostly coOp servers are more lenient to them.


-Zombie
Back to top
View user's profile Send private message Send e-mail
Hyper



Joined: 24 Jan 2004
Posts: 1227
Location: Middelburg, The Netherlands

PostPosted: Wed Dec 01, 2004 8:39 pm    Post subject: Reply with quote

I see. With my knowledge i'm only able to block the commands that are visible in the cache files. I'll add a notice to the readme.
_________________
Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk
Back to top
View user's profile Send private message Visit poster's website
Zombie



Joined: 27 Jan 2004
Posts: 295

PostPosted: Wed Dec 01, 2004 9:39 pm    Post subject: Reply with quote

That's true, you can hex the visable plain text command names in the cache files. What I'm saying is that in some implementations (not all) the command names stored in the cache file is not even looked at because that part of the code might be server executed (the mod code on the server machine is ran instead) and not executed from the client to where the client's package de-commissioned command name is used. It's still worth a try though because I'm sure it may work on a few of them that operate differently.

You can even test some this stuff out with a bytehacked MCoop2 file. Find the phrase "not found! Please check syntax or learn to type " in the MCoop2 hex and dub in whatever letters you want to mess it up. Then use that as your client file and join your server. Use the 'summon' command and try summoning a non-existant class. You'll see that the message remains unchanged when it displays. The client message parameter is defined in the summon command which is server replicated. Bytehacking takes a little bit more knowledge about the operation of the mod itself besides just masking text with new charactors whenever it appears in plain text in the hex view.


-Zombie
Back to top
View user's profile Send private message Send e-mail
Hyper



Joined: 24 Jan 2004
Posts: 1227
Location: Middelburg, The Netherlands

PostPosted: Wed Dec 01, 2004 11:17 pm    Post subject: Reply with quote

Confirmed :p

However, I tested this method earlier, and made a local test server with a certain client-crach-kick mod and there it worked. (225 Server with unchanged crash mod, Gold client with fixed cache)

I also have been able to block certain commands with the experimental aliases finction, but I also found that this does not always work. You can try it for yourself by adding "obj" to the blocked commands. This will instantly get you kicked on the most DM servers because their security was no longer able to get a list of loaded objects. (obj linkers)

But when you don't use the debug commands, it's safe and recommended to add them to the blocked commands.
_________________
Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk
Back to top
View user's profile Send private message Visit poster's website
Zombie



Joined: 27 Jan 2004
Posts: 295

PostPosted: Thu Dec 02, 2004 12:18 am    Post subject: Reply with quote

Oh..yes, blocking obj would do nobody any good. That is the prime command used to verify what packages clients have loaded at any time. When you break it you give a bad returning result and nearly all anti-cheat checkers will pick that descrepency up immediatly. Plus, there are some useful mods which use obj garbage to clean the client's loaded objects to fix potential problems. I also tested debug and it seemed to work ok too, so why would there be a need to byte-hack those parts in mods? I highly doubt it would be an inconvience to players if they couldn't test debug commands on themselves. Even if so, it would only take 10 seconds to comment it out of the Alias list.


-Zombie
Back to top
View user's profile Send private message Send e-mail
Hyper



Joined: 24 Jan 2004
Posts: 1227
Location: Middelburg, The Netherlands

PostPosted: Thu Dec 02, 2004 9:31 am    Post subject: Reply with quote

Zombie wrote:
Oh..yes, blocking obj would do nobody any good. That is the prime command used to verify what packages clients have loaded at any time. When you break it you give a bad returning result and nearly all anti-cheat checkers will pick that descrepency up immediatly. Plus, there are some useful mods which use obj garbage to clean the client's loaded objects to fix potential problems. I also tested debug and it seemed to work ok too, so why would there be a need to byte-hack those parts in mods? I highly doubt it would be an inconvience to players if they couldn't test debug commands on themselves. Even if so, it would only take 10 seconds to comment it out of the Alias list.


-Zombie


Alias blocking does not always work. I don't know when exactly, but sometimes Unreal ignores the aliases and executes the command anyways. That's why I also blocked it in the cache files.
_________________
Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Hyper.nl Unreal Services Forum Index -> The Website All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group