Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion Goto page 1, 2  Next
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Sun Jun 15, 2008 1:56 am   

CMUD locks up on this...
 
So, I was playing around on my MUD, and decided to do a line break on my clan channel to emulate that I had donated. Of course, this only works for people who have CMUD/zMUD, but thought it'd be fun, anyway.

The command?

ct Hmmm.&#269~;@GCLAN ANNOUNCEMENT: @YCharneus @Ghas donated @Y1,234 @Gquest points to the clan.

That should have returned:

You tell the clan: 'Hmm.
CLAN ANNOUNCEMENT: Charneus has donated 1,234 quest points to the clan. (all with appropriate colors).

However, it locked CMUD up so badly I had to end task on it. If I just do

ct Hmm. &#269~; @GBlah blah blah

It works without locking up. Any suggestions? :P

Charneus
Reply with quote
Brenex
Beginner


Joined: 13 May 2008
Posts: 25

PostPosted: Sun Jun 15, 2008 3:44 am   
 
I am having a similar issue with variables that are invisible (not just hidden.) I think something must have gotten corrupt. Whenever I tried to write to the variables it would lock up completely. I had to recreate the "invisible" variables, get an error message, and then delete the newly created variable. Doing that flushed out the corrupt variable I couldn't see. Maybe your problem is similar since you have multiple variables in that clantalk message.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Sun Jun 15, 2008 3:56 am   
 
Those aren't variables, actually. That's the way our colorcode is on Aardwolf. For instance, typing:

echo @RThis @Bis @Ga @Mtest.

It'd return:

This is a test.

I'm wondering, though, if CMUD is trying to view them as variables, though - I could try changing the @ special character to see if that solves it. It kind of sucks, though - if it works, that means I have to change all 300 triggers that use @ multiple times within my scripts...

Charneus
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Sun Jun 15, 2008 12:59 pm   
 
Actually, it wouldn't as long as the triggers and such aren't in the window you're changing the special character for (move the ones you can into a module). Each window and module has its own preferences, so the window could have a different variable character, and the module could have the default one.

Anyway, as long as you have your colour syntax entered in the preferences, it shouldn't be causing CMUD any problems. If it is, it's probably a bug.
_________________
Rorso's syntax colouriser.

- Happy bunny is happy! (1/25)
Reply with quote
alluran
Adept


Joined: 14 Sep 2005
Posts: 223
Location: Sydney, Australia

PostPosted: Sun Jun 15, 2008 2:23 pm   
 
I can confirm this bug, it is easy to replicate when you try to use that character code, if you turn parsing off and use & #269; instead of escaping the 269~; then it will work. Pretty sure this should be replicable using Charneus' above post if it's anything like the times I do it :P

