[FYI] Successfully protected a standalone Max app on PC

seejayjames's icon

Hello all,

My client and I appear to have successfully protected a standalone Max application I built, using PC software from Oreans:

The key here is the "XBundler" plug-in, which allows you to "wrap" additional files into the application bundle: media, text, whatever you want. In this case, the all-important factor was the .mxf file, which is vulnerable to reverse-engineering. There is an option to bundle the file into the finished application, have it encrypted, and never be written to disk during runtime. Once the app was protected, we threw away the .mxf and everything worked just fine...the software makes a .bak file that has the .mxf encrypted inside. You then run the .exe (Max standalone app) as usual and it knows how to open it.

This was NOT straightforward, as many protection software apps don't allow this kind of bundling, they generally only protect .exe, .dll, etc., and not text files. Also it took awhile to get the settings just right, but there are a ton of options, so we needed to read the documentation carefully.

The Max standalone runs in Trial Mode until a hardware-dependent License key has been entered. This can be done with a generated .dat file or a Windows Registry Key entry.

The cost was about 450 Euros for the Single Developer License. You can allow software updates for your application as needed.

I don't know about similar software solutions for Mac, so if anyone has tips on this, I'd be very interested to hear about them.

Hope this is helpful to some!

StvDee's icon

Hi, nice post
I am also interested in a similar solution. Could you please guide me a little bit more? As for example how much coding does it need, price for over 100 copies and so on.
If you want you can contact me off list

Stavros - stavrosdee@msn.com

Dan Nigrin's icon

Thanks Seejay - had you also looked at Molebox?

I've not tried it personally, but someone told me that it works with Max applications. It seems a bit cheaper too, at 300 Euros for a license that allows up to 5 activations...

Also don't know of any Mac solutions.

seejayjames's icon

