If I arrange an assassin to murder a US citizen, have I broken my home country's law? Probably not. Have I broken US criminal (not civil) law? Yes.
Morally, should I be extradited to face trial for my deliberate actions against the murdered US citizen?
Oh course, the law should be all different for when you're stealing software, shouldn't it? Bah. I'm a developer. I try to use Free Software exclusively. If I use non-free software, I pay for it. So should you.
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
This quite clearly states that core operating system functionality provided by the vendor is exempt from the GPL's linking clause, provided it's a de-facto part of the vendor's operating system. So, you can use all Win32 calls and all system DLLs on Windows in GPL software. You can compile and link against Solaris's non-free libc without worry.
[Rare is] about the only British developer rich enough to risk alienating a few Yanks
It's true. If you want to tap into the Nation of Consumers, you have to dumb down your game to their lowest-common-denominator tastes. Or you can create a cultural gem of a game and starve.
Perhaps what we need are a few loss leaders. Revolution are giving away Beneath A Steel Sky, with its undeniably British sense of humour.
when you're close to a person their model contains 1000 polygons, when you're farther away the model would only be made up of 50 or 100 polygons.
Yeah, that's what I already said. The problem is that most algorithms do a terrible job of simplifying models, so you still need artists to draw (or tweak) the simplified models individually.
What I forgot to say in the original post is that because the game is built on Renderware Platform, the game graphics/models were created with Renderware Studio. Rockstar North used third-party tools to create their game content. They can't give out those tools, even though they wrote the game.
The game is mostly a huge bunch of data on top of Renderware Platform. The difficulting in creating the game is the huge amount of artwork required. Unlike a racing game or DOOM, you need to fill an entire city where every building needs all four sides and the roof defined, plus needs a multitude of models so it looks good both close up and at a distance.
I'm not surprised, he gets his pay-cheques thanks to Microsoft:
Clemens Vasters is co-founder and executive team member of newtelligence AG, a developer services company headquartered in Germany. He is a Microsoft Regional Director for Germany. A well-known developer and architect trainer, he is a popular conference speaker, author/co-author of several books, and maintains a widely read and frequently referenced Weblog focused on architectural and development topics at http://staff.newtelligence.com/clemensv.
In 2003 alone Clemens has spoken at over 40 events in 21 countries across Europe, Asia, and the United States, including numerous high profile conferences such as the Microsoft TechEd events in Dallas/USA, Barcelona/Spain and Kuala Lumpur/Malaysia. The focus of his work is to help customers understand and realize the potential of web services and service oriented architectures, using present and future Microsoft application services platforms, as well as to empower developers to create richer and more robust applications more efficiently.
Given that the "software is mystical, please pay me lots of money for it, you definitely shouldn't be allowed to see the actual code you pay for because that's precious" model is what keeps him in a job, I can see why he's defending it. If companies are only willing to pay for open* solutions, Microsoft have nothing for them. He'll need to re-work all his skills to a new platform vendor, or watch his business fail.
Work out how the obfuscator works, then reverse the process. If information is thrown away, provide fresh information as best as is possible.
The point is that you are losing information.
No, the point is that the obfuscated code still runs and still does the same thing as the pre-obfuscated code. If those properties are there, it is inevitable that you can derive the former from the latter.
I don't know why you speak of "variable names" or "stack traces". That is debugging, not reverse-engineering. Most reverse-engineers go on nothing more than a location or stack offset and read/write instruction bitwidth to distinguish variables. They certainly don't expect variable names. Those are derived from studying what the code does with the variable.
The reason you debug code is to make it work. If it's not your code, you're better off finding its owner and helping them debug it. The reason you reverse-engineer code is to get code you never had in the first place, and whose owner will not simply give you access.
There is nothing new under the sun. These Java and.NET obfuscators are just the same old anti-SoftICE sections, which were just the same old Amiga/Atari copylocks, which were just the same Spectrum/C64 turboloaders, and so on.
Every single one of these is broken. Almost all good programmers are capable of deciphering the standardised, retail-boxed algorithm used for the obfuscation, and can easily un-obfuscate it. Are all the Java variables named "a"? Diddums! You don't have a Java decompiler with the option to ignore that simple tweak.
All that matters is:
1) How important is the code behind the obfuscation?
2) How much time and effort is the reverse engineer willing to spend?
If you use a company's retail-box obfuscator, anyone with the "'Brand X obfuscator' deobfuscator v1.0" can get straight at your code. It's a technological arms race, nothing more.
I'm just reminding you. Making threats or committing criminal acts will not hinder the progress of medical science in the slightest. If you have any serious intentions of changing the laws of this country, write politely to your MP. If you're just looking for any old excuse for thuggery, well, I hope you like prison.
If you are doing vivisection or hunting I would advise watching your back. Jail is the least of your worries.
You amuse me. Please be more explicit about why I might want to "watch my back". Tell me all the details. I want to know exactly what you mean, please clarify your words.
I'd feel much more threatened if you attached your real name and address to your comments. Anyone can do the "psycho vegan dolescum" act with the power of psuedonymity.
There are no excuses for hunting and shooting and vivisection, violence begats violence.
There are no excuses for arson, ABH or death threats. I don't care if the pink rabbit told you to do it. Spread the word, pal: no more threats. No more trespass and damage. No more assault. If you or any of your like-minded chums try it on, you are going to jail.
I've got one thanks and it's put me out of action.
I hope you made good use of your Animal Research Abolition Card:
In the event of an accident or emergency, I will refuse all medical treatment developed and tested on animals, including, but not limited to, blood transfusions, anaesthetics, anticoagulants, antibiotics, sutures, open heart surgery and other types of surgery.
If I or my child suffers from a genetic illness or other serious condition, I will not allow any life-saving treatment developed through animal research.
None of my pets shall receive any veterinary vaccine or medicine that has been developed or tested on animals.
Feel free to live in your little vegan world where humans are inferior to animals, but don't try and take anyone with you.
And I don't hear much support for Animal Rights prisoners from our elected representatives.
Oh, you mean violent thugs who like to beat up scientists, set fires in laboratories, and write death threats to innocent people when they're not jacking off to kiddy porn?
"Animal Rights" thugs are sick, demented individuals who use "poor ikkle bunny wabbits" as an excuse to cause terror and mayhem. The quicker the police break up their evil, violent schemes and jail the ringleaders, the better.
I hope they all get a currently uncurable disease. That'll teach them for fucking with the progress of medical science.
You did realise that MPEG-2 is patented, right? Both encoding and decoding, yeah? DVD X Copy decodes the MPEG-2 and re-encodes with DivX (MPEG-4). Both are patented and must be licensed.
Re:"Co-opt Java"
on
How C# Was Made
·
· Score: 5, Insightful
Java was designed to co-opt Smalltalk, or at least Sun brand it and bring it up to date.
Think about it... Smalltalk's main points were the single root object heirarchy, the bytecode compilation, and the large runtime library including full GUI. Did C++ have this? No. It was more "object oriented concepts ported to C" - lean and mean, machine dependant and no standard GUI. The C++ generics and the STL weren't standard when Java arrived.
Globalising companies are not expanding to the third world to "send much needed money into the country". They are looking to exploit the quality-of-life and legislative differential between 1st and 3rd world countries. Corporations don't like anti-exploitation, safety laws, environmental protection laws -- it cuts potential profits.
Corporations only exist and only work towards making a profit for their owners. That is all they do. Ethics do not come into it. All ethical behaviour has to come from:
a) the people who directly control the corporation b) the people who control the environment of the corporation (i.e. the government)
If you live in a 3rd world country, the only way your life will get better when the factory comes is if those in charge (your government, elected or not) demand support for you as a condition of building the factory.
If a government does not demand that corporation build houses, schools and hospitals as part of the factory deal, the corporation won't do it. It's not a charity. It's not an international development agency. It's a corporation. Corporations only exist to make profits for their owners.
The problem some third world countries are having is that they are run by tinpot dictators who will let the corporations rape and pillage their fertile lands as long as the corporation gives them a backhander or builds them a new mansion. I don't like to assign "blame" in these situations, because it's tricky. The corporation is only doing what corporations do best -- get the best possible deal for the cheapest price. The tinpot dictator was probably installed there by the US anyway, so the pitiful serfs are stuck with that until the US empire crumbles.
Like you, I also like where I live. I wouldn't like to live in a place where I could get fired on a whim with no recourse but to launch expensive litigation. I wouldn't like to live in a place where the accident and emergency search my body for a credit card before they'll think about helping me.
It really does humour me. Two different worlds. By the way, I'm not a project manager. I'm a software engineer. I aim to become a software architect one of these days. I normally program in C and C++, occasionally assembler.
You already have Lotus Notes, the database and the GUI (i.e. Windows) written for you. You buy in graphics rather than draw them yourself. You don't need to write 99.9% of what you actually deliver. That's fine by me, but don't scoff at people who absolutely have to write 50% or even more of what they deliver. And don't scoff at them because they don't cut corners to make themselves look good.
I did maintenance on a project I had written 7 years earlier.
Maintaining your own code is easy, because it fits the way your mind works. Writing maintainable code means writing code that other people can maintain.
Some gcc 2.0 (I forget the version) would build 680x0 jump tables with unsigned shorts then jump as if they were signed. Thus it jumped to x-2 instead of x+fffe, if you see what I mean.
I didn't have the internet at the time, so no, I didn't update the test suite or even tell anyone.
I must admit that some closed source authors (e.g. Frank Wille when he was writing phxass) make a good effort to fix bugs immediately when they are told about them, but nothing's quite so satisfying as being able to say "there, found it, fixed it!" once you've spent 2 days finding out the bug, rather than "found it! now I have to mail the developers and wait a few weeks".
If I arrange an assassin to murder a US citizen, have I broken my home country's law? Probably not. Have I broken US criminal (not civil) law? Yes.
Morally, should I be extradited to face trial for my deliberate actions against the murdered US citizen?
Oh course, the law should be all different for when you're stealing software, shouldn't it? Bah. I'm a developer. I try to use Free Software exclusively. If I use non-free software, I pay for it. So should you.
I can also quote. From the GPL, this time:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
This quite clearly states that core operating system functionality provided by the vendor is exempt from the GPL's linking clause, provided it's a de-facto part of the vendor's operating system. So, you can use all Win32 calls and all system DLLs on Windows in GPL software. You can compile and link against Solaris's non-free libc without worry.
[Rare is] about the only British developer rich enough to risk alienating a few Yanks
It's true. If you want to tap into the Nation of Consumers, you have to dumb down your game to their lowest-common-denominator tastes. Or you can create a cultural gem of a game and starve.
Perhaps what we need are a few loss leaders. Revolution are giving away Beneath A Steel Sky, with its undeniably British sense of humour.
when you're close to a person their model contains 1000 polygons, when you're farther away the model would only be made up of 50 or 100 polygons.
Yeah, that's what I already said. The problem is that most algorithms do a terrible job of simplifying models, so you still need artists to draw (or tweak) the simplified models individually.
What I forgot to say in the original post is that because the game is built on Renderware Platform, the game graphics/models were created with Renderware Studio. Rockstar North used third-party tools to create their game content. They can't give out those tools, even though they wrote the game.
The game is mostly a huge bunch of data on top of Renderware Platform. The difficulting in creating the game is the huge amount of artwork required. Unlike a racing game or DOOM, you need to fill an entire city where every building needs all four sides and the roof defined, plus needs a multitude of models so it looks good both close up and at a distance.
Given that the "software is mystical, please pay me lots of money for it, you definitely shouldn't be allowed to see the actual code you pay for because that's precious" model is what keeps him in a job, I can see why he's defending it. If companies are only willing to pay for open* solutions, Microsoft have nothing for them. He'll need to re-work all his skills to a new platform vendor, or watch his business fail.
*: open source, not necessarily open licensing.
How can you 'deobfuscate'??
Work out how the obfuscator works, then reverse the process. If information is thrown away, provide fresh information as best as is possible.
The point is that you are losing information.
No, the point is that the obfuscated code still runs and still does the same thing as the pre-obfuscated code. If those properties are there, it is inevitable that you can derive the former from the latter.
I don't know why you speak of "variable names" or "stack traces". That is debugging, not reverse-engineering. Most reverse-engineers go on nothing more than a location or stack offset and read/write instruction bitwidth to distinguish variables. They certainly don't expect variable names. Those are derived from studying what the code does with the variable.
The reason you debug code is to make it work. If it's not your code, you're better off finding its owner and helping them debug it. The reason you reverse-engineer code is to get code you never had in the first place, and whose owner will not simply give you access.
There is nothing new under the sun. These Java and .NET obfuscators are just the same old anti-SoftICE sections, which were just the same old Amiga/Atari copylocks, which were just the same Spectrum/C64 turboloaders, and so on.
Every single one of these is broken. Almost all good programmers are capable of deciphering the standardised, retail-boxed algorithm used for the obfuscation, and can easily un-obfuscate it. Are all the Java variables named "a"? Diddums! You don't have a Java decompiler with the option to ignore that simple tweak.
All that matters is:
1) How important is the code behind the obfuscation?
2) How much time and effort is the reverse engineer willing to spend?
If you use a company's retail-box obfuscator, anyone with the "'Brand X obfuscator' deobfuscator v1.0" can get straight at your code. It's a technological arms race, nothing more.
The best part of all is that there's no cat.
Seems like you're the one with the threats.
I'm just reminding you. Making threats or committing criminal acts will not hinder the progress of medical science in the slightest. If you have any serious intentions of changing the laws of this country, write politely to your MP. If you're just looking for any old excuse for thuggery, well, I hope you like prison.
If you are doing vivisection or hunting I would advise watching your back. Jail is the least of your worries.
You amuse me. Please be more explicit about why I might want to "watch my back". Tell me all the details. I want to know exactly what you mean, please clarify your words.
I'm not threatening anyone.
Good. Keep it that way, unless you want to end up in jail.
I'd feel much more threatened if you attached your real name and address to your comments. Anyone can do the "psycho vegan dolescum" act with the power of psuedonymity.
There are no excuses for arson, ABH or death threats. I don't care if the pink rabbit told you to do it. Spread the word, pal: no more threats. No more trespass and damage. No more assault. If you or any of your like-minded chums try it on, you are going to jail.
I've got one thanks and it's put me out of action.
I hope you made good use of your Animal Research Abolition Card:
Feel free to live in your little vegan world where humans are inferior to animals, but don't try and take anyone with you.
And I don't hear much support for Animal Rights prisoners from our elected representatives.
Oh, you mean violent thugs who like to beat up scientists, set fires in laboratories, and write death threats to innocent people when they're not jacking off to kiddy porn?
"Animal Rights" thugs are sick, demented individuals who use "poor ikkle bunny wabbits" as an excuse to cause terror and mayhem. The quicker the police break up their evil, violent schemes and jail the ringleaders, the better.
I hope they all get a currently uncurable disease. That'll teach them for fucking with the progress of medical science.
You did realise that MPEG-2 is patented, right? Both encoding and decoding, yeah? DVD X Copy decodes the MPEG-2 and re-encodes with DivX (MPEG-4). Both are patented and must be licensed.
Java was designed to co-opt Smalltalk, or at least Sun brand it and bring it up to date.
Think about it... Smalltalk's main points were the single root object heirarchy, the bytecode compilation, and the large runtime library including full GUI. Did C++ have this? No. It was more "object oriented concepts ported to C" - lean and mean, machine dependant and no standard GUI. The C++ generics and the STL weren't standard when Java arrived.
The fact that Ad-Aware have a time travel machine and have sent us a definition list from the 2nd of April 2004 is more than enough for my needs.
You can't have my moon base! Where else could I hatch my diabolical schemes in peace?
If you try and take my moon base, I'll shoot you down with my "laser".
Next.
Well, we have you pinpointed somewhere between Leeds and Sheffield on account of your music tastes, expect a knock on the door soon! :)
You're not Andy Smith from Binary Asylum are you?
I remember 4-Mat and Nuke and Jesus on E's very well.
Globalising companies are not expanding to the third world to "send much needed money into the country". They are looking to exploit the quality-of-life and legislative differential between 1st and 3rd world countries. Corporations don't like anti-exploitation, safety laws, environmental protection laws -- it cuts potential profits.
Corporations only exist and only work towards making a profit for their owners. That is all they do. Ethics do not come into it. All ethical behaviour has to come from:
a) the people who directly control the corporation
b) the people who control the environment of the corporation (i.e. the government)
If you live in a 3rd world country, the only way your life will get better when the factory comes is if those in charge (your government, elected or not) demand support for you as a condition of building the factory.
If a government does not demand that corporation build houses, schools and hospitals as part of the factory deal, the corporation won't do it. It's not a charity. It's not an international development agency. It's a corporation. Corporations only exist to make profits for their owners.
The problem some third world countries are having is that they are run by tinpot dictators who will let the corporations rape and pillage their fertile lands as long as the corporation gives them a backhander or builds them a new mansion. I don't like to assign "blame" in these situations, because it's tricky. The corporation is only doing what corporations do best -- get the best possible deal for the cheapest price. The tinpot dictator was probably installed there by the US anyway, so the pitiful serfs are stuck with that until the US empire crumbles.
Where have you ever seen a 75% tax rate?
Like you, I also like where I live. I wouldn't like to live in a place where I could get fired on a whim with no recourse but to launch expensive litigation. I wouldn't like to live in a place where the accident and emergency search my body for a credit card before they'll think about helping me.
It really does humour me. Two different worlds. By the way, I'm not a project manager. I'm a software engineer. I aim to become a software architect one of these days. I normally program in C and C++, occasionally assembler.
You already have Lotus Notes, the database and the GUI (i.e. Windows) written for you. You buy in graphics rather than draw them yourself. You don't need to write 99.9% of what you actually deliver. That's fine by me, but don't scoff at people who absolutely have to write 50% or even more of what they deliver. And don't scoff at them because they don't cut corners to make themselves look good.
I did maintenance on a project I had written 7 years earlier.
Maintaining your own code is easy, because it fits the way your mind works. Writing maintainable code means writing code that other people can maintain.
Some gcc 2.0 (I forget the version) would build 680x0 jump tables with unsigned shorts then jump as if they were signed. Thus it jumped to x-2 instead of x+fffe, if you see what I mean.
I didn't have the internet at the time, so no, I didn't update the test suite or even tell anyone.
I must admit that some closed source authors (e.g. Frank Wille when he was writing phxass) make a good effort to fix bugs immediately when they are told about them, but nothing's quite so satisfying as being able to say "there, found it, fixed it!" once you've spent 2 days finding out the bug, rather than "found it! now I have to mail the developers and wait a few weeks".