// Detect It Easy: detection rule file init("installer", "Nullsoft Scriptable Install System"); function detect() { var nOffset = PE.getOverlayOffset(); if ((!PE.compareOverlay("EFBEADDE'Null'..'oftInst'", 4)) && (!PE.compareOverlay("EFBEADDE'nsisinstall'"))) { // if(!PE.section[".ndata"]) // { // return ""; // } if (PE.isOverlayPresent()) { nOffset += PE.readDword(nOffset); if (nOffset + 4 >= PE.getSize() || !PE.compare("EFBEADDE'Null'..'oftInst'", nOffset + 4)) { nOffset = 0; } } } if (nOffset && PE.isOverlayPresent()) { // Method detection adapted from 7-Zip. nOffset += 0x1C; if (PE.compare("5D0000..00", nOffset)) { sOptions = sOptions.append("lzma", "solid"); } else if (PE.compare("5D0000....00", nOffset + 4)) { sOptions = sOptions.append("lzma"); } else { function BorZ(nOffset) { if (PE.readByte(nOffset) == 0x31 && PE.readByte(nOffset + 1) < 14) { return "bzip2"; } else { return "zlib"; } } if (PE.compare("8", nOffset + 3)) { sOptions = sOptions.append(BorZ(nOffset + 4)); } else { sOptions = sOptions.append(BorZ(nOffset), "solid"); } } bDetected = true; } var aVersion = PE.getManifest().match(/Null[sS]oft Install System v?(.*?)