Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3368: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3370: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3371: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3372: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
OrbWorks Community Forum • View topic - What's the best way to sell my "shareware"?
Page 1 of 2

PostPosted: Tue Jan 14, 2003 1:59 am
by FrappyDan
:?:Aside from a lot of java applets I've written for friends and for my own use I've never actually "sold" my software before. At least not on the web. Anybody got any tips on things like Licensing, copywrites, places to upload? I've already built the shareware "30 day" and registration stuff into my program, but just wondering what the best way to sell it is...Anybody???:oops:

FrappyDan

PostPosted: Tue Jan 14, 2003 4:59 am
by wolfgang
I started out with a simple website containing some program description and a link for download. Buying a domain name got a lot less expensive in the recent years and runs at around $15 per year, maybe even less. I used directnic.com to register. If you don't want to shell out additional money for hosting, you can either use some free hosting service, but they usually put your site into a frame with plenty of annoying banners etc. around, or you can have the domain name pointing to some webspace you already own (I use the webspace that comes with my dialup account) for free.

Once you have this, you can easily submit the download link to the different shareware sites. To name a few: http://www.download com (may not accept new submissions anymore unless you pay for it), http://www.tucows.com, http://www.pdapointer.com, http://www.pdacentral.com, http://www.pocketpcworld.com.

Payment goes well using paypal.com, they take the smallest fee out of your payment (around $0.70 for a $15 program) while still enabling you to accept credit cards. No fixed costs, so if you don;t sell anything, you don't pay anything. Or use one of the Shareware distributors, e.g. http://www.shareit.com or http://www.pdapointer.com, but they are way more expensive (around $3 - $4 for a $15 program, with high minimum costs per sale so it is impossible/useless to sell anything that costs below $10. On the other hand, some people prefer to use them. I offer both solutions, but I charge my customers the additional cost (compared to paypal) and still have about 1/4 buying through the more expensive way).

Make sure you give prospective buyers may places to find your contact address (email) and webpage. I.e. About window, Help, readme file in the download, links on your webpage. etc. etc. Explain the registration process well. Submit to as many download sites as you can find.

Wolfgang

Composing music on the PocketPC! - http://www.pdamusician.com

PostPosted: Thu Jan 16, 2003 2:27 am
by FrappyDan
Thanks Wolfgang. By the way, do they make an easy-to-use help file creator for the WINCE platform? If so, where can I snagg one?

FrappyDan

PostPosted: Thu Jan 16, 2003 8:25 am
by guy
You can get ce help file creators, but ce help files are just html files with a couple of meta tags at the top and a special comment tag between sections. You can just use a text editor.

I have a "fill in the blanks" template help file. I'll post it here later today.


Guy
[url]mailto:pcform@pcform.net[/url]
http://www.pcform.net
PocketC CE API interface: http://www.networkdynamics.net/PCForm.html#library
PCForm and CE API forum: http://www.networkdynamics.net/forum

PostPosted: Thu Jan 16, 2003 2:09 pm
by guy
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">

<html>
<head>
<!-- Change the file name in the following two meta tags -->
<!-- These two lines are essential to work with all versions of help -->
<meta http-equiv="Content-Type" Content="template.htp#MAIN_CONTENTS">
<meta http-equiv="Htm-Help" Content="template.htp#MAIN_CONTENTS">
<title>Template help file</title>
</head>
<body>
<!-- PegHelp -->

<!-- The main section of the help file must be named MAIN_CONTENTS -->

<a name="MAIN_CONTENTS"></a>
<h1>Help for template</h1>
<a href="template.htp#overview">Overview</a><br>
<a href="template.htp#reference">Reference section</a><br>
<a href="template.htp#release">Release notes</a><br>
<!-- Note that all links have to include the file name of the help file -->
<!- The PegHelp line at the end of each section is required, note the hr tag at the end -->
<!-- PegHelp --><hr>

<a name="overview"></a>
<h2>Overview</h2>
<p>
This is a template help file. You need to edit it to turn it into a real help file. Ensure that you change all of the references to <b>template</b> into the name of your help file.
</p>
<p>
Each section starts with an HTML anchor tag to name the section. Use this tag in the links to the section. You <b>must</b> include the name of the help file in the link.
</p>
<p>
Note that each section ends with a line containing the word <b>PegHelp</b>. This is essential it tells the help program where each section ends. Although it looks like an HTML comment line, it isn't.
</p>
<!-- PegHelp --><hr>

<a name="reference"></a>
<h2>Reference section</h2>
<a href="template.htp#ref1">First reference stuff</a><br>
<a href="template.htp#ref2">Second reference stuff</a><br>
<a href="template.htp#ref3">Third reference stuff</a><br>
<!-- PegHelp --><hr>

<a name="ref1"></a>
<h3>First reference stuff</h3>
<p>
This is the first lot of useful reference information.
</p>
<!-- PegHelp --><hr>