Thanks for the info---Molebox looks like a very good alternative. All about the encryption capabilities. I think the advantage to Oreans is that you can protect as many apps as you want (I'm not totally sure about this), though you need to stay "subscribed" to keep your copy active. It's not bad rate-wise though. Definitely if you had just a few apps to work with, Molebox would be great, and the process looks like it might be easier.

@stavros: Didn't need to do any extra programming, though they have a full SDK if you need it. This could be helpful with automating certain parts of a serial generation/licensing process. Though I'm not sure where/when/how to implement their SDK functions, they're designed to be used within your application that's already written in a language which supports calling those functions, so... where would they go in a Max standalone? Maybe a good question for the Dev list, but I don't know... anyway, they seem to be a good option. Like I said, the interface all works, but there's a LOT there and it will take some hours of reading docs and doing test runs. At least it did for me...it was quite the learning experience.

StvDee's icon

Late reply, sorry about that, but thanks seejayjames for the info and the suggestions.

I did try the Molebox product but I don't think it can be any useful to MaxMSP standalone applications. It creates a packed - sort of an encrypted version - .exe that it is based on a pre-existing .exe file. This is a problem because if you want to encrypt your .mxf files you don't have the option to do it. I have emailed the company to clarify if you can also use it to encrypt other files than .exe as well.

Stav.

Peter Nyboer's icon

We (http://www.lividinstruments.com) have a fairly useful system for protecting standalones using a web registration if anyone is interested. It is all max based and cross platform, and uses an online form to provide keys. It is not perfect and not bullet proof, but if you are interested, I could likely help out.

Hans Mittendorf's icon

@pnyboer
please tell us more about it.
Is it for Mac too?

seejayjames's icon

+1 for me, especially cross-platform... this has been pretty troublesome and expensive to get going. Very interested in your system. Feel free to email offlist or to post here if you think that's OK too.

Mike S's icon

I vote for contacting peter offlist, and probably will be doing soon :)

Hans Mittendorf's icon

Please keep posting on this line. I have an interest too.

Larsen187's icon

I try to find some way to protect the patch in osx.

In windows is very simple just bundle all in oen single exe file and dne, you have protection for prevent anybody edit the patch.

But in OSX?

I not find anyway yet, im searching for 3 months and cant find.
pnyboer your system can prevent edition of the patch?

Larsen187's icon

Basically is needed some way to protect copy and edit of any osx stand alone created with max.
Is amazing nobody from Cycling 74, dont take acre about this.

Peter Nyboer's icon

Hi,
Sorry I haven't followed this post. I need to add it to my favorites! Anyway, contact me off list at pete at lividinstruments and I can give more detail.

Peter

Larsen187's icon

I try contact by lividinstruments.com, nobody reply.
Contact to where please? some specific mail please?
Thankyou !

Peter Nyboer's icon

what email did you use? I can look it up. Or send me an email to pete@lividinstruments.com

seejayjames's icon

@Larsen187:

"In windows is very simple just bundle all in oen single exe file and dne, you have protection for prevent anybody edit the patch."

How do you do this? What program will bundle it into a single .exe file for you? And is it free?

If you build a standalone Max app on Windows you can still crack the .mxf.

hardcoder's icon

@Seejay:

I tried to protect our app with Themida and XBundler just as you posted. After one day of trying, it does not work. I can start the Max Runtime but the mxf file (which I deleted after protecting the app with Themida/XBundler) can not be opened via open file dialog.

Here is my Themida log file. Can you give me a hint, which settings to choose?
Thanks!

Themida - Advanced Windows Software Protection System  [Version 2.2.3.0]

Protection Options for MAXapp.exe
---------------------------------

Macros Information
------------------
VM Macros: 0
CodeReplace Macros: 0
ENCRYPT Macros: 0
CLEAR Macros: 0
MUTATE Macros: 0
STR_ENCRYPT Macros: 0
CHECK_PROTECTION Macros: 0
CHECK_CODE_INTEGRITY Macros: 0
CHECK_VIRTUAL_PC Macros: 0


Protection Options
------------------
Anti-Debugger: Advanced
Anti-Dumpers: ENABLED
Entry Point Ofuscation: ENABLED
Resource Encryption: ENABLED
VMWare compatible: ENABLED
API-Wrapping Level: Level 1
Anti-Patching: None
Metamorph Security: ENABLED
Memory Guard: ENABLED
When Debugger Found: Display Message
Application compression: ENABLED
Resources compression: ENABLED
SecureEngine compression: ENABLED
Anti-File Monitor: ENABLED
Anti-Registry Monitor: ENABLED
Delphi/BCB form protection: ENABLED


Virtual Machine Settings
------------------------
Number of Virtual APIs wrapped: 0
API Virtualization Level: 3
Entry Point Virtualization: 0 instructions
Multi Branch Technology: DISABLED
Virtual Machine Processor: Mutable CISC processor
Number of CPUs: 1
Opcode Type: Metamorphic - Level 2
Dynamic Opcode: DISABLED


Advanced Protection Options
---------------------------
Encrypt Application: ENABLED
DLL plugin: DISABLED
Hide from PE scanners: Standard
.NET assemblies: ENABLED
Active Context: ENABLED
Add Manifest: Don't add manifest


XBundler files
--------------
MAXapp.mxf


excelsoftware's icon

AppProtect or QuickLicense from Excel Software can protect and license MAX application for Mac and Windows. See www.excelsoftware.com/max5 for details.

Arabrab's icon

Too expensive ...

No I recommend:
Charge for a demo ...
and are only traders whose sole purpose is to get your money.
I repeat "only" ...
Spam in this forum...

Beep's icon

Would the Excel Software option work though or is it just "spam" and / or a ripoff? Has anyone used it? I'm looking for something that can deliver what it promises...

hardcoder's icon

Hi Barry,
we bought licenses from Excel Software. We tried out a lot of other software and tools which did not really fit our needs, did not work out of the box or we did not get a good support.

Here are our surrounding conditions and what we expect from the protection software.
1) Our Algorithms are heavily based on our own C-based mxe file externals.
2) We build a prototype of our algorithm with Max. We use the Max patchers to create a signal flow between those externals.
3) We want to deliver our exported standalone app to customers. The customers shall not - under no circumstances - see our algorithm. The Problem: the app how it's exported by Max can be hacked very easily in order to recreate the original patchers. We do not consider the mxe files as a security issue. We can easily change the symbols in this dynamic library to something, which does not make sense to a hacker.
4) We use the software from excel software in order to bundle all files into one app, which cannot be hacked straightforward anymore. The licensing possibility is not so important for us during prototyping. Our main goal is to protect our algorithm.

