mIRC Homepage

This has been a very controversial issue that has been discussed to great lengths in help and mIRC channels. Is it actually illegal to remove/change mIRC's default version reply? I read in another post that it is illegal according to the Licence Agreement, yet the agreement in /help or the one displayed during installation says nothing of the sort. Is there a full version of this EULA somewhere, or is it just a made up rule?
As far as I know it is not illegal or at least I have seen no written proof of it. However, and I know #HelpDesk shares this view, it is unfair and to a certain extent immoral to take credit from Khaled for this brilliant program. There is no harm in adding extra script information to the version reply, but actually changing it completely is not a good thing.

If you haven't already, you might want to read this thread.

BTW, what do you mean by "full version" of this EULA? The mIRC EULA can be viewed with /help license agreement as you seem to have already done - that is an exact copy of the one that is displayed when installing mIRC.

Happy helpin' smile

well if Khladed WANTED us to be able to change the version reply then he wouldn't have hardcoded it wink You can change the reply only if you disassemble the code and then forward assemble. I don't know if it's illegal or not to change the reply, but I guess it's not. If you wanna know what chat program someone is using, then ask him/her. Why would you need to version him/her?
"Why would you need to version him/her?"

Well, in some cases this is true - but there are many situations in which a CTCP version is needed. Some channels don't allow certain clients in their channels, or even certain versions of mIRC. A version is a quick way to determine this. Some people don't even know their version, so if you're helping someone it is again much easier and quicker just to version them.

I'd just like to say that personally, I disapprove of helping with completely editing out the version reply - online or on these boards.

My 2 cents smile

You can change the reply only if you disassemble the code and then forward assemble.

while i don't agree with changing the reply, i also don't agree with giving false information, you can change the version reply using /debug -i
A user would want to give out her proper version reply, so they can be assisted in the event of a problem. For instance, with the recent DCC Bug in versions 6.00 through 6.11... IRC servers were able to alert (probably) millions of users in a single day when mIRC 6.12 was released to fix this problem.

Say for instance the DCC Bug was worse, and allowed attackers to launch executable code on your computer... IRC servers would deny connections from mIRC v6.00 through v6.11 for their own safety, and alert them of this bug. Users who are falsifying their versions would end up connecting and getting 0wned.

There is NO valid reason to hide your version reply, because attackers do not version before attacking. Attacks are too easy to blindly throw at users without needing to know their client.

- Raccoon
as being a DoS kiddy in the past i know a couple good reasons why someone would or should hide their version reply. also, if u know enough about masking your version then u should already know what version your running. at another stand point its just a way to customise the look and feel of your program. as in Bitchx or some other linux irc clients. not sure about other ones.

my thoughts,
Your points make no sense and don't even touch on my arguement.

[color:006600]as being a DoS kiddy in the past i know a couple good reasons why someone would or should hide their version reply.[/color]

I applaud your honesty, but then you should certainly know that DoS kiddies don't plan their attack based on version replies. DoS kiddies know that version replies can be faked, and simply launch every known practical attack... until one works. Hiding your version does not hide your vulnerability.

[color:006600]also, if u know enough about masking your version then u should already know what version your running.[/color]

It is not the user who needs to know their own version; it is the IRC server, its administration, and help channel ops who need to know this information... for your own benifit. It is THESE people who are aware of your client's vulnerabilities... and it is THEY who will tell you about them if they only knew what version you were running when you entered. Helpers do not bother to ask, "Are you really running BitchX? because mIRC has a bug in it."

Hiding your version from a white-hat will serve you no aid in discovering your system's vulnerabilities. The passing good semariton will volunteer their experience when they discover you're using a vulnerable client. Black-hatters shoot blindly, trusting nothing they read. This begins to touch on the same theory that defines Open Source.

[color:006600]at another stand point its just a way to customise the look and feel of your program.[/color]

Yes. I too have peeled the Ford Escort plaque off the back of my car, and replaced it with Mercedes Bends... but damn-- I speant a fortune on the new headlights the repair shop sold me, and they wouldn't even fit!

