News for hackers. Stuff that matters.
Re:NSIS 3.0 ready by Gracana on Monday August 08, 2016 @10:37AM (#12248098)
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.

Re:NSIS 3.0 ready by neko_koneko on Tuesday August 09, 2016 @06:36AM (#12253652)
> 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.

Re:NSIS 3.0 ready by Gracana on Tuesday August 09, 2016 @08:12AM (#12253972)
> 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.

Re:NSIS 3.0 ready by tauchunfall on Tuesday August 09, 2016 @01:22AM (#12252774)
>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