yerpzs's icon

hello

I expected that max protected a standalone patch from abuse. I am shocked it's so easy to access a patch.

Even if one freely distributes a patch, to be passed around, for none profit; there are many reasons why it should have some type of encryption: as a preventative measure to discourage hackers altering and re uploading it as v 1.1 for example. Or just knowing the inner workings easily.

What I need with max is a secure and efficient translation from the max edit/presentation window to:

1.vst's (pluggo was awesome)
2.apple and android apps
3.to be able insert max patches into websites.

Thanks for taking this all on board. lol :)

Source Audio's icon

It is nonesense to pay for app protection more
than what app itself sells for.
I have been protecting windows standalones since max 4.
There were several options with PEBunle etc etc
Now there is freeware packer which works as it should.
http://enigmaprotector.com/en/aboutvb.html
Freeware version is all that is needed.
On OSX side, I have been programming Installer,
which creates unvisible directory and expands standalone
there, waits for app to quit and removes it.
Installer runs as faceless app.
In both cases, one has to organise file structure for any
storage, presets etc. outside of standalone.

yerpzs's icon

Thanks SourceAudio , that's Great news. I shall check the link : )

yerpzs's icon

Hi SourceAudio. I've, been trying out the enigma virtual box.

I've followed a few tutorials and can create a boxed version of a standalone .exe as the input file with its support folder, max collective and .dll files inside %default folder%.

But when I open the boxed version, it is simply an empty max runtime window. The project information seems not to be present or open.

Did you find this an issue when you first started?

thanks for any further infos. : )

Pedro Santos's icon

The same. Some guidance would be greatly appreciated. Thanks.

yerpzs's icon

Hi

I tried molebox and within literally 1 min built a packed version of a max standalone with dlls and support folder. fully working, it seems.

So I am unsure why enigma virtual box is not working.

At least molebox shows it is very easy to do...like making a zip file.

a single licence is $150 for molebox. ( i think that means for one PC) needs further reading.

I am sure many people are interested on finding a mac solution also.

peace.

Source Audio's icon

Sorry that it took so long to reply, I am on the road
and don't have much time to come by here.
I will post exact infos on how to include files in Enigma
as soon as I get back in about 10 days.
Just to be sure - mxf file must be included, and
the protected Standalone shoud keep it's original name,
otherwise mxf file will not be found.
Another important thing is to activate "Search for missing files"
in standalone object.

yerpzs's icon

thanks SourceAudio.

I've been trying out 'cameyo' it takes a snapshot of the OS, then the user alters the OS , to include a max standalone , install Quicktime or other programs plugins ! Then Cameyo takes another snapshot ...and builds a runtime based on those changes.

So a standalone runtime can include other program installations and plugins.
wrapped up into one runtime that opens in a simple double click.

pretty cool. ...but again at high cost.

Buma's icon

Subscribing to this thread. I'm looking for a Windows solution. I only want to pack the app, not asking for a license etc.
I've tried with Molebox (website offline) and Enigma. nothing happened, I can't run the app.
Does somebody have a solution / tutorial please ?

Thanks !

Source Audio's icon

Sorry that it took sooo long to provide detailed instructions for Enigma Virtual Box.
Here it is :
I am running Packed Standalones with Enigma Protector - freeware for years.
This is the way I do it :
1 Prepare Standalone, remove unnecessary crap etc
2 Start Enigma Virtual Box and make New Project
3 On Dialog select the Standalone Exe that you want to pack
4 As Destination create new folder somewhere, name it whatever you want
AND !!!! MAKE SURE THAT OUTPUT FILE NAME IS THE SAME AS STANDALONE !!!
Virtual Box would auto add "_boxed" to Output File name. That would make it unusable.
Now we are ready to continue.

1 Add mxf File to %DEFAULT FOLDER%
2 Add New Folder and name it resources
3 Select it and Add Folder Recursive, on prompt select resources Folder of the Standalone
THAT PROPERLY ADDS ALL FOLDERS AND FILES INTO RESOURCES FOLDER
like init, interfaces, support etc etc.