- Raccoon
So by your logic this should apply to those (like myself) that ignore all CTCPs. I've touched on this before, now it seems not only am I denying Khaled the credit he deserves, I'm also stopping all those friendly white-hats from helping me.

Frankly, if someone wants to know what IRC client and version I am using, they should ask. There is no special clause for alleged white-hats and assumedly good-natured IRC operators/administrators, if they want to help me they should ask.

I'd really be worried about a 'passing good semariton' that just happens to be mass-versioning and subsequently mass-messaging users with who-knows what kind of helpful information.
While I agree that a good semariton may find it easier to earn the user's trust by verbally asking them the version of their client, this is simply not practical in most situations. In fact... most users who download and install scripts that do re-write the version reply, have no idea they're even using mIRC, let alone what version. "I use Scoop 2.5." "I use Invision 2000." "mIRC Gold."

Additionally, for IRC servers to successfully prohibit thousands of users from accessing the network dangerously, requires a certain level of automation and placement of trust. For the same reason that your browser tells the webserver what version/os it is, your mIRC client makes this information available when it is needed. The only difference is mIRC only gives it out when asked.

I think it would be a very good thing if webservers denied the access of vulnerable Explorer browsers, actually. But that's another issue.
i couldnt begin to guess the number of times this has happened when a user has a prob and the version they are using has to be known to reply correctly:
@: do you know how to check ___ in options?
x:what's that?
@: what version of mIRC are you using?
x: i'm using mIRC
@: yes, but which version of mIRC?
x: yes
@see that last icon at the top of your screen? the yellow one? click on that and tell me what version you see there.
x:whats an icon?
@: ok, are you using any scripts?
x: nope
@: your version reply shows that you are using v___ and XYZ script. that script has been reported as causing what you describe with that version of mIRC
x: oh. thats a script?

As for server admins, they are responsible for following the network's guidelines. If they choose to not allow a certain version of mIRC, thats their right. Seems to me they have as much right to want to see correct version reply as they do to scan for open proxies. Users have to comply with the networks rules or find another network. Technically, i could see them considering hiding a version reply as a form of evasion.

moving along to another point raised by someone, from the license agreement:
"....none of its contents may be modified, decompiled, or reverse engineered."
i dont know why anyone would think that didnt include the version reply.
Agreed, a degree of automation is needed, just as checks exist on certain nick and/or usernames, realnames, channels joined, the version reply (or lack of one) can also be used to control access. While users will find these checks carry some weight of authority, it does little to establish trust.

For a user joining (or being asked to join) a help channel, trust can perhaps be established based on the channel itself and the helpers status there. (Sucky Tom Cruise voice) "Help me, help you", in this situation the user wants to know they have your full attention, is it too hard to ask them to //say $version (or //!say) or check their scripts version against what mIRC version it runs (despite the fact the script shouldn't be 'shipping' with a mirc.exe)?


Sorry didn't preview before submission, I don't feel ParaBrat's post has added anything substantial to the argument, but anyway.

I think you were trying to point out that the whole psuedo conversation above would have 'failed' if the user didn't provide you a valid version reply. I'd like to point out that it would also have failed had the user, knowing their version reply, refused to provide that information to you. In one situation you have automatically discovered the information (which may or may not be true) and on the other the user may have provided the information (which may or not be true). If the user *wants* you to know the information, yet doesn't know it themselves, there are many more avenues that could be used to determine it.

It is a networks choice on who and what to allow on their network, it's the users choice to comply with the networks wishes, it's the users choice to change network. Again, looks like it's about choice to me.
I remember back to when my network banned all versions of mIRC prior to V6.0 as a way of weeding out the more vulnerable versions, regardless of what the issue with a particular version actually was. Even today I think it was a good idea. It is evasion to change a version reply when knowing that it is specifically to fool a security bot but at the end of the day those guilty of this are fooling themselves alot more.

