This appears to be NSIS http://nsis.sourceforge.net/Main_Page
I used this years ago in conjunction with autoit to automate my SOE software deployment job as the place I worked for let staff choose their own laptop specs and finding drivers etc after pushing the enterprise image became a pain.
So all laptops stayed on their oem windows install and I just ran my special DVD to get the SOE deployed.
Worked so well the tool saved me about 4 hours on each device sitting around clicking next, inputting keys and customising settings for software that didn't let you script silent instals.
As a matter of principle, I do everything I can to avoid endorsing paywall schemes, implicitly or explicitly, to the point of making sure to never mention or link to parties engaged in such activities.
I also have no interest in libraries with GPL-incompatible licenses... and the GPL is pretty much specifically designed to undermine paywalling with its protections against what the Debian Free Software Guidelines refer to as the "Tentacles of Evil test".
Now, I don't inherently consider "early access" to be a paywall scheme, but I only consider it acceptable as a "freemium" model in cases like Patreon-supported webcomics, where the early access is on the order of a week or less and there are no security implications to the patches being held back. (ie. Where it's less a paywall and more "paying for DVD extras".)
I also agree with /u/mmstick in that, if I see a library where I feel they're trying to compel me to pay for it, my first impulse is to look for a free alternative I can support and my second impulse is to start considering what would be involved in developing a freely licensed competitor myself.
(At the moment, for example, one of my retrocomputing hobby projects is an installer creator for DOS analogous to Inno Setup or NSIS, because everything I found predating Windows 3.1 was shareware or demoware.)
Hey I found this too! at work about a year ago we had a file called IMG001.exe spread throughout our network (mainly from unprotected systems that we were not aware of...). It was harmless, it was the same exact bitcoin miner, but it was attempting to send stuff to pools that were not running anymore!
It's hilarious. THe miner itself is found on github, it's an open sourced mining program. You should be able to get the real name of the program found on github, and the version # by running a strings tool or searching for the MD5 hashes online.
The tool used to build it was some dinky little free installer program, that you could build using graphical representations!
It propagates via shared folders and such. Symantec Endpoint Protection will remove it, as will most other programs.
What exactly are you looking for? I'll dig up my analysis of it!
Here is SYmantec's take on it:
https://www.symantec.com/security_response/earthlink_writeup.jsp?docid=2016-101713-2556-99
EDIT: Found the installer -- cannot find my own writeup...
http://nsis.sourceforge.net/Main_Page
Still will look for my writeup.
Um, I had to write an installer for our product in NSIS yesterday. It's scripting language pretty much takes the cake. Apparently it was the author's first real C project, and he describes the scripting language as (I kid you not) "a cross between PHP and assembler"
It looks kinda like your friendly neighborhood dynamic language, except that you store values by pushing and popping into registers, and control flow is all done with gotos. The gotos can refer to labels, or how many lines up or down to go.
You're right, it seems the nsis 7zip plugin provided does not work on 98... not sure if it can be compiled for it or not, but I can give it a shot. Since they used vc2008 it would not be compatible anyways, but I can try with 2005 and see what happens.
You can pip install pynsist
on any platform. You'll also need NSIS.
I appreciate the irony that pynsist doesn't have a double click installer itself, but it's a developer tool, not an end user application.
I recommend NSIS (http://nsis.sourceforge.net/Main_Page)
Check out http://en.wikipedia.org/wiki/List_of_installation_software
You can create a MSI installer using Visual Studio 2010 (http://msdn.microsoft.com/en-us/library/19x10e5c.aspx). I haven't used it recently, but if it's anything like when I previously did, NSIS is easier to use and has more functionality.
The typical installation process varies depending on the platform (Windows, OSX, Linux, etc.). I imagine you're asking about Windows installers so I'll focus on that.
For Windows nowadays there are basically two different types of installers: MSI installers and standalone installers. MSI installers are basically just a package that contains the files to be installed and I think instructions for Windows Installer that tell it what other tasks need to be done. A standalone installer is essentially just an ordinary program. It can do anything. There are common installer frameworks like NSIS that allow you to write a script that NSIS will build into a standalone .exe installer. NSIS has a ton of features, including plugins that can let you do just about anything you'd need to do when installing a program.
Common tasks for Windows include downloading other files (like other installers), running those other installers, moving files to certain locations, editing the Windows registry, and generating an uninstaller that will undo everything the installer does.
Nullsoft has the worst scripting language on Earth. It's described by it's author (NSIS was his first C program) as a "mix between assembly and PHP", and as bad as that sounds, it's worse -- pushing and popping into registers, using gotos (including relative jumps, where you say goto +3 to move down 3 lines; I'm not kidding).
Imagine a script to get IP addresses for your machine. Picture what that might look like in any reasonable interpreted language. Now bask in the demonic glory of NSIS script.
I use a repackaging software or write my own installer using nsis http://nsis.sourceforge.net/Main_Page if possible. I would not do it by hand at all.
Most shitty software that is like that isn’t doing a lot to begin with so repackaging isn’t hard.
Or you can do what OP requested and build an installer that packages the others together and then runs each one in silent mode.
I suggest using NSIS, but that's only because it's the only installer i'm familiar with.
While investigating the situation we came across this list of false positives for the NSIS installer framework, which is what our Windows packager uses to er, package the Windows build. A cursory glance at their forums also suggests this is still an issue affecting other NSIS-based installers.
I can't vouch for the veracity of any of this information, though. I'm not even a Windows user.
For Rebol2 one approach is to purchase the Rebol SDK and use the encap function. I have not personally tried this, but I had success use NSIS to simply wrapper a script and the Rebol 2 interpreter into a single exe. Have a look at http://nsis.sourceforge.net/How_to_turn_a_REBOL_script_into_EXE for an example. There are usually a few rebollers who will be able to help with this over on stackoverflow - http://chat.stackoverflow.com/rooms/291/rebol-and-red All the best -John
Here's a very simple walkthrough I did of how to create a basic installer using Inno Setup. It has wayyy more features than what I outline there, and can be scripted to maannny fancy things. As can other systems like NSIS. (Personally, I just like InnoSetup -- just a prefrence really.)
Both are free :)
Here is what I consider to be a somewhat complete piece of software I wrote in Python:
https://bitbucket.org/jgrigonis/mathfacts/downloads
All the source and stuff is there too, if you want to look over how I did anything. I used py2exe and py2app to build the binaries. On windows I used nullsoft installer.
I used tkinter for the gui stuff, which has some drawbacks, but from an end user perspective, they have no idea that the program is made in python, and probably don't care.
Assuming that you are okay using an installer made by someone else, I would highly recommend these tools companies for you:
http://en.wikipedia.org/wiki/Wise_Solutions,_Inc.
http://en.wikipedia.org/wiki/InstallShield
http://nsis.sourceforge.net/Main_Page Nullsoft's installer is pretty radical also.
I had to update company sigs a few years ago, and for lack of finding a better option at the time, I worked up a script that created custom NSIS installers for each user, so we could just throw <username>-Signature.exe into their home dirs and send them an email to run it. It would create the sig and handle the necessary registry changes to turn on the signature by default in Outlook 2003. Once I had the initial script working, it was easy to feed a csv file of username, jobtitle, phone(s), email(s) to it and end up with installers for everyone.
I highly doubt you're still on Outlook 2003, but something like that may still be doable, and was pretty fun to work up (if you enjoy scripting).
I can probably help, and specifically I'd like to handle #4 myself, as the .bat files are part of my plan for a run-in-place zip. I don't think I can do #5 on my own, though, as I am not the owner of any of the Windows machines I use. I also still have plans for this issue, I've pretty much decided on this plugin, unless you think I should wait on it.
By website credentials, do you mean WordPress.com account, or acoounts belonging to WordPress site hosted elsewhere?
Both are possible, with probably different approach, especially if you are managing the site itself. WP authentication is a good start, then it depends on what language & technology you're using (possibly .NET, but for all I know you could be coding in native C++ instead). You'd need to know how to consume web service from your installer. Inetc works well for NSIS installer. If the account isn't on your own website, the user won't like to enter their password directly on your installer, so mimic how apps like Spotify desktop link with Facebook account handle the login phase.
Tracking can be done by the installer calling your webservice, or just use Google Analytics, also available through NSIS plugin. You're done here if all you want is authentication. If you want authorization too (only certain accounts can install) then you want a webservice to keep track of the valid license. If revocation is needed, then you'll have to put the logic inside your app instead.
Since you seem to be dead set on creating your own installer you might want to try NSIS. It's free software that lets you make your own installer and is used by many companies.
The site seems to be down for me right now, but when it's back up there is a ton of resources on learning the scripting language and how to write your own scripts. However, be prepared for a steep learning curve if you're not familiar with programming.
Two open source installer generators:
http://izpack.org/ http://nsis.sourceforge.net/Main_Page
As for copy protection, you are on your own (an OS copy-protection/DRM/lock-in system would be somewhat contradictory, wouldn't it?) or you look for a commercial packaging tool.
What exactly do you mean by creating an .exe with an installer?
Would you like the user to double click on a shortcut that runs the program that gets stuck in the Program Files folder? Or would you like to only build the bundle of files that gets stuck in the Program Files folder?
If you are interested in only the first question, then the Nullsoft Scriptable Install System (NSIS) is a venerable open source solution that has been used as an installer for lots of software.
Good question.
PortableApps Launchers appear to be open source - the launcher source scripts are included with the download. http://portableapps.com/node/35447
If that post is anywhere near up to date, it uses the Nullsoft Scriptable Install System (also open source!)
You can also replace the version of Firefox it comes with, so in theory you could vet/verify the application, the launcher and the install system.
Wise Installer is pretty sweet, but pricey. It is my favorite personally. Edit: I just saw it was discontinued. Bummer.
Nullsoft Installer is opensource now, and I know it is popular. I haven't used it personally, but I see it often.
It seems to me that the most critical part is the installer. To that end I'd suggest learning how to write installation scripts for Google Update or the Nullsoft Scriptable Install System. Once you know how to write the installer, move on to something like Python or PHP and play with generating the install scripts dynamically, based on the selection of a user on a web page.
> Always writing ZIP64 files also isn't ideal; it's an old (2001) extension but I don't know if everything supports it (Android didn't until 2015).
Yeah. I don't plan on supporting ZIP64.
I'm (slowly and infrequently) working on a DOS analogue to Inno Setup or NSIS for hobbyists to fill the last gap in the timeline (Inno Setup 1.2 for Win16 is still available) and, for the sake of software preservation and hackability, I'm implementing it as a Zip self-extractor stub which will pull its control scripting from within the Zip file.
Given that the target is DOS, ZIP64 support makes no sense and would waste precious bytes of "don't crowd the actual content off the floppy disk". (I already reinvented graph.h
and the tokenizer that fills argc
and argv
from Open Watcom C/C++'s standard library in pursuit of that goal... the former because I didn't want to include 30-50KiB of graphics routines when I could write the API I needed in a few hundred bytes of int 10h
API wrappers and the latter so I can be shared between my argument parser and script interpreter.)
Wix is the only free way to build .msi
packages so, before you rule out the closest thing Windows has to .deb
or .rpm
packages, I'd look at Wix# (WixSharp). It uses a C#-like procedural language to build Wix projects without the pain.
However, if that's still not good enough, I'd recommend InnoSetup. It's free, it's professional enough to be used for Visual Studio Code, Delphi, and all the GOG.com installers, and it's much more comfortable than NSIS (the other free option used by big-name companies).
InnoSetup has you define your installer using a .ini
-like project file and, if that isn't enough, you can use "PascalScript" to implement custom extensions for it which can call into arbitrary DLLs.
(NSIS requires you to script your installer using a very low-level scripting language where even logging what was installed so it can be uninstalled must be done either manually or by using macro wrappers for the "copy into place" routines.)
Have you considered NSIS ( (Nullsoft Scriptable Install System) ) scripts? It's straight forward and simple enough. You can specify installation directory, overwrite or not to overwrite and create uninstaller as well. It's very powerful and it comes with many examples.
we wrap most things with psappdeploy toolkit now.
if you're wanting an exe, i've used nullsoft it makes good silent installers with /s
i have a couple projects still written in the sms installer. i wouldn't recommend this, but it works.
for a full featured msi, i dont know of any free product.
Other free / open source options are:
When you use an IDE, it's doing the following 2 things for you:
1) It builds the executable. You can go find this in the project folder, and there's your stand alone executable! ^*
2) It runs the executable in a way that it's possible for the IDE to attach a debugger to it, so that you can debug the relevant code while it runs.
You do have to build in "release" mode, and include all the relevant dependencies when you hand the program to someone else. Debug mode builds typically don't work on people's machines unless they have an IDE installed, because debug builds use special dependencies only provided for the IDE. Besides, debug builds are orders of magnitude slower to run than release builds.
You may also want to use an installer program to help with the process of making the program accessable to others. An installer (like NSIS ) just automates the process of creating directories, registry entries, icons, shortcuts, and all the things that make your program easy to run.
I've never used any installer-building software directly, but have indirectly used NSIS through electron-builder which automates 99.9% of the work, and it has worked perfectly. Of course I'm just getting basic installers with no custom images or walkthrough/etc for users to look at while they wait -- if someone wanted something more they would obviously have to dig in by themselves.
Just another false positive, nothing new.
All these crappy AV companies still think NSIS is a virus/malware.
Seriously, look at http://nsis.sourceforge.net/NSIS_False_Positives and just shake your head.
Frankly, most all these AV programs are 100% pure crap that snoop on everything you do, and slow things down.
If you want to check your downloads, use virustotal.com and here is the result for VLC: https://www.virustotal.com/#/url/89d936dabd6de9b0b6266f7a015be473028c88f574420a1ba0fd5769c8b3323b/detection
I was referring to NSIS. But if you are referring to the Windows Installer, I guess then "program" is used loosely. If the developer has to declare what to install/uninstall then it's still not to be 100% trusted. My point is, in an ELI5 sense, that uninstallers are fallible.
Assuming you can't bake all these requirements into the MSI itself then you could use something like PSAppDeployToolkit to do some of the hard work for you:
http://psappdeploytoolkit.com/
This gives you a framework to do stuff like check pre-requisites, present a nice UI if needed etc.
Assuming you are then deploying this to PC's internally you could then use PDQ Deploy to automate this process.
Failing that, if you have to build all this into a singe .exe (for external distribution maybe), you could look at using NSIS which can do advanced installers too:
clicked on the topic thinking "this is EXACTLY what I'm after", before realizing it was mine. Anyways I can answer some of it. I'm using NSIS 3 to create the installer and am using the LZMA compression to bring it from 160 down to about 50 MB - http://nsis.sourceforge.net/Reference/SetCompressor
I now understand, you guys ran the test on the "installer" file, not the exe file created by the installer. The installer is just a basic NSIS installer, not sure why it gives a warning.
Edit: Found possible reason http://nsis.sourceforge.net/NSIS_False_Positives
There's not really a solution that puts everything into a single executable. Those that do, simply extract all the files into a temporary folder, then run it. You can do the same with NSIS (http://nsis.sourceforge.net/) for example. This just solves packaging and delivery.
If distributing a folder-worth of files works for you (with or without a packaging system), then all that's left to do is include the ruby "installation" folder into that folder along with your application scripts. Then run the ruby.exe from within that folder.
Since this is a server, you will want to set it up to run as a Windows service. I have used nssm for this with great success: https://nssm.cc/
Best of luck!
Ah right I see. Installer files are in "/source/browser/installer/windows" and "/source/toolkit/mozapps/installer/windows". The installer is made using NSIS (Nullsoft Scriptable Install System).
Here is the big paper:
1- Grep, code, recycle, buid from source, buy a priv8, or encrypt a trojan code to escape virus signature.
2- That trojan must have an IRC client built-in, and a list of channels/servers to join, by order of availability
3- Faintly operate on a private IRC Channel on multiple reliable hosts, those will be your Botnet control centers.
4- Oh, at this point you've done 20% of your task...
The biggest task is tricking users to install your package.
This is usually achieved by popping online a fake legitimate popular software, let's say: Videolan, popcorntime, and so on.
You can even use a " silk rope " technique: bundling malware with a legitimate working software: there's plenty of free installer bundler out there. Let's just reference this: http://nsis.sourceforge.net/Main_Page for historical, and emotional reasons ( aah, old times )
then waiting...
and waiting ...
and spammin blog comments + forums...
and reuploading your fake site to a new host because an abuse@ had put you down/offline/google malicious content.
That's a full time job to build an efficient botnet: 100+ machines.
Shell scripts or installation program? Take a look at http://nsis.sourceforge.net/
Ideally you create a virtualenv and install all the wheels there.
Also, if you also need the python runtime: http://pynsist.readthedocs.org/en/latest/
Active@ Disk Image is great for imaging multiple PCs, and it doesn't cost an arm and a leg.
Lots of software that is already a .msi package can be installed silently via another script/batch file, see: http://unattended.sourceforge.net/installers.php
Other installers...
Hey Guys :)
Do you know NSIS (Nullsoft Scriptable Install System)? For example its used for installing Winamp. Could it maybe help to fix the Win8 security issues?
You could also create an installer with something like NSIS....
http://nsis.sourceforge.net/Main_Page
or Inno Setup....
http://www.jrsoftware.org/isinfo.php
that installs your program and the python interpreter with it, creates a start menu entry, offers an uninstallation option, etc.
I don't know the answer to your question but if it is merely a distribution issue, you could let the .exe alone and bundle everything in an installer like nsis.
Thanks for listening :)
I'd make the MSI myself but my computer's down at the moment; I'm redditing from a Mac computer lab. If you have Windows, do give Advanced Installer a spin, or perhaps NullSoft Installer.
I've got something hacked together for a commercial project that works pretty well, I hope to spin it off into an esky "recipe" when I get around to setting up a wiki etc. It uses NSIS and its zipfile plugin.
The key is, an "esky" is just a zipfile containing your app in a certain layout. So you generate a stub installer using NSIS that basically says "unzip yourself into the selected install path". Then you just append the zipfile produced by esky to the end of the installer .exe file, and you've got an installer ready to go.
What's nice about this setup is that the installer exe can also be used as a package for automatic updates, so you only have to generate and distribute single file rather than an installer and a package for the auto-update mechanism.
Maybe that's a job for me this afternoon, to set up a proper mailing list, website, wiki etc for esky...