Other things to do is to check Files Options :
activate "Enable Files Virtualisation", "Compress Files" and "Delete Extracted on Exit"
Next to check is Options (Last menu item above Virtual Box Files Window)
Activate all options, but !!! I had to uncheck "Share virtual system to child processes"
in some cases, when Max App also controled system events and background processes
via Shell etc
------------------
Some issues with packed Standalone could be that user on windows
has no admin rights, that system is just badly configured (out of the box ha,ha), and that some DLLs are missing .
The packed Standalone brings no error about missing DLLs, for that one should first test
unpacked standalone and install whatever is missing.
If Max Runtime is starting normaly, then Packed Standalone should be ok too.
Keep in mind that any auto File reading, search paths etc have to be properly organised
because packed standalone looses filepath structure, and you can't expect simple read this read that
messages to find files in it's folder.
Last Enigma version is 7.4 see www.enigmaprotector.com/en/downloads.html
It works for me with Max 4, 5, 6 and 7
I hope that this infos provide some help.

Source Audio's icon

Usually Visual Basic runtimes like MSVCP120.dll and MSVCR120.dll could be missing ...
www.open.dll.com is usually ok to get that and drop int system32 folder

Buma's icon

Hi!
Thank you so much for posting this detailed tutorial. I've followed the exact procedure. the MXF in "default folder" the resource (recursive) folder also in this "default folder"
Unfortunately, in my case, the packed application doesn't start. I don't know why yet. There's no error message, no icon launched in the dock, nothing.
I've tried to run the app as an admin, that doesn't change anything.

I will investigate...

Source Audio's icon

Hi Elberstein, did You try to run the build directly from Enigma ?
When Build Process is finished You can test the Packed App
by clicking on Run button.
That will display errors if app can't start.
I don't know if maybe the way standalone object in the main patch is configured
could come into account.
Search for missing files is must be activated .
Depending on Max Version this settings are named differrently, like :
usesearchpath, make application subfolder search path, etc
Just verify all settings in the Standalone object.

Buma's icon

Yes, I've tried directly from Enigma. The only errors were in the Windows log (error 1000 if I remember correctly)
The standalone was correctly configured. But there's a problem with this object in Max 7.2, the settings are not always applied

Buma's icon

Hi SourceAudio,
After several tests, I still can't get it to work. I'm using Windows 10, do you think that this could be the problem ?
I'm not familiar with Windows, it's an install on Bootcamp.
Thanks.

yerpzs's icon

sad to see molexbox down. I was hoping it was still available the website was registered for another year, not to long ago.

A couple of links if you haven’t found them.
forum
http://forum.enigmaprotector.com/
support@enigmaprotector.com

Buma's icon

Yep, I've just tried with an equivalent called BoxedApp and the result is the same.... So... I guess I will release the Windows standalone just as it's packed by Max, with the . mxf etc.
There's no crazy algorithm that would need protection, that's not a big deal.

yerpzs's icon

What about cameyo?

yerpzs's icon

cameyo worked for me. i think there is a free version.

molebox: Their site appears to be an admin error , i dont think they have shut shop, so to speak,. because they would not leave it as "cgi bin"
they also updated their domain subscription to 2017.
maybe you can find their email?

molebox is great works with max standalones , but not free. if i remember correctly.

Buma's icon

Yes I saw Cameyo, but their licenses are not cheap for commercial use. I've found an old version of Molebox, but even if I can get it to work, I'm wondering if it is really safe to distribute these "boxed" softwares ? (stability, compatibility...) I mean that my experience , trying to create the package and opening it was not very concluant yet, so... ^^ You said that Cameyo worked for you, does it mean that you distribute Windows standalone, commercially ?

yerpzs's icon

I simply tried cameyo on a max standalone for fun and it worked must have been a year ago now...i can remember i was impressed with it but preferred molebox for my needs.

I hope to distribute a few patches later on, hence i've been posting in this thread and am back saying hello.

With molebox the demo I had only worked on the machine I built the protected runtime on, any other machine i opened the file from, there was a pop up that either slows down the experience or it simply does not work? I cant remember. but molebox is not free, it does however compress the file down very nicely. I was very surprised how a large max patch i had created became so small in size. hence i am interested in molebox and am hoping it will be available again.