As a general reply to all comments: Whilst it is against the licence agreement to alter mirc.exe in any way, this does not necessarily make it illegal. Authors of software do exactly that - make software and in some cases a licence agreement or some other form of contract. However only governments make laws and not all countries forbid end users from altering software that is intended for personal use. Infact I don't know of any specific law that relates to this and therefore make the licence agreement enforceable, rather an offence would only be committed if the altered software was distributed. The wishes of the author in many cases is therefore binding on the conscience of the end user. My view, for a number of reasons, is that the version reply should be left intact though through experimentation I am aware of how to remove it.

At the end of the day it comes down to the end user knowing what their rights are versus the end user respecting the wishes of the authors.
From the helpfile, subject "Changing a standard CTCP reply":

Note: You can't prevent the standard version reply from being sent.

This one line says it all imho.
I don't remember the version in which I changed it though I did. Rumour has it that if it is changed in the current version then the .exe won't start. I don't have the time to try and confirm it though.
well even if that rumor is true you can always make it not happen... If you know enough to change version by disassembling then you know equally enough on how to prevent such a check wink *cough* set a jmp *cough*
Some IRCd's have a user mode that prevents receiving CTCP requests though in most cases a security bot would be provided with an o:line which outranks any user modes, in the case of the software used on my network anyway. I am unsure of what you mean by "jmp" though but that could be due to the lateness of the hour in my corner of the world.
I wonder, has Khaled ever sued someone who doesn't obey license agreement?

I think the answer is 'no' because he doesn't have time to deal with them.

Lots of script coders do NOT obey mIRC License Agreement.
There are lots of scripts which distribute mirc.exe with their installation package. Also they translate mirc.exe illegally.

There is a Turkish script which is very popular in Turkey.
The author distribute mirc.exe with his script and with his own intallation package. Also he plan to translate mirc.exe to Turkish. I'm sure there are lots of scripts like that in other countries.

I told him that it is 'illegal'. He said, "I'm using mirc without key"
He means that he didn't register mIRC, so he doesn't need to obey the license agreement.
But he is wrong, so i told that to him. Then he said "I'll contact to mIRC's author soon."
I do not know what he will request or ask.
Also he claim that Khaled used his script and liked it.
(I do not think so)
The only thing I know is, he is a lamer...

It is sad that lots of mIRC users don't obey the rules. Lots of people ask about mIRC crack/key in help channels and how to change version reply.

Quote from Khaled's FAQ;
Question: Will mIRC be translated to other languages?
Answer: I'm currently working on making mIRC easy to translate, so we should be seeing mIRC in languages other than English in the near future.

I hope he will add that function soon, so they'll not edit mirc.exe anymore for translation.
And maybe Khaled should rewrite license agreement clearly for fools.
Without wanting to inflame the discussion too much but .....

.. is it possible to intercept the reply on the way out (using socklisten/sockwrite). Capture the version reply and replace it with something else!

That way the .exe is not being altered, and the user (for whatever reason) can keep their version "hush hush".

Food for thought!

it can be done using /debug -i
I personally dont find it worth the time or effort to change the version reply but my standing on the matter is you have to pay for mirc. thus khaled is making money. if you pay for a program you should have every right to keep information about that program a secret or to prevent mass ctcps.
That to me is like buying an automobile and having it illegal to remove the dealership sticker. I khaled considers this because its dumb not to allow a persion to keep their privacy on what they are using....and how in the hell is the debug going to change you version reply? if you want to get past the new version reply on 6.14 the only way i see it to constantly refresh the ctcp version. kinda like if you versioned yourself and then versioned yourself 2 seconds after that. the first version will reply mirc 6.14 or whatever and the second wont if you got a ctcp *:version:
Disabling the version reply does not prevent you being flooded with CTCP requests, it just stops mIRC from replying to it. This can be good and bad. While you won't get killed for flooding, someone may be CTCPing you and since mIRC isn't responding you will be unaware of the attack. I think the usermode (where available) is a better idea - being server-side it stops the attack before it reaches you.

Don't forget that 0% CTCP reply on connection can also lead to you being banned from some networks. Warbots rarely return a version reply and a security bot may simply assume that you are a hostile connection which is reasonable in my view.
© mIRC Discussion Forums