
User gets fed up with bug; cracks program to fix it himself. - vaksel
http://forum.skype.com/index.php?s=17fbdf08801503eebf66d315f03d14b6&showtopic=310121&st=20&p=1633781&#entry1633781
======
thorax
I actually had a similar frustration for Half-Life 2 single player. Valve
originally hard-coded the field of view (fov) to 75 which caused intense
motion sickness for me (for some reason). I enjoyed the game immensely, but I
still had to go lay down for 20 minutes for every 20 minutes of play.

In the first few weeks of the game (before they patched it to be less
restrictive), it ignored and reverted changes to the game fov with some sort
of bizarre level of meanness. They _really_ wanted the fov to stay at 75 for
some sort of game experience reason.

I edited the game binaries to remove the forcing of that field of view back to
75 (using VC6's binary editor after using SoftICE to monitor the code that was
changing the value in memory) so that I could play the game without getting
sick.

~~~
mikeytown2
If not 75, what # did you play at?

~~~
thorax
90 degree fov was what worked for me (and most shooters I know used at the
time). Sorry I didn't clarify that above.

They eventually allowed changing it as a cheat, but it was frustrating for a
while .

The community talks a little bit about the differences/issues here:
<http://developer.valvesoftware.com/wiki/Field_of_View>

------
teej
I has a player of one of my games pull a similar stunt on me.

He was sick and tired of other people using bots to cheat the game. He made
some correct assumptions about my architechture, Memcached in front of MySQL,
and determined a way to find pages that would guarantee a cache miss. He then
wrote a bot to hit as many of these pages as possible, essentially
blackmailing me into fixing the bot problem.

A simple captcha and a few bot honeypots later, the problem was fixed.

~~~
nocman
I don't think that is a fair comparison.

Discussions about the ethical implications of patching a DLL aside, it is
quite a different thing to patch a DLL to prevent an application from crashing
when you use it than to hammer someones server in an attempt to force them to
fix a problem.

------
ks
It reminds me of TTDPatch. It started with minor modifications to Transport
Tycoon, but eventually rewrote large parts of the game itself.

Summary: <http://www.ttdpatch.net/features.html>

Details: <http://www.ttdpatch.net/Manual/ttdpatch.html#The%20Patches>

~~~
plaes
They finally rewrote the game - OpenTTD - <http://openttd.org>

~~~
reconbot
Oh why did you guys link to this, do you know how many hours I'm going to
loose now?

------
jpd
Can someone explain how one might do something like this? I get that you can
use some sort of disassembler to read the code, but how did he insert his
check without upsetting the machine code's memory offsets?

~~~
daeken
There are two (easy -- there are others) ways to pull it off. One is to
replace instructions in the area with smaller ones, and take advantage of the
open space. This is generally fairly easy to do, as compilers are terrible at
generating code that's both fast and small.

The other way to pull it off easily is to replace an instruction with a jump
to another part of code that's empty/unused, where you put the original
instruction, your new ones, and a jump back to the patch location.

~~~
Locke1689
I was wondering that myself, thank you for the great reply -- I don't have
that much experience modifying disassembled code.

------
crocowhile
As linux user I cannot be anything but glad to see skype developers a little
bit pwnd. What is wrong with skype? They detain the monopoly on VoIP and yet
they have not been able to keep up with the development of the program in
years, now. It seems it is all about selling headphones on the website.

I think the linux version is something like 2 years old now.

~~~
laut
They don't have a monopoly. You are free to use other VoIP apps or create your
own.

~~~
soult
According to Wikipedia, a monopoly "exists when a specific individual or
enterprise has sufficient control over a particular product or service to
determine significantly the terms on which other individuals shall have access
to it.".

Given Skype's market share (not Voip in general, but free worldwide voip
calls), I would say they do have a monopoly.

------
listic
As far as I understand, Skypemate is a hardware phone made by company named
Yealink and designed to work with Skype. It is not made by Skype, and that can
possibly explain why it is not so polished and bugs are left unaddressed for
long time.

If the user really cracked Skype, as the title made me believe, this would be
big news. I have been told that Skype's protection is really tough.

~~~
rjprins
Skype voice encryption is really though, meaning that agencies can't tap
Skype. Change the machinecode of a program on your own pc is something
entirely different.

------
wallflower
Like the resume of a friend I read once (Stanford, Microsoft, etc.), I like
how the guy talked about what he did (a fairly difficult debug/patch) in a
low-key manner.

~~~
joshu
The excel multithreading thing, right?

~~~
wallflower
No, I think you're probably thinking of someone else. His resume had no fluff.
Sometimes it's like you look at normal people's resumes and they try to fluff
it up. His was like: "Proficient: MFC, Win32, C++, C, Japanese...Stanford CS
GPA 3.93 etc..MS SoftDev Intern". And it didn't take up the whole page.

I'm curious what the Excel multi-threading issue is/was though.

------
messel
Is it wrong to bump up a post based solely on it's title? Title love. Now to
read the article.

------
solutionyogi
Title is very misleading. A better title could be

'User got fed up with the bug and finds a workaround.'

~~~
petewarden
He patched the DLL to prevent a bad pointer dereference - that qualifies as
cracking it in my book.

~~~
daeken
Why is that cracking? It's just a hack; patching a binary to fix a bug is by
no means a crack IMO. A clever hack? Sure, but calling it a crack just serves
to make it sound like a bad thing.

~~~
lvecsey
That was my big take away too and my sense was that in another forum, he would
have used the term hack. But it's easier to explain it away as a crack to
convey that users should observe caution, share it quietly, and also to piggy
back on a commonly held notion that it won't break or otherwise harm any
system (such as the service being used).

------
jneal
That's amazing. Consider him hacker certified lol

~~~
raheemm
Damn - I was expecting to see something horrific in your comments judging from
all the downvotes (had to highlight to read). What was so annoying about this
comment? Relax folks!

~~~
gasull
Writing "lol" means almost automatic downvote in HN. And that's usually a good
thing.