i shall post here if i find anything more..

Source Audio's icon

I don't use windows 10, just 8 & 8.1.
So maybe windows 10 is the reason.
But, why don't You try to pack some other EXE file and see what happens ?
Like make a copy on Notepad.exe, name it whatever.exe, pack it and see if it runs.

Buma's icon

Thank you for your answer. The result is the same: impossible to open the boxed app (notepad_boxed.exe). This time, for security reasons (logged in the console, but not displayed) and not the error 1000 that happened with the Max standalone. I'm gonna try to contact their support. But once again, it's not a big deal if it doesn't work...

Dan Nigrin's icon

I wanted to say thanks @Source Audio - your instructions worked perfectly for me. I'm using Max 7.2.1, running on Win 7 (within Parallels on a Mac).

Only thing that I will have to fix is the path to my documentation pdf, which I usually include in the app bundle. I'm sure I will be able to figure it out, but if you have any tips those are greatly appreciated.

Makes things so much cleaner for distribution of a polished standalone - thanks again!

Dan Nigrin's icon

Hmm, following up on this. So my .pdf is usually placed in a folder I call support, within the app bundle on the Mac, and on Windows, this folder just sits at the same level as the new resources folder. I should probably update my practice to use one of the new-in-Max 7 resources/support or resources/misc folders, but I haven't gotten around to it yet.

So when I invoke the command within my app to launch the URL that points to the .pdf, Adobe Reader successfully opens, and Max does not complain at all. But then Adobe Reader *does* complain, saying it can't find the file. Presumably this is because it's buried within the "box" somewhere. Any ideas on how I can make Reader see this file? Or do I need to make my app's installer put the documentation somewhere else in the file system, outside of my app (don't want to do that if I don't have to).

Thanks in advance...

Buma's icon

Yes, the tutorial provided by SourceAudio is very valuable. I Still don't know why, it doesn't work for my simple app. I suspect Windows 10 though :)
Sorry Dan, I cannot help with your PDF issue, I'm just answering because this thread is interesting. I've discovered that I cannot even embed a font like Lato (included by default in a Mac standalone) in a windows standalone, for me that was a "deal-breaker". Eventually I chose not to release my app for Windows. But now, I might invest in a copy of Parallels and find a copy of Win 7...

Source Audio's icon

The question about including files into App... Hmm I allways used some specific path,
specialy for files that need to be read and written to disk.
Like C\\:My App Files/ etc
Even creating folder by app itself and putting files there is no problem.
The fact is : everything that is bundled by Enigma is not visible to other apps.
So it is not possible to bundle Pdf file and have Adobe Reader open it.
One could just place it besides the Standalone in the Folder it sits in.
That works without problem, because Path to Standalone remains same
as with original App.
And Elberstein, one can't trust that Enigma Protected App will work on every Computer.
I am bundling Apps just to make it easier for my customers, and to avoid
mistakenly deleted dll or anothe little thing which makes App unusable.
I deliver Bundled Apps only to known customers an their Computers for which
I also prepare OS for optimised Max usage.
Otherwise, with all that crap that goes on in Windows It would be difficult
to go on stage with it .

Dan Nigrin's icon

Thanks Source Audio - I'll probably do what you suggest and put the .pdf next to the standalone.

Thanks for the reply and again for the detailed instructions on using Enigma.

Spa's icon

Hi Source Audio,
I switched to Windows 10 (for openGl speed) after years with Max on osX.
So i'm not so knowledgebla with 'cleaning' the system
I will be really interested in knowing which crap processes you scrap from your windows 10 OS.
Like net calling, etc...
Thanks

Buma's icon

For info... I've been talking with the creator of BoxedApp and he successfully packed the Windows standalone I sent to him. The newest release of BoxedApp, allowing to do that without a bug will be released tomorrow.
Here's what he replied. To be honest, I don't understand much. I only understand that there's a kind a conflict with the midi external (?)

