4 ms·
Oh man, this is wonderful. From the documentation: "The instructions that NSIS uses for scripting are sort of a cross between PHP and assembly. There are no rea
by Gracana 10y ago
Oh man, this is wonderful. From the documentation: "The instructions that NSIS uses for scripting are sort of a cross between PHP and assembly. There are no real high level language constructs but the instructions themselves are (for the most part) high level, and you have handy string capability (i.e. you don't have to worry about concatenating strings, etc). You essentially have 25 registers (20 general purpose, 5 special purpose), and a stack."
I like it. Really. It's pretty simple to use the registers and stack, you can use memory (variables) however you like, and all the complex stuff is provided as "commands." It looks like it's pretty easy to create a spaghetti-code mess, but like with BASIC, you can write perfectly maintainable programs if you're inclined to do so.
- tauchunfall 10y ago>I like it. Really. Me, too. I was amazed when I found out, that one can use Pop, Push and Exch [1] to clear registers for the scope of a function and restore the previous registers after leaving the function scope. [1] http://nsis.sourceforge.net/Docs/Chapter4.html#stackinst http://nsis.sourceforge.net/Docs/Chapter4.html#stackinst
- neko_koneko 10y ago> It looks like it's pretty easy to create a spaghetti-code mess Can confirm. I currently work as a malware analyst, and I frequently have to analyze (somewhat) obfuscated malware NSIS installers. Older version of the 7-zip software (v. 9.38) can extract and decompile NSIS installers, but in the newer versions this feature is no longer available, because some people on the 7-zip forums complained that users could unpack their installers and see hidden S/Ns. It's a pity.
- Gracana 10y ago> some people on the 7-zip forums complained that users could unpack their installers and see hidden S/Ns wow I'll have to look for that in the future. I guess removing the disassembler from a common piece of software raises the bar a bit, but still.. yikes.