<a name="ref2"></a>
<h3>Second reference stuff</h3>
<p>
This is another lot of useful reference information.
</p>
<!-- PegHelp --><hr>

<a name="ref3"></a>
<h3>Third reference stuff</h3>
<p>
This is yet more useful reference information.
</p>
<!-- PegHelp --><hr>

<a name="release"></a>
<h2>Release notes V1.0</h2>
<p>
This is the first version of the template help file.
</p>
<!-- PegHelp --><hr>

</body>
</html>


<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


The following is an INF file that installs a help file and adds the help to the built in help on CE versions from 2.11 onwards.

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">

;==================================================
; template.inf
;
;==================================================

[Version]

Signature = "$Windows NT$"
Provider = "Your name here"
CESignature = "$Windows CE$"


[CEStrings]

AppName = Template
InstallDir = %CE1%\%AppName%

;==================================================

[DefaultInstall]

CopyFiles = Helpfiles
CEShortcuts = Helpmenu

;==================================================


[SourceDisksNames]

1 =, "Common Files",, C:\Dist


[SourceDisksFiles]

template.htp = 1

;==================================================

; Ouput directories for files & shortcuts

[DestinationDirs]

Helpfiles = 0,%CE2%
Helpmenu = 0,\Windows\Help
DefaultDestDir = 0,%InstallDir%

[Helpfiles]

template.htp,,,0

[Helpmenu]

Help about template,0,template.htp

<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

You need to merge these sections in with your own INF file.


Guy
[url]mailto:pcform@pcform.net[/url]
http://www.pcform.net
PocketC CE API interface: http://www.networkdynamics.net/PCForm.html#library
PCForm and CE API forum: http://www.networkdynamics.net/forum

PostPosted: Sun May 18, 2003 12:34 am
by xor
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by FrappyDan</i>
<br />:?:Aside from a lot of java applets I've written for friends and for my own use I've never actually "sold" my software before. At least not on the web. Anybody got any tips on things like Licensing, copywrites, places to upload? I've already built the shareware "30 day" and registration stuff into my program, but just wondering what the best way to sell it is...Anybody???:oops:

FrappyDan
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

How did you do the 30-day and registration stuff? I am wanting to do this (for PalmOS at the moment if it makes a difference), I would welcome any information or tips, or pointers to any tutorials.
Thanks!

PostPosted: Sun May 18, 2003 11:46 pm
by wolfgang
A simple way (and thus imperfect) to do it:

PalmOS: When the program starts, check if the registration database for your program (see below) exists. (a) If not, create it and store the current date. (b) If it does, get the current date and check if the date in the database is more than 30 days earlier. If this is the case, issue a message and then quit the program.

Use some bogus creator ID for the database (you should still register the ID with Palm so it does not clash with any other program!), so it does not get deleted when the user uninstalls or re-installs the program. This is a bit unclean because it leaves garbage on the device, but many programs do it that way. You may also put those settings into the preferences database instead of creating your own.

WindowsCE: Same algorithm, but put the date info somewhere in the Windows registry. Again, use "security by obscurity" by putting it on some unexpected place so it is hard to find.

You may want to do some additional sanity checks. E.g. if the date is too far in the future (e.g. more than 10 years), or if the current date is earlier than the date at first start, somebody obviously tries to play tricks by changing the system date and you should immediately disable the program for good, until he installs the full (registered) version (issue an appropriate message so the user knows what he did).

All those methods will work well with average users, but an experienced user will be able to trick them (e.g. backing up the device before and after, or having a program that tracks the changes and reverses them, or backing up the registry before and/or after installation (WindowsCE only).

If you still don't trust your 30-day limit to be very effective (I personally don't), then just have two versions - a full registered and a demo version. Shareware sites like handango.com, pocketgear.com, pdapointer.com and others offer to upload both and send out the correct one (i.e. the full only after the person has bought the program).

Wolfgang




Composing music on the PocketPC! - http://www.pdamusician.com

PostPosted: Wed May 21, 2003 5:26 pm
by KOU
Never use registry info for registering.
(storing date etc.)

PocketC is nearly impossible to reverse engineer it. (despite the program itself) It uses special bytecode to run on all platforms.
But registry change can be very easily tracked by using special tools.

Never do the following:
- store reg key in a string value in the program decrypted. (You can see it using binary editor)
- Same reg key for every user. (can't track who made the key public.)
- Store day info in registry.

Do following:
- Some math algorithm to make the key.
- Use user info to create the key.

These methods only work in PocketC.

For EVC++ programs, more protection is needed.

PocketC apps are small, so it will be best to send the full app to every user.

Kou

PostPosted: Thu May 22, 2003 2:40 pm
by wolfgang
Well, I still think the registry is a good place to store things (where else? A file can be read with any hex editor, a database can be read with similar tools, and at least the registry is guaranteed to be around and not accidentally get deleted).

What I agree absolutely with (and I should have mentioned this myself): Never store important things unencrypted ANYWHERE. So when you store a date or a registry key, come up with some scrambling algorithm, or (better) use one of the standard ones. Since PocketC applets are hard to reverse-engineer (unlike standard machine code), this gives a good level of security; and at least as long as you don't write financial software for a major bank or some other extremely attractive software, there won't be many people willing spending days and weeks just to crack a minor little game or something like that anyway :-)