" talking about original exe, one 64-bit dll (midi_dm.mxe64) is always loaded at the range 0x00000000 - 0xffffffff. In fact 64 bit DLL may be loaded starting from virtually any address, including, of course, addresses that occupy more than 32 bits. Due to some reasons midi_dm.mxe64 are not loaded at high addresses doesn't matter how many times I loaded original exe. I think it's just a fortune: e.g. preferred image base is occupited and Windows tries low addresses.

And it's (32-bit image base) important because another module of the application (Max runtime I do suppose) casts an address of some function inside midi_dm.mxe64 to 32 bits. If the DLL is loaded at low address, that's ok: no changes, but if it would be loaded higher?

In case of packed exe it can be loaded higher and due to mentioned strange cast, an invalid address was going to be executed. That lead to access violation.

Uh, ok... Before that, I've tried again with Enigma under Windows 7 on Parallels and the app crashes. I have another problem with Windows now (related to Midiout and/or pattrstorage) so, packing the app is not top priority for me anymore, but that's just for information :)

Source Audio's icon

Shaping OS for optimised Max usage depends on what Max app is supposed to do.
I am treating Laptops for my customers as machines, removing all "normal" computer
stuff. So no Internet, no Updates, no Security Center, no Virus detection, nothing but
bare bones OS with drivers for Hardware , and just Services that Max app needs.
To go into detail would take long time, so here is just procedure in general.
1 First remove Installer items from Windows ISO that are definitely not going to be used ( using for example ntlite or similar)
2 Create new ISO and Install it
3 Trimm system further by applying optimised Settings, and disabling Services that might need to be activated
at some later point, like windows Installer etc.
In days of XP that ended in 200 - 300 MB size operating system, really fast
Windows 8 is better than 7 but needs more work to get it in proper shape.
On Mac side same thing - No Spotlight, no Automatic Updates, Time Machine etc etc
Another thing I try to do is to use oldest Max version that does the Job, and oldest Operating
System that does the Job.
Freeze that and You get Machine that would serve for years...

Spa's icon

Thanks Source Audio

I've got difficulty changing the name of the app that appears when placed in the DOCK in windows 10.
it always shows :
Max (64 bits) or Max (32 bits)

i tried to edit the app with : XN Resource Editor , but no luck
Do you know of a solution
Thanks

Buma's icon

After all this, if it works, can you "codesign" the app or not ?
I still have the access violation error and the app crash, but I've contacted the support. So, hopefully... :)

Thanks

Source Audio's icon

One has to do any customising of Standalone BEFORE packing it with Enigma or any other Packer.
I use XN Resource Editor sometimes, but find Resource Hacker better.
Adding Custom Icons, Version Infos etc get's done ok. Also editing Manifest, to for example run as Admin
can be helpful.

Dan Nigrin's icon

I use XN Resource Editor to modify copyright, version, etc. info. Don't need to mess with the app name or icon there, as my results after building the app don't require it. You do know about the appicon command in the build script, right? In the Build window, click the "Include File..." button, select your .ico file, then substitute the word "include" with "appicon" in the build script before building.

Spa's icon

Yep i know about appicon, etc ...
it's just that when you pin the app to the task bar, and you hover on, it, always shows Max (64 bits) instead of the name of the app.
I tried to find this piece of text "Max (64 bits)" in a field of the app properties with XN Resource Editor but I cant find it.
In the finder, the app shown is correct.

Dan Nigrin's icon

Interesting - at the risk of de-railing this thread even further, since I don't have a Win 10 system to test on, would you mind downloading a demo of one of my apps to see if it displays the same behavior? For example try Cyclic: http://defectiverecords.com/cyclic/

If it works properly, I can try to let you know the steps I've done to help with yours...

Spa's icon

Hi Dan, Thanks. Your app shows the right Name in the dock (Cyclic Demo).
i'm not using Enigma. Just creating an app from Max7.
Yes you're right , i'm going to start another thread. But cycling is rarely responding on this kind of system issues.
So I en-railed your knowledge...

Dan Nigrin's icon

Just put a pointer here to the new thread once you start it - would be happy to help as much as I can.

Buma's icon

Hi Dan,
I like what you've done with the Cyclic Step Sequencer. Can I ask you how you've created this installer please ? The workflow is cool, and it's a much better like that for a customer than opening the app folder, finding the .mxf and the resources folder, etc.
Best regards,

Dan Nigrin's icon

Hi Elberstein,

For Windows installers I use Nullsoft's Scriptable Install System (NSIS) - it's open source and available here: http://nsis.sourceforge.net/

There's definitely a bit of a learning curve, but it's very flexible and can do pretty much anything/everything you'll need.

Although it's a bit dated and some things have changed, there might still be helpful information in this presentation I gave at Cycling's Expo '74 presentation back in 2011, called "Making a Slick Max Standalone" - the slides are available here: https://cycling74.com/tools/making-a-slick-max-standalone-presentation-from-expo-74-workshop .

Dan

Buma's icon

Hi, Thank you very much Dan.
With NSi and the HM NIS Edit wizard, that was really quick !

A bit off topic, but:
Do you use a EULA for the softwares you sell ?

Have you found a solution for the custom fonts in Windows ?

Thanks again.

Dan Nigrin's icon

Hey, I learned something - it's been ages since I actively looked at NSIS (I just use an old version and scripts that I developed years ago) - but this HM NIS Edit Wizard thing looks cool, didn't know such a thing existed!

No, I don't bother with a EULA. I've been fortunate over the years that for the most part I have not significant problems with piracy or other legal issues involving my software. Of course I've probably just jinxed myself. :-0

Re: custom fonts on Windows - not aware of the problem?

Buma's icon

this HM NIS Edit Wizard thing looks cool, didn’t know such a thing existed!

Oh yes, it's great, in three minutes, you can add a custom license, an icon, company name, startup item etc.

Re: custom fonts on Windows – not aware of the problem?

Oh, yes, that was a reference to this old thread.
https://cycling74.com/forums/custom-font-in-windows-standalone/
But maybe it's not possible with Windows.

yerpzs's icon

Hi Dan

I managed to get your cyclic demo to work on windows xp service pack 3
looks fantastic, and fun to use : )

I also had it partly working on linux ubuntu with wine. on linux the sequencer play button works, the leds light up. it seems fine, .but when i go to select an output device, wine crashes.

I wonder, what version of max msp did you use to make this?

Probably a daft question : why is it an installer? why not just a max runtime standalone? is that to simply have it in the program menu?

thanks : )

Dan Nigrin's icon

@Elberstein - so funny re: the fonts question, I'm the one of the people that posed it! I had zero recollection of that.... What I did in the end is just used pictures of the text I wanted displayed, rather than using a custom font.

@Yerpzs - too bad on the Linux w/Wine thing, would've been cool. The latest version of Cyclic was built using Max 6.1.9 (you can see how the builds have progressed over the years in the Version History in the documentation .pdf)

Re: why an installer on Windows - I just think it's more typical of what Windows users expect from applications, for there to be a "real" installer, entries placed in the Program menu, Uninstaller capability, etc... Sure, I could have just provided a .zip of everything required, but felt this approach was closer to what other apps provide. Depending on your use case though, it may be overkill.

Buma's icon

I totally agree about the installer, the .mxf file and the resources folder won't be hidden, but it's more comfortable for the end user.

I wonder how Max deals with images for Retina and HD screens (is there a kind of image@2x.png like for web design ) , I should try images for my next standalone :)

yerpzs's icon

i am very impressed with your installer, i didn’t realise we could do that.
the Ubuntu attempt may have crashed as i had no outputs configured? I'm not an expert on wine.
it was great to see your demo actually load though and have some functionality : )

Buma's icon

Great thread. We should create a kind of wiki or another thread compiling all the resources. Dan, your instructions regarding the Max interface JSON were really helpful to remove the menu elements "save , open etc". :) Oh, by the way, the latest version of BoxedApp virtualizes the app with no effort. But unlike Enigma, it's not free. I haven't sold enough Mac versions yet, but maybe I'll buy it someday. Now investigating about Code signing with Windows... I already pay 99$ / year for Apple. I wish I could use the same certificate for Windows ^^

yerpzs's icon

I just tried boxedapp 'packer' windows demo, it worked very well on a basic standalone test patch.

There are three flavours of boxedApp. i have yet to try the the other two.

Did anyone figure out how to pack a max stand alone on a MAC yet ?

Dan Nigrin's icon

Well, by definition on the Mac they're "packed" already, in the app bundle. But I assume what you're after is some way to encrypt the contents? I've not seen anything like that before...

Buma's icon

+ 1. Like Dan Nigrin said. On Mac, it's easier to create a .dmg and distribute something "clean". It's also quite easy to create an installer for Windows, but in both cases, it's almost impossible to "protect" the original code if that's what you want to do. Off-topic : If you sell it at a correct price, less people will steal it. just my opinion & experience ^^

yerpzs's icon

I only work on windows, but i was hoping to make my project work on mac too.

yes i meant to compress the mac standalone and encrypt too.

just like molebox and boxedapp does on windows

thanks : )

Jindong Ming's icon

boxedapp +1

KDrz's icon

Reviving this thread, although my knowledge is much more sparse. I'm a Mac user but trying to distribute an app I made to help my students track their credits in the major, and many of them use PCs. I ran into the same issue described above when trying to use the windows app on another computer (using Windows 10): all that opens is an empty Max Runtime window.

Earlier, I had tried to open the app on another PC and got the missing dll files error, and put those dlls in the app's root folder. I don't know if that's what screwed up the app or not.

I don't want to protect/encrypt any of my stuff, it's not revelatory, just an easier way for students to track their credits. But would packing the app in this way fix the empty runtime window issue? Many thanks in advance for your help.

Source Audio's icon

My first advice is make Max 7.3.5 32 bit standalone, even that most PCs run 64 bit system today, there are still people running windows 7/8/10 32 bit.
64 bit system runs 32 bit apps, but not the other way arround.
Putting DLLs in the Standalone folder is right place, but they have to match the architecture.
If You want, I can post all DLLs that possibly might be needed zipped.
Enigmavb & Max 7.3.5/32 with proper standalone settings works like a charm.

KDrz's icon

Thanks Source. I did make a 32-bit standalone for that reason. When you say DLLs in the Standalone folder, you mean the folder within the .exe once it's built, and not inside the Max project folder or anything, correct? Since I'm not sure what you mean by matching the architecture, that would be great if you could post all the DLLs in a zipped folder. I had included the Visual C++ Redistributable dlls from 2013, 2015, and 2017 but that might not have been sufficient, or I might not have packaged them correctly. Much appreciated.

Source Audio's icon

DLLs should match 64 or 32 bit Max Version, that's what I mean by matching architecture.
Placing them next to EXE is right place.
Here is set for Max 6.1.10 :
https://files.fm/u/4t2t88up
and for Max 7.3.5 :
https://files.fm/u/j79fgjr5

That's all DLLs I ever needed to load any 3rd party external.

KDrz's icon

Hi Source - thank you so much for the DLLs. I followed your above instructions with Enigma Virtual Box, placing the DLL next to the standalone exe in the file structure, but still get just an empty Max Runtime window instead of the actual app opening. Any advice?

Source Audio's icon

As first app must be tested before bundling it with Enigma.
If it runs ok, than one can proceed.
Standalone showing only Max Console is usually a sign
that mxf file can't be found.
Standalone name and mxf file name must exactly match.
If You want I could build it for You, just send me the patch
and any custom file in use, like picture or whatever.
Maybe the problem could be detected that way...

yerpzs's icon


I remember using one of these box encryption programs and I could not change the name of the standalone or
something odd like that ( i had to save the encryption bundled app with the exact same name as the standalone ) otherwise I would get a similar issue.

Try make a bundled app with a very basic stand alone , just with a message box in it to test. save with the same file name . See if it fails then.

You could also do a screen capture (no narration required) of your procedure and we may spot your issue.

KDrz's icon

@Source and @Yerpzs - I was able to get it to work. I hadn't properly placed the .mxf file in the bundle. I really appreciate all your help.

yerpzs's icon


Awesome ,well done!

Alessandro Aruffo's icon

Hi, I'm trying to protect a Standalone app in Mac and Win 11.
First of all I''d like to understand how to do it on Mac. I have no idea where to start. Any suggestions ?