Edit: PS Your forum converted my character codes :(
_________________
The Drake Forestseer

Last edited by alluran on Mon Jun 16, 2008 12:55 am; edited 5 times in total
Reply with quote
Anaristos
Sorcerer


Joined: 17 Jul 2007
Posts: 821
Location: California

PostPosted: Sun Jun 15, 2008 6:22 pm   
 
I put Charneus' string into an alias appended to a #SHOW command. While it did not bomb CMUD, it seems to confirm the suspicion that the script parser is interpreting the @'s as variable indicators. Using a blank session, I got this:

ct Hmmm.
ANNOUNCEMENT: donated ,234 points to the clan.

Notice how the output shows that the "variables" have been expanded.

EDIT: To prove the point, I put this into an alias:
Code:

$gclan   = "@GCLAN"
$clannie = "@YCharneus"
$has     = "@Ghas"
$gold    = "@Y1,234"
$qp      = "@Gquest"
;;
gt Hmmm.&#269~;$gclan ANNOUNCEMENT: $clannie $has donated $gold $qp points to the clan.


and it worked just fine.
_________________
Sic itur ad astra.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 5:06 pm   
 
Quote:
echo @RThis @Bis @Ga @Mtest.

Yes, if "echo" is an alias, then CMUD is going to treat the @ for variables. You can prevent this by turning off the new Parse Arguments option for your "echo" alias. Or, you can enclose your arguments in quotes:

echo "@RThis @Bis @Ga @Mtest."

to prevent CMUD from parsing it.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 5:11 pm   
 
Echo isn't an alias. Echo (mudside) sends the text directly to your screen (much like using #SAY, only this is a MUD command).

I can type echo @RThis @Bis @Ga @Mtest and have it show up on Aardwolf with no problem. It's when I do what I had originally posted that causes the problem.

Charneus

As a side note, while it does return the colors, it doesn't return the spaces, which is annoying in itself. If I want the spaces, I do have to escape the @ signs, which seems inconsistent to me. Either it should return the colors with spaces, or it shouldn't return anything at all. Putting it in quotes displays the colors with spaces, but also puts quotes around it.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 5:29 pm   
 
OK, I think the problem is with your #269 control code. What is that supposed to do anyway? I use Aardwolf too and haven't run into any problems with coloring text, but I was nervous about putting in that control code and sending it to my clan-talk channel, so I'll need to know more about what you are trying to do here.

I confirmed the bug with the spaces and will add that to the bug list.

But as always, remember that instead of escaping every special character, you can also send a line verbatim to the MUD by starting the line with the ` line-escape character, or by enclosing the *entire* command in quotes, or by pressing Ctrl-R to toggle command line parsing off and on.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 5:58 pm   
 
The #269 control code emulates a line break, turning

ct Hmmm.&#269~;blah blah blah

into

You tell the Clan: Hmmm.
blah blah blah

Usually, I do escape the whole line - just didn't think about it in this case. :P

Charneus
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 6:59 pm   
 
Hmm, that's kind of mean. I'm surprised the MUD passes that character since it would allow you to "trick" other players clients to thinking the text came from the server instead of a player.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 7:43 pm   
 
I don't think it's the MUD passing the control code, but rather the client interpreting it as a control code. If someone is using a different client, then that someone will see &#269~; instead of a line break. *shrug* It makes for amusing conversations sometimes.

Charneus
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 9:11 pm   
 
Hmm, very tricky. That's a wrap-around bug in the CMUD MXP entity handling routine. Where did you learn about this trick? I'll fix this in the next version because that's a very nasty hacker trick to mess up zMUD/CMUD users. Not much I can do about zMUD, but at least I can fix CMUD so that it doesn't respond to that.

The wrap around is that 269-256=13 so it is wrapping around the byte size and returning char(13), which is a CR character.
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Mon Jun 16, 2008 9:17 pm   
 
I think alot of people know about it... I did!
Reply with quote
Dumas
Enchanter


Joined: 11 Feb 2003
Posts: 511
Location: USA

PostPosted: Mon Jun 16, 2008 10:03 pm   
 
Yeah, but why use it? Humor? It can end up only being funny to the person who does it.
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Mon Jun 16, 2008 10:07 pm   
 
Depends on your audience and content of it. I've only used on private channels for humorous purposes.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 10:08 pm   
 
Not sure how it could mess up zMUD/CMUD users, to be honest. There's not much you can with control codes except display them. I don't think you'd be able to, say, get someone to send you their password by sending control codes. And you're not going to be able to get a lot of people to delete their characters or whatnot by sending control codes, either.

I learned about that particular control code from another MUDder who showed it to me once. After that, I ran a loop to see what the other control codes were. I found it didn't start until 33. Meaning, Ascii control codes 1-32 are "lost," so to speak. I think that's the reason for the "wrap-around" in the entity handling routine. After it hits 288, it goes back to whatever 33 is. *shrug* Hate to see it go, and really don't see a reason for it to go, but if it's a bug you want fixed, I won't hold anything against you. :P

Charneus
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 10:27 pm   
 
The "problem" is that this enabled you to simulate a line that looks like it is from the MUD itself. In order to only trigger on MUD commands, many people put a ^ at the beginning of their trigger pattern to ensure that it is the first text on the line. Since all "chat" from the MUD usually has other text in front of it (like "Zugg tells you...") then you can usually be sure that you are triggering on MUD text.

So if you know what triggers the other player might have, you can "trick" their client into running the trigger. There is no valid reason to even do this unless you are just trying to cause someone trouble.

Sure, it probably won't get you someone's password or delete their character. But if they have some triggers that switch them into combat mode, or something like that, then you could trigger this and mess them up in the middle of a battle. For example, you could spoof the "The monster is dead" message, which might take them out of combat mode in their scripts.

Especially on MUDs where there are popular scripting packages, like Larkin's package. If you know that a bunch of people are using that CMUD package, then you might easily be able to find a way to exploit it.

Another example is that normally CMUD doesn't allow MSP sound downloading for "inline" MSP...the MSP command must start and end on it's own line to be considered "sent from the MUD" and cause a sound download. With your "trick", you could cause an MSP command to appear on it's own line, possibly triggering a download of a large file from some site. Again, it's not going to delete their character, but it would be highly annoying and could cause someone to die in combat, especially if being pkilled.

With MXP entities, CMUD was stripping anything less than char(32), but then it was just calling the Delphi chr(x) routine on the result, which could wrap around and still return a control code. Note that using this method you could also cause someone using CMUD to process an ESC code, like a VT100 code, which could also completely mess up their screen (like using VT100 scrolling regions).

Keep in mind that anyone who gets any "ideas" from this and decides to try it on a MUD can easily get themselves banned for life if someone complains to the MUD admins about it. This kind of thing is called an "exploit" and has no purpose other than causing trouble. Hopefully you understand more why this is a bad thing now.

To bad I don't have any way to recompile zMUD 7.21 anymore on Vista or else I would fix this in zMUD too. In fact, now that I know about this possible exploit, I'd never use zMUD instead of CMUD anymore.
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 10:50 pm   
 
Quote:
To bad I don't have any way to recompile zMUD 7.21 anymore on Vista or else I would fix this in zMUD too. In fact, now that I know about this possible exploit, I'd never use zMUD instead of CMUD anymore.


Great selling point for CMUD!

But yeah, I see what you're saying now. I'd never have used that trick to do something as devious as that. Guess I can get rid of my flickoff alias, then. :P It was such a fun one, too! ;)

Charneus
Reply with quote
alluran
Adept


Joined: 14 Sep 2005
Posts: 223
Location: Sydney, Australia

PostPosted: Mon Jun 16, 2008 10:56 pm   
 
*cry* I knew I shoulda kept this quieter when i found it :( There are a few others I'll let you know about when i re-discover them zugg, much nastier than just a new line. Beeping, clearing the buffer, etc
_________________
The Drake Forestseer
Reply with quote
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Mon Jun 16, 2008 11:07 pm   
 
Most of them are covered under the wrap-around. It doesn't clear the buffer, by the way... just acts as a new page command. :P That is #268.

Charneus
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jun 16, 2008 11:40 pm   
 
Yep, none of the control characters will work in 2.28, including beep and the page command. All of those were the same wrap-around bug. Thanks for letting me know about this.

Everyone should also know that it's pretty easy for MUD admins to detect players who do this, so only do it at your own risk. I'd hate to see someone get banned for playing with stuff like this.
Reply with quote
alluran
Adept


Joined: 14 Sep 2005
Posts: 223
Location: Sydney, Australia

PostPosted: Tue Jun 17, 2008 12:03 am   
 
charneus wrote:
Most of them are covered under the wrap-around. It doesn't clear the buffer, by the way... just acts as a new page command. :P That is #268.

Charneus


There are others, further away from new line that do, or at least did in zMud (never tried them in cMud)

PS, it'll be a sad day when you fix this, cos I won't be able to trick nopk players into setwanting themselves any more :(
_________________
The Drake Forestseer
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Tue Jun 17, 2008 2:11 pm   
 
This sounds like a good reason to release a 2.27a or something rather quickly... Which means all the other bug posts of moderate importance would get fixed too right? right? I need my (%w) at the start of a dbkey to work properly heh.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Jun 17, 2008 4:45 pm   
 
Yes, another release (2.28) is planned for this week.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
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

© 2009 Zugg Software. Hosted by Wolfpaw.net