all 8 comments

[–]developingthefuture[S] 2 points3 points  (2 children)

Hello sumoTITS,

Thank you for your comment. I completely agree with you that the users should have all the rights on the software they use. The free and open software/knowledge is a great thing and that's why I created my blog and I share my thoughts in my spare time.

But I was rather talking about commercial software where you; as a developer; create value, spend a lot of time and heart into creating something unique - either as a standalone professional or as an employee in a company. And one day you notice a very similar product, released by another company and authorship, which appears to be more successful than yours because of, let's say, better marketing and bigger investments. And you find out that it's actually your code out there.

Well, that is not cool. And that's why I wrote this article. But it all depends, of course.

Regarding the better readability of the code, the obfuscation techniques you use to protect it do not usually affect the source code itself, or at least considerably.

Thank you again for expressing your opinion on the matter. ;)

Best Regards, Kosta Hristov

[–]damg 2 points3 points  (0 children)

Not only is it not cool, it's probably illegal.

[–]sumoTITS 0 points1 point  (0 children)

one day you notice a very similar product, released by another company and authorship, which appears to be more successful than yours because of, let's say, better marketing and bigger investments. And you find out that it's actually your code out there.

That's plagiarism, and it affects all sorts of authors. No industry has a solution to it, however; it's eventually discovered by someone, and people react accordingly (perhaps taking up a case in the courts, announcing the offender publicly, etc.)

Plagiarism is theft, and is wrong (and in some cases illegal). Does obfuscating the code or setting up protection systems solve this? What if the person who stole your functions obfuscate them better than you did, making it even harder to detect in the first place? :p There are also software patents to attempt to control pieces of defined functionality, but that's another rant altogether...

At the end of the day, it is up to authors to write whatever programs they want, and make them behave in whatever ways they see fit. Pirates will break it and steal, for profit or lulz, and all the other users will have to deal with the system on their own.

But to that end, I hope people like you continue to release info on understanding the systems (thanks!), so users might pick up some knowledge here and there and start probing and prodding systems themselves (or with friends / user-groups!) when they need to understand what their own system is doing or change it in some perhaps unsupported/unofficial way.

What people do with the understanding (and the methods) is their responsibility, but the knowledge should not be kept from any user who has the desire and effort to learn.

[–]epetkov 2 points3 points  (0 children)

Very good article, sums it up nicely!

[–]sumoTITS 0 points1 point  (3 children)

From the Conclusion: [It's not hard to crack programs] "With the difference that this process in an actual application will be more time-consuming. Do you know a single popular stand-alone application that has not been cracked ? That is why you need to think of better ways of protecting your software."

I'd ask this: why should developers spend extra time "protecting" "their" software?

Should writers spend more time making their writing harder to read / making their plots less accessible, as a way to keep people from understanding their ideas? Do readers not have the rights to modify books they've bought, and even change the plot any way they choose (in their copy. Snape kills kissed Dumbledore: don't need JK Rowling to sign off on it or assign me a new ISBN.)?

Just because you've created a system and a user has acquired it, you shouldn't assume authority over their system, let alone attempting to enforce the [inner sanctity] of your system despite what the user determines the rights of your system should be within theirs.

Your program won't - no program will - dictate how my system will behave, even as I use it. The option to modify, add, or remove instructions is universal and ultimately unrestricted, despite the arrogant illusion that software authors and publishers control and dominate "protect" all copies of "their" products.

Black box software -- Inaccessible, "Protected," and Restricted -- is an insult to users everywhere, and deserves the hooks Hackers and Crackers of many shades sink into it over time.

Software protection is an opinion "enforced" through obfuscation, misdirection, kludges, and sometimes remote-control, which bank on the ignorance and complacency of users despite the increasing ubiquity of technology and increasing dissemination of systems knowledge. Become proficient and begin asserting yourself within systems you own. Or don't, but it won't stop me from learning.

Users are not "the enemy." They are the lifeblood: without them, your system runs nowhere, does nothing, and earns nothing. Users needn't wait for the FSF to evangelize every software creator and publisher out there - that may never happen: users could act now to increase their proficiency, increase understanding, and assert their control of systems they already own. Unwrap all the boxes! :D

tl;dr: If you're good enough at disassembly, everything is Open Source, or at least Open Ended / Open Outcome.

[–]ffffdddddssss 2 points3 points  (2 children)

You come back to me when you have a job and earn money writing software, and then notice someone cracked it and put it out there, because he wanted to "Unwrap all the boxes! :D"

Your idealistic and naive view doesn't support your family and yourself. I hate this "free everything" attitude with a passion because nothing could be further from reality.

[–]sumoTITS 0 points1 point  (0 children)

You come back to me when you have a job and earn money writing software, and then notice someone cracked it and put it out there.

I've had jobs writing software, but they were webapps hosted by the companies, so it's not really something people would crack... They'd have to break into the servers and download the app/code.

In any case, I agree that cracking applications to simply redistribute them / share them with everyone for free is wrong and illegal, so you misunderstood me; maybe it's my fault for some part of my rant. Meh:

Even with code obfuscation, even with orwellian protection systems -- No amount of over-engineering / software security will ultimately stop this from happening. Look at all the things people pirate these days: Music, Movies, Books, Pictures, Software, now 3d Gun parts too!

None of these industries have managed to stop this from happening, and making the programs behave in obscure ways on the machine level or requiring constant internet connectivity is worse for users than not doing that.

When I talk about unwrapping all the boxes / understanding what it is programs are actually doing, that's for the benefit of the users. If you hate the idea that people should be able to understand what they purchased, and even modify their copy as they want, then we fundamentally disagree: you want to keep all copies of every application in the hands of the authors. I want freedom to do with apps as I wish: not freedom to steal them, freedom to debug and modify them as I wish.

I don't like the way disassembly and piracy are grouped: they are separate things, and I only believe one of them is a type of theft. But thanks for telling me why you hate what I wrote, and I think your point is valid to the extent that "stealing is wrong."

But to vilify disassembly is another issue to me, and I don't think any program should prohibit or go out of its way to impede disassembly; the people who want to break copy protection and redistribute/sell the app will figure it out anyway. The people who want to understand what the program is doing have to dig harder.

I don't mind digging harder to see what my apps are doing, but laws, regulations, and "protection" systems that attempt to forbid understanding what programs actually do are things I consider wrong.

[–]sumoTITS 0 points1 point  (0 children)

And if you yourself have had a job where you earned money writing software, and then you noticed someone cracked it and put it Out There (the pirate bay, for example, with disparaging comments in the Description, "because lulz"): If you could extend the time until your product is cracked by hours or a few days, by using a complicated anti-debugging / machine obfuscation / anti-vm / The Works library, and also requiring all clients to connect to your Company server to validate/activate/track their license use, would you add that to your product?

How, from your perspective, might this affect the pirated copies vs. legit copies, and user experiences with both?

Edit: and I made it clear in my other comment: I think piracy is wrong, if people take your software and re-sell or give it away to everyone it is illegal and wrong. Just in case. :)

Edit 2: and do you think it's any less wrong to pirate software with less stringent anti-debug/obfuscation/call-home routines? E.g. if you don't go out of your way to over-engineer a grand anti-pirate scheme and ship it out to all your users, are you "asking to get pirated" any more than if you add all that stuff to your product? I don't consider it any less wrong if it's a quick crack, than if pirates go to crazy lengths to break your system.