flat assembler
Message board for the users of flat assembler.

Index > Main > Open Source encouragement?

Author
Thread Post new topic Reply to topic
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 24 Jul 2006, 01:12
Basically what I want to do is release a compiler which will create executables which run fine on the same machine they were built on in all cases, but those created by the freeware version will only do so on that same machine; to create an executable (closed source) which will run on any machine, nag-free, needs the compiler to be registered (a licence code purchased).

Basically, if you copy the .exe (created by the freeware compiler) to another PC I propose it will pop-up a message "Checksum or Licence error"; "The executable C:\blah\blah.exe is corrupt or incorrectly licenced"; Press Help (goes to my web page), Cancel (aborts pgm), or Ignore (runs anyway).

Patching a built .exe to avoid this nag should be reasonably trivial, at least far easier than patching my compiler to create nag-free files (erm you don't care, do you?).

Anyway, this sound good? reasonable? crap?

cpuid is a clear start, anything else I should consider? Of course I will greatly appreciate any free detailed technical help on my payware project (Wink) but I would equally appreciate people's opinions on the overall idea.

Thanks,
Pete

PS The VM is written in fasm and any licencing would be too, all that closed source; but the front-end is self-hosted and completely open source, completely free for all personal and open-source work.
Post 24 Jul 2006, 01:12
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 24 Jul 2006, 06:51
Quote:
Patching a built .exe to avoid this nag should be reasonably trivial, at least far easier than patching my compiler to create nag-free files (erm you don't care, do you?).

Patching created executable must be at least hard enough to do with automated tools, otherwise someone will create generic patcher, and effect will be same as if your compiler was patched
Post 24 Jul 2006, 06:51
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
zhak



Joined: 12 Apr 2005
Posts: 501
Location: Belarus
zhak 24 Jul 2006, 07:35
I do not think, that this idea is good.
First of all, if you wanna protect your app, then the protection should be good... no, even well organized If not, then it's pointless. Why do you want to make nag screens that can be removed in 5 seconds? Just to annoy users? It's silly, I think.
The second is... it wouldn't be hard to remove protection from your compiler, so it is nonsence.
In the third, nobody will use such a compiler. To my mind, its obvious, why.
Post 24 Jul 2006, 07:35
View user's profile Send private message Reply with quote
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 24 Jul 2006, 13:54
vid wrote:

Patching created executable must be at least hard enough to do with automated tools, otherwise someone will create generic patcher, and effect will be same as if your compiler was patched

I plan to write the file in a random order, eg if I compile routines A and B, it does not matter which way round they appear in the executable, providing I call the location that I actually put them. Similarily I can do the same with all data and variables, including any licence info and code. At least that would make an automated patcher a bit harder.
zhak wrote:

First of all, if you wanna protect your app, then the protection should be good... no, even well organized If not, then it's pointless. Why do you want to make nag screens that can be removed in 5 seconds?
The second is... it wouldn't be hard to remove protection from your compiler, so it is nonsence.

Obviously I don't intend to make it deliberately easy, however I am trying to be realistic in these days when there are people who can decipher pgp, so I'm trying to devise a scheme where it is at least slightly easier (erm, less difficult) to crack the output rather than the compiler itself.
zhak wrote:

In the third, nobody will use such a compiler. To my mind, its obvious, why.

Can you explain that? If by "nobody" you mean anyone on this board then you are probably correct. Maybe I explained myself poorly, but it is far from obvious to me. If you imagined a nag screen in the edit/compile/run cycle then you should re-read the original post. Perhaps I should have stressed that you can develop something open source completely free, and if anyone else gets the source of your app, they can run/compile it for free by installing the freeware program, or you'd be perfectly entitled to bundle a copy of that in with the sources and auto-compile it as part of an installation script. The nag only comes into effect if you don't want to release the source code of your app.

Or are you saying that the only way it is possible to sell a compiler is if your name is Bill Gates? Are you saying that no-one will ever try a program for free? Are you saying that no-one would ever buy something they can try before they buy or that they would buy it sight unseen if they could not?


Last edited by Posetf on 25 Jul 2006, 01:17; edited 1 time in total
Post 24 Jul 2006, 13:54
View user's profile Send private message Visit poster's website Reply with quote
UCM



Joined: 25 Feb 2005
Posts: 285
Location: Canada
UCM 24 Jul 2006, 13:55
If you didn't want to release your source code, you would use another compiler.
Post 24 Jul 2006, 13:55
View user's profile Send private message Reply with quote
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 24 Jul 2006, 14:06
UCM wrote:
If you didn't want to release your source code, you would use another compiler.

You'd have to write your programs in a different language then Wink
Besides, although it may seem like it in this thread, the nag screen is not the only interesting feature on offer Wink
Post 24 Jul 2006, 14:06
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 24 Jul 2006, 17:49
Quote:
In the third, nobody will use such a compiler. To my mind, its obvious, why.
sorry, but this is right. If you want it not as excersise, but as some real-trade-tool, then forget.... anyway, such coding exprience makes you a all-rounded coder
Post 24 Jul 2006, 17:49
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Quantum



Joined: 24 Jun 2005
Posts: 122
Quantum 24 Jul 2006, 18:30
2 zhak & vid:
If you guys mean nobody whould ever buy a compiler just because there are free tools available, I disagree.

There are many commercial compilers, like PureBasic and BlitzMax, and people actually spend their money buying such tools. Not because those compilers are extremely powerful or very easy to use (you can't even compare PB to VS or Delphi or CodeWarrior), but because they target a particular developers community and offer very specific features.


Last edited by Quantum on 24 Jul 2006, 20:49; edited 1 time in total
Post 24 Jul 2006, 18:30
View user's profile Send private message Reply with quote
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 24 Jul 2006, 19:52
vid wrote:
sorry, but this is right.

explain please
Post 24 Jul 2006, 19:52
View user's profile Send private message Visit poster's website Reply with quote
zhak



Joined: 12 Apr 2005
Posts: 501
Location: Belarus
zhak 24 Jul 2006, 21:09
This compiler may be used by individuals for hobby projects only, if an app
can be executed on a single machine it was built on. This people wouldn't like to register the compiler. And even these people may want to give their programs to friends. But they will not be able to...
If the compiler is used in enterprises, then team work will suffer a lot. Testers will not be able to work with builds and so on. If team of developers would like to try the compiler, then fully functional trial will suit them more.
Post 24 Jul 2006, 21:09
View user's profile Send private message Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak 24 Jul 2006, 21:38
i'm not reading all the replies, but here's a suggestion. Have it make a file that's encoded and can only be opened through the program that made it. If you buy a licence, then you can compile it into an exe whcih will be distributed...

EDIT: and it would be able to run through all the versions of your software, so they basically have to download your software to use it. That way, they can send it to friends, but they get nagged every time they have to run it by having to go through the software to open up the program to be run. Paid people can make them into exes which won't require your software.
Post 24 Jul 2006, 21:38
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 25 Jul 2006, 01:15
zhak wrote:
This compiler may be used by individuals for hobby projects only, if an app can be executed on a single machine it was built on. This people wouldn't like to register the compiler. And even these people may want to give their programs to friends. But they will not be able to...

Yes they will, if they give them the source.

The plan is a hybrid interpreter/compiler anyway, so load/run-time of freeware interpreter + source vs pre-built exe would be minimal.

<***BIG ASIDE***>
Actually there will (may) also be another (free) feature that allows "targetted executables" to be built: if one of your friends downloads the freeware, runs it, and emails you their "hardware signature", you'll be able to send them a tailored exe. I doubt many will use that for real, but it dropped out of the way I plan to supply/apply licence codes anyway: Someone downloads the freeware version and the source, buys a licence from me using their "hardware signature", the code I send back is used to rebuild their compiler to make it properly licenced. It is a minor thing to allow the "public key" to be used much the same. Only thing is, they have to rebuild for each "friend" they want to email it to. Then again, I'd send my "friends" the source anyway.
</***BIG ASIDE***>

zhak wrote:

If the compiler is used in enterprises, then team work will suffer a lot. Testers will not be able to work with builds and so on. If team of developers would like to try the compiler, then fully functional trial will suit them more.

In such case why not just copy the source code not the exe? As above, writing a script to create "targetted executables" to copy over a network would not be difficult/discouraged either. Rebuilding even a big app from source will be trivial, btw.

Regards,
Pete
PS this is all quite good feedback actually, thanks, keep it up!
Post 25 Jul 2006, 01:15
View user's profile Send private message Visit poster's website Reply with quote
Posetf



Joined: 01 Mar 2004
Posts: 35
Location: London
Posetf 25 Jul 2006, 01:36
kohlrak wrote:
i'm not reading all the replies, but here's a suggestion. Have it make a file that's encoded and can only be opened through the program that made it. If you buy a licence, then you can compile it into an exe whcih will be distributed...

It is actually a big part of my plan to allow (nag-)free open source development and free, but nagged, exe distribution. It is just nag-free closed source that I want to require licencing.
kohlrak wrote:

EDIT: and it would be able to run through all the versions of your software, so they basically have to download your software to use it. That way, they can send it to friends, but they get nagged every time they have to run it by having to go through the software to open up the program to be run. Paid people can make them into exes which won't require your software.

I think you're on-board with much the same idea but proposing two steps not one. People who get the nag can just click on "ignore" and run it anyway; many will click on "help", learn, and encourage the author to register (I hope).

Regards,
Pete
Post 25 Jul 2006, 01:36
View user's profile Send private message Visit poster's website Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak 25 Jul 2006, 01:40
Help never works... Basically, the nag will come from the fact they have to use the program that made it to use it since they won't compile it into a stand alone exe file until the author registers it.
Post 25 Jul 2006, 01:40
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
zhak



Joined: 12 Apr 2005
Posts: 501
Location: Belarus
zhak 25 Jul 2006, 07:02
Quote:
Have it make a file that's encoded and can only be opened through the program that made it.

you suggest to use a loader... hm, it'll increase loading time greatly. and if your app is huge, it will make users nervous. I don't think anybody would like to drink some coffee or boil an egg while the app is initializing.
Quote:
If you buy a licence, then you can compile it into an exe which will be distributed.

it's too troublesome. windows users are lazy enough to download a compiler to build one proggie. As for me, I'd rather find anything else and install it in two clicks, than download source code, then compiler, then acquire licence and compile... arghhhhh. you have to keep things as simple as possible...
Post 25 Jul 2006, 07:02
View user's profile Send private message Reply with quote
UCM



Joined: 25 Feb 2005
Posts: 285
Location: Canada
UCM 25 Jul 2006, 13:25
Might as well program in PHP, since it has no bytecode form.
Post 25 Jul 2006, 13:25
View user's profile Send private message Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak 25 Jul 2006, 18:53
zhak wrote:
Quote:
Have it make a file that's encoded and can only be opened through the program that made it.

you suggest to use a loader... hm, it'll increase loading time greatly. and if your app is huge, it will make users nervous. I don't think anybody would like to drink some coffee or boil an egg while the app is initializing.
Quote:
If you buy a licence, then you can compile it into an exe which will be distributed.

it's too troublesome. windows users are lazy enough to download a compiler to build one proggie. As for me, I'd rather find anything else and install it in two clicks, than download source code, then compiler, then acquire licence and compile... arghhhhh. you have to keep things as simple as possible...


As simple as possible would be making it free and not require a licence.. =p If you want C++, most people either pirate MSVS or use bloodshed(Dev-C++)... lol For assembly, most would use fasm.... Heck, i learned C++ with DMC... Commandline, crappy, but worked...

Quote:
Might as well program in PHP, since it has no bytecode form.


RORFLMAO I don't know hwo you'll make an EXE from that. Needless to say, that's so good i'm putting it in my aim profile. X'D
Post 25 Jul 2006, 18:53
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
okasvi



Joined: 18 Aug 2005
Posts: 382
Location: Finland
okasvi 25 Jul 2006, 19:04
kohlrak wrote:
Quote:
Might as well program in PHP, since it has no bytecode form.


RORFLMAO I don't know hwo you'll make an EXE from that. Needless to say, that's so good i'm putting it in my aim profile. X'D



As I did understand it, it was sarcasm.

When you see someone who knows what he is speaking about on coding board, and you see him talking nonsense, take it as sarcasm.

_________________
When We Ride On Our Enemies
support reverse smileys |:
Post 25 Jul 2006, 19:04
View user's profile Send private message MSN Messenger Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak 25 Jul 2006, 19:09
okasvi wrote:
kohlrak wrote:
Quote:
Might as well program in PHP, since it has no bytecode form.


RORFLMAO I don't know hwo you'll make an EXE from that. Needless to say, that's so good i'm putting it in my aim profile. X'D



As I did understand it, it was sarcasm.

When you see someone who knows what he is speaking about on coding board, and you see him talking nonsense, take it as sarcasm.


Of course it was sarcasm, that's why it was funny. lol while accepting your saracam, i was still pointing out it's likely impossible. lol
Post 25 Jul 2006, 19:09
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
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
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.