SynthMaker

demo version tool

Archive · 2009 38 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

Disco_Steve ·

I think this works really well, its also very simple, every time the plug-in is used it adds the number 1 to the end of a text file, after the text file contains 5 1's in a row it stops the plug-in from working.

hack ability

if the user deletes the file, they can use it 5 more times. if they edit the file, they might be able to use it 5 more times.

but after 5 more times they will have to edit the file. this of course is very irritating, and I believe should work well as a demo restriction functionality. leaving the vst working perfectly before its been used to often.

the restriction of 5 1's can be altered to suit your needs.

hope this helps SM users who are worried about such things.

Tzarls ·

Maybe this idea can help enforce your method.

Instead of using a txt file, I thought of using a bmp (one tha would be apparently used by the vst - in other words, a bmp with a banner or a logo or something that appears in the VST). Then, instead of adding 1´s to a txt file, you can change a single pixel to a slightly different value. The vst would then read the value of the pixel to see how many times it´s been used.

You could even name the bmp was a .wav file. That would make it even more secure, in a very basic way.

Hope you like this ideas.

Disco_Steve ·

of course, thanx for your ideas.

this one saves how many times they have used the plug-in in the pre-set manager. so every time they add the plug in it works, but the next time they re load the project, the plug-in says, sorry you have already used me, again very annoying without the extra file, the user also gets a fully working version so they aren't that annoyed. what do you think better?

aliasant ·

Disco_Steve wrote: of course, thanx for your ideas.

this one saves how many times they have used the plug-in in the pre-set manager. so every time they add the plug in it works, but the next time they re load the project, the plug-in says, sorry you have already used me, again very annoying without the extra file, the user also gets a fully working version so they aren't that annoyed. what do you think better?

Very interesting idea.

🙂

I have started to save preset files and serial keys as: pluginname preferences.SYS with that .SYS as suffix the file is save invisible. Easy for a user to change but still, for most user that file will be hidden. But I dod like the idea of using a bitmap and change single pixels. Cunning 🙂

Disco_Steve ·

so windows automatically hides .sys files? very useful info thank you 🙂

aliasant ·

Disco_Steve wrote: so windows automatically hides .sys files? very useful info thank you 🙂

Thought you would like that 🙂

Nu Audio Science ·

Only problem is that 90% of PC users that use VST optomise there pc to some extent and the first thing they do is enable show hidden files and folders, Not what you want to hear i know but true

Cheers NAS

aliasant ·

Nu Audio Science wrote: Only problem is that 90% of PC users that use VST optomise there pc to some extent and the first thing they do is enable show hidden files and folders, Not what you want to hear i know but true

Cheers NAS

Maybe but I dont think its that common. But. Many might do it but then they turn it back cause they get tired of seeing all those annoying windows files.

In my case the files that are saved arn't keeping any secrets so it doesnt matter. Just nice to keep the files hidden so they dont clutter the pc.

Sasu Honka ·

You could still use the .SYS extension if you hide it in some of the folders that almost all PCs have (C:\Program Files\Adobe -for example) with a name that does not link to your VST and looks legit (uninstal.SYS -note the typo in the name). Then it would be very hard to find even if "show protected files" is enabled. If you don´t know what you are looking for you have to be very lucky to find It.

Even the programs designed to unistall should not be able to find such file, because it is not written with the install but with the first run.

There is usually the C:\Program Files folder on every system regardless of the localization or language settings and there are many folders that are found on every PC, pick the one you like.

Tzarls ·

I wouldn´t recommend "program files" because of language settings - in my own machine (and many pcs I´ve seen here in Peru) almos 90% of the programs are installed in the "Archivos de Programa" folder. But the one name that you´ll always find, at least I think, is "system", or "system32". Putting your txt, sys, bmp or any other file in there would be a sure bet.

aliasant ·

Tzarls wrote: I wouldn´t recommend "program files" because of language settings - in my own machine (and many pcs I´ve seen here in Peru) almos 90% of the programs are installed in the "Archivos de Programa" folder. But the one name that you´ll always find, at least I think, is "system", or "system32". Putting your txt, sys, bmp or any other file in there would be a sure bet.