Wolfgang


Composing music on the PocketPC! - http://www.pdamusician.com

PostPosted: Thu May 22, 2003 10:40 pm
by KOU
>>(and I should have mentioned this myself)
Sorry Wolfgang, I should have read your post better.

>>There won't be many people willing spending days and weeks just to >>crack a minor little game or something like that anyway :-)

There are.
Most crackers crack for fun, not because they hate the author or software, nor they want to use the software.
And they cause troubles by distributing their cracks. (It is very weird because they thinks they are contributing community by it)
I haven't seen any project to reverse engineer PocketC bytecodes, but someone might in the future.

I think it is very important for shareware makers to watch the PocketPC crack forums to prevent pirate of their softwares.

KOU

PostPosted: Thu May 22, 2003 11:00 pm
by KOU
I can't edit last post. Weird.

I still think registry is bad place to store reg infos.
Storing some infos into not proper places (for ex. PocketIE regs) sometimes cause problems to device.

There is still many places to hide like fake system file. (.DLLs but it is actually text file! make sure about the filesize too. Too small can be fatal)

As I said in the last post, if you must store reginfo in the registry, I strongly recommend to use the user info (Name, Phone etc) to encrypt using device info.

-------------------------------------------------------------------

As I was reading this board, I think I came up with a way to reverse engineer PocketC Apps.
I hope that crackers don't know this method.
I don't know if it will work on PocketC V2, but I am pretty sure that this method will be effective on V3.
V2 might be also can be REngineered if I used Runtime V3.
I don't have time right now, so I will try it later in my freetime.
I can't talk about the method in this board because I don't want to make this method public for crackers, but if some REAL shareware makers wants to know, contact me @ mail.
mailto:kouhei_ueno@hotmail.com

KOU

PostPosted: Fri May 23, 2003 5:28 pm
by KOU
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by KOU</i>
I don't have time right now, so I will try it later in my freetime.
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

It worked.
It was hard to do it without reverse-engineering the runtime...
But it was successful. I did not break the license agreement because I did not disassemble the runtime.
Now its a myth PocketC programs can't be cracked.
(I don't know about Palm though)

KOU

PostPosted: Thu Jul 17, 2003 1:23 am
by rayburn
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">PalmOS: When the program starts, check if the registration database for your program (see below) exists. (a) If not, create it and store the current date. (b) If it does, get the current date and check if the date in the database is more than 30 days earlier. If this is the case, issue a message and then quit the program.
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

thats useful...

im doing an application pack(1 app with 5 pdb's)
its 5 pranks that can be beamed...

what if i dont want the unregistered application to be able to beam pranks. what do i do then? i dont want to use up too much space(rewriting half the program for the unregistered version)

oh yeah.. i was also wondering how to make a registration key generator...

thanks

PostPosted: Thu Jul 17, 2003 2:29 pm
by rayburn
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">It worked.
It was hard to do it without reverse-engineering the runtime...
But it was successful. I did not break the license agreement because I did not disassemble the runtime.
Now its a myth PocketC programs can't be cracked.
(I don't know about Palm though)
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

...I regret to inform you that you are not the first one to figure that out...
I know a site of crackers that have been cracking apps in pocketC a long time before you might ever have thought of it possible... unfortunately.
if anyone wats to know the url of that site(to press charges or whatever) contact me @ R_A_Y_B_U_R_N@hotmail.com

Thanks

PostPosted: Fri Jul 18, 2003 2:31 am
by xor
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by rayburn</i>
<br />[quote]
im doing an application pack(1 app with 5 pdb's)
its 5 pranks that can be beamed...

what if i dont want the unregistered application to be able to beam pranks. what do i do then? i dont want to use up too much space(rewriting half the program for the unregistered version)
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

There is a great little shareware palm app for $15 called [url="http://www.quartus.net/products/rsrcedit/"]RsrcEdit[/url] that allows you to make changes to your application at a very different level, not a coding level, more like an attribute level (if anyone can explain this better feel free to jump in here :)). One of the attributes is 'copy protect'. That will prevent users from beaming your apps or your databases.

There is another great little freeware palm app called filez that can do the same thing with 'copy protect'.

Of course if your user has any of the above programs they can just untick that attribute and beam away. But it will stop most users.

edit: ok, Palm Resource Editor, that's what RsrcEdit is. But it's nifty you can make changes in your UI and create bitmaps for the icons etc. You should check it out, even if you just use the freeware filez for the moment. They have a trial version that doesn't seem to time out.