I agree. I use the system32 folder. Lots of odd little files in that one.

Sasu Honka ·

Yes, "Program Files" is just for English, but here in Finland it is "Ohjelma tiedostot" and there still is a folder called "Program Files\Adobe" on all of my systems because of badly written installers. System and system32 are good choices, but you should then know the path of the windows folder and that can also be something else than "WINDOWS".

There is usually a folder called "TEMP" on every C: drive, but that might not be a good alternative because it is one of the most usual suspects.

tektoog ·

Who looks in his font folder? I don't......

Nu Audio Science ·

The first thing any cracker is going to do is run something like inctrl so wherever you put the file it is going to be found I wouldn't worry about location to be honest Personally if this is the way you want to go i would ask Malc for some kind of first run timer or something It would have to modify the .dll the first time it was run and then after a set period/runs would send a trigger of some kind which you could use to disable parts or entire plugins

I don't think a semi secure idea is good simply because as soon as one is caught out it will be the first thing anybody checks for

I don't really want to rain on the parade here at all because it is something i have been looking into myself recently but i think the better solution is to post an FR and get everybody to join in the post

Cheers NAS

For the record i plan just a simple timer that times out after 20 mins or something, obviously the plugin just needs reloading but i dont see a better option currently

aliasant ·

Well. I do believe in a method that is far from impossible to crack. If the method used is annoying for normal users its good but if the protection is a challenge for those who has skills it will attract them like flies to cow shit. On the other hand I would care to much about that either. A hacked version would spread on the torrent sites and other places but those people using it will spread the word to others, unless its a crappy product 😉 Free commercial.. It has to be just enough a problem for the normal users to convince them to go buy it instead of trying to find and trash a file every so often, or reset a clock or similar.

Disco_Steve ·

exactly, that's what my first upload did, incredibly easy to hack, that's the point, but its still annoying. Every five times its been used you have to delete or edit the file. it doesn't hide itself, it says 'plug-in name uses.txt' on the text file, everyone can see what it is there for. so users dont go 'ARRR this plug is chanign my system, its a virus that validate online and is a form of spyware',

NO

it's 'ow I see, this plugin adds ones to this file it creates, so that it stops working after 5 uses, that's simple and effective, I'm glad the developer of this software didn't spend more time on the copy protection than the plug-in. but darn I'm annoyed I have to delete this file all the time, I think I'll buy it in stead 🙂 '

that's what I'm hoping anyhow? a program could be made so that at start up teh file is removed every time, that way the plugin will work forever, which is why I made the pre-set version, which works the first time you add it to the song but the next time you return to it doesn't.

It's basicly like your 20mins idea nas, but for each time its run it stops working. Steve

ruben ·

The idea is great but I found a problem... its too easy to find the text and delete it, so the demo is useless. The only way is to do the text invisible...Is there any way to do it on SM... Another way is to place the text somewhere in windows were normal people don't find it. I tried to change the file position but it didn't work. something was wrong. keep trying... You're allmost there! Ruben

McBarGig ·

Just puttin this out there...But I created a system about 10 years ago that kept an ecrypted admin password in the EXE. This was a fixed length string of 13 characters. The program was a very small executable and didn't really do much, but the customer wanted it this way. We had to write it in QuickBasic, total pain in the as$. Anyways what we did was make a Constant Variable in the executable, called whatever. This constant was 13 characters long. When the executable was ran we could in search the executable file for the constant variable and replace it with whatever 13 characters we wanted to..

So the constant appeared like this in the code.. CONST Whatever = "HELLOHOWAREI"

open the binary executable for binary read/write and search for "HELLOHOWAREI". Retrieving only 13 chars at a time. When found, replace with whatever you want..

So, the VST is ran, you shell to an exectuable that searches the "protection executable" does whatever writes it needs to..Like a counter, or a code that says the VST is in demo mode, whatever you want it to do...Then based on what it finds, take the action you want in the VST, Communicate through a text file.

What we really need is a way to use the registry without having to shell, and a means to encrypt the entry in the Registry. The registry could store the names/paths of the executables. Then even if they figured out what we were doing they would still have to decrypt the filenames.

The other possibility is to maybe use something like the Bitmap write function to write an execuatble file to disk. Store the executable as an array inside your VST inside the bitmap control. I'm guessing at this, I don't know if this is possible, but what else is there that writes to disk and handles binary data? If we had the ability to write binary executable data to disk, then we could eliminate the shell to run a separate search function. Plus if they found out what it was we're doing by changing the count number, it is now another step to editing the storage file, they would have to open it for hex edit..Not a simple text editor..

Just some random thoughts... KM

TomC ·

Disco_Steve wrote: I think this works really well, its also very simple, every time the plug-in is used it adds the number 1 to the end of a text file, after the text file contains 5 1's in a row it stops the plug-in from working.

To lazy to test this for myself: what if the user makes the file read-only?

Tom

Disco_Steve ·

am I the only person on this forum who isn't a super hacker!, yes your right, setting the file to read only stops it writing and the plugging works forever! 🙁

so use the pre-set manager version, works once every time but after a reload of the vst it stops working.

Tzarls ·

Hi Disco Steve, this little schematic should help you.

There are 3 modules inside. The first one gets the path to the user´s "Application Data" folder, where I think you could place your text file.

The second module just creates a file called "serial.xml". Set this file to "read-only" using windows explorer.

The third module makes the "serial.xml" file non-read-only, allowing you to write your "1"s. It also makes the file "hidden" and "system", so if you try to delete it, windows tells you that it´s a system file and shouldn´t be deleted.

Disco_Steve ·

well thank you very much! what a wonderful treat 🙂 I love this forum 😍

Tzarls ·

Here´s another small tool. It calculates the number of days between today and a previous date (stored in a preset, maybe).

Tzarls ·

And I´ve been thinking a lot about a system that coan protect our demos. Of course, totally crackable with just some imagination, but maybe useful for the average user.... here´s my idea (using the previous posted tools):

1. Plugin opens and checks for a txt (or bmp or xml or whatever) file in a specified folder (app data, for example).If it doesn´t exist, the file is created and the value "0" is added to the file, along with the value of "today" as per my schematic posted above (where today = number of days since january 1st 2009). If file exists, the value inside the file is read, together with the date value stored. For our example, the value in the file will be "4" and the date value will be "157" (june 6, 2009). This number represents the number of days since the plugin was first run.

2. Plugin reads preset parameter "last date". If last date is set to "-1", then we will assume this is the first time this instance of the plugin is running.

We read preset parameter "days passed"(if first time running the plugin, this value will be "0").

3. We compare "days passed" to the value in the txt (or bmp or xml or whatever) file and choose THE HIGHER as the real "days passed".

4. We compare the value of preset parameter "last date" to the date value stored in the txt file, and choose the HIGHER as the real "last date" value.

5. We calculate days between real "last date" and "today", and add that value to the real "days passed"

6. We store "today" as "last date" in preset manager and in the txt file. We the store the real "days passed" in both preset and txt file.

If "days passed" > limit, we disable plugin.

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

If the user deletes our file, as soon as he loads a previously used instance of the plugin, the file will be recreated with a counter not set to "0", but to the number of days stored in the preset. If he closes the plugin and opens a new instance, the counter will remain with the value stored in the file. To effectively hack the counter, user must first unload all instances of the plugin in every project (because as soon as he opens a project with an instance of our plugin, the counter will be updated), then close his DAW, delete the file, then open his DAW and reload the plugin in every project. A total pain.

Now, does anybody want to implement this? Because I don´t know how to create a preset parameter. 😊 And I´m feeling lazy right now.. 😈

aliasant ·

To effectively hack the counter, user must first unload all instances of the plugin in every project (because as soon as he opens a project with an instance of our plugin, the counter will be updated), then close his DAW, delete the file, then open his DAW and reload the plugin in every project. A total pain.

Interesting.

Is there no easy way around this? Were is the preset data stored? Registry or?

Tzarls ·

I think preset data is saved with the project´s file. As soon as you load a project, the DAW loads every plugin and it´s presets.

An easy way around this would be to delete the text file and start a new project from scratch. But you have to be very careful to not load a project with a previous instance of the plugin, because as soon as you do this, the counter will be updated to that plugin´s date data.

The beauty of this is something like this: You reac your demo limit, the you say "ok, there must be an easy way to reset this thing". Then you find the file and say "Aha! Gotcha!". You delete the file, load your project to continue working, only to find that the file is recreated and the time limit hasn´t been reset. So you go "Damn, there must be some registry values stored". This should fool more than one.

What this method needs, apart from the previuously described, is a way to detect when system date has been altered. Which is easy comparing previous date to "today", and if "today" < previous, bang! Pop up screen, time limit reached or anything you want.

aliasant ·

Why not use an internet time? there must be an URL to call to get the correct GMTime and then compare it to the users. Never minding the hours and minutes but the day maybe ?

Tzarls ·

Well, I don´t think we have an option to get data off internet from SM. All we can do is call some URL. BUt maybe I´m wrong?

Don´t have SM here to try right now.

aliasant ·

Tzarls wrote: Well, I don´t think we have an option to get data off internet from SM. All we can do is call some URL. BUt maybe I´m wrong?

Don´t have SM here to try right now.

Lol. I think your right. My mistake. But still. It would have been nice if we could get data from the web. I have no experience in that but maybe someone else knows?

Jay ·

idk if its at all possible in synthmaker but could you guys not try some form of Steganography to store the txt files youwant hidden? in say in audio file? or a bitmap?

i wont ever need Regestration or licencing cause i wont ever be good enough to release a pluging of any monetery value but i like the idea of being able to store txt in audio or imagies for other possibilities

heres one form of Steganography i played around with a while ago its bitmap txt as audio, showing the txt in sambeams sonogram reader

files 2.47MiB because of the included waves

regards ark

Tzarls ·

Guys, in my post above, if you open the osm "demo path and attrib", do you see the 3 modules described? Because for some strange reason, opening either my local osm or the one downloaded from here, I only see 1 module. SO, either I posted the wrong file, or something´s not right.

Please confirm.

aliasant ·

Tzarls wrote: Guys, in my post above, if you open the osm "demo path and attrib", do you see the 3 modules described? Because for some strange reason, opening either my local osm or the one downloaded from here, I only see 1 module. SO, either I posted the wrong file, or something´s not right.

Please confirm.

Nop. I see a trigger, a module and a string component. Thats it.

Tzarls ·

😠

This is so strange, I could swear there were 3 modules inside. Anyway, I´ll rebuild this and repost. Sorry DIsco Steve! And all of you guys.

Tzarls ·

Here it is, the real version with the 3 modules.

(How come 16 people downloaded this and no one ever complained about the 2 missing modules?)

aliasant ·

Tzarls wrote: Here it is, the real version with the 3 modules.

(How come 16 people downloaded this and no one ever complained about the 2 missing modules?)

You dont want to know 😉

ansuman ·

hi all,

after long time logging in to my computer...was seriously ill guys...just recovering after a long time...

well..a small addition to this would be the vst authorizer explained in the ansu module pack..which validates serials and stores them into a text file (as a dll) in system 32/root folder....acesses everytime it finds the file with correct serial..

1..for initial installs it would ask for reg with serial..once reg is done dll will be thrown in system 32 folder with the right serial. 2.every time u start the plugin it will check for the dll file and then validate the serial and then only the gui module would be enabled for the plugin.. alternatively this can be improved by adding up a binary/utf-8 encding technique which can be chosen from my module pack (binary converter)...

you guys r simply rocking with gr8 innovative universe...cheers!!! 😀

🙁 hope i get weel soon

sunsynth ·

I really hope U get well soon!

Walter

McBarGig ·

Get Well Ansuman...

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.