Reverse Engineering tools

The dynamic installation experience that we create ensures smooth adoption in enterprise environments. This is just as important as the functionality of the software products as a whole. We chose the versatile and robust InstallShield because of Revenera's domain expertise in innovative and flexible software suite products.


  • . Administrative Install - An Admin install is a Windows Installer command line option using msiexec.exe. It extracts files for multiple network installations, running the steps in the AdminExecuteSequence, if present, rather than the InstallExecuteSequence. That's not quite the same thing as unpacking.
  • Does anyone know of any way to decrypt/decompile an installer? I built an installer with Installshield. By accident, I deleted all the source for the installer. Not sure if there's any tool that could reverse back the whole directory? I can unzip the Data1.cab file, but I could only get to some of the files, and some are still encrypted.
Credits should be given to the original up loader.

Archive Packs / Direct Links

Decompiler/Disassembler Archive - (479k - 490,557 bytes).
Sebastien Apel's InstallShield Script CRC corrector, Wisdec, Wise Install Decompilers.
Key Generator Source Code Archive - (427k - 437,901 bytes).
Collection of key generator source codes in various languages, ASM/C/C++/Java/Pascal/Perl/Win32ASM.
HEX Editing Archive - (849k - 869,884 bytes).
HEdit v2.1.11, Hex Workshop v3.01 & Hiew v6.15 Key Generator's, Hiew 6.55 full, Implant.
HCU Tools Archive - (201k - 206,393 bytes).
Dasm (requires PERL), FrogsICE v0.43 source code + FrogsICE v1.07.3/v1.08.5, Iceman's SoftICE Helper VxD, Letter Opener & SoftDump (courtesy of Quine).
Miscellaneous Tools Archive - (518k - 531,307 bytes).
ASCII Table v2.01, Flu[X]'s File Utils & Key Generator Functions, GPatch v1.2b, ICEPATCH v2.0, InstallShield v5.5 Cabinet Utilities, i6comp v1.03beta, Matt Pietrek's PEDump, Package For The Web Cracker, PE Rebuilder v0.96b, PkCrack v1.2, SoftICE DevStudio Serial # Generator.

DataRescue - You know, believe it or not ;-), the freeware version of IDA is still more than adequate to get you started in this game.
http://asm.deformed.us - Home of UnderNet #asm, at the moment (read that carefully) they have everything you might ever wan't in the latest versions, as this URL gets better known expect things to get trickier for the files to remain intact, but for now...
ExeTools - Aaron's home page has everything you might ever need to download, however for most you need to be provided access to the FTP, at the time of checking ftp.txt was a 404, you might need some luck to get access. Since the host is in China, the links might survive for a while.
Links - Try combing/perusing sites I've linked too.
ProTools (Programmers Tools) - Once upon a time, a great tooling site, now more of a news archive of 'latest releases of various protectors' and unpackers, its still worth the visit and Kaparo keeps it very up-to-date, but don't expect to find IDA or SoftICE here.

Assemblers

MASM32 v8 - Maintained by hutch-- and Iczelion, this compilation is one of the best ready-made Win32 assembly resources you can download.
Turbo Assembler v5.0 - Full version of Borland's TASM (original installation disks). You'll need this to assemble and link most of the assembly language source codes on my site. Disk 1, Disk 2, Disk 3. TASM v5.0r patch (minor update 152k).
Turbo Assembler v5.3 & Resource Compiler v5.4 - Updated files taken from Borland Developer Studio (1.31Mb's).

Decompiler

Decompilers / Disassemblers

BDASM v2.5 - Lightweight disassembler, an alternative to W32Dasm (1.84Mb's).
DeDe 3.50.02.1619 - Delphi decompiler by DaFixer.
Eltima Flash Decompiler v2.9.9.360 - Flash Decompiler (6.58Mb's).
InstallShield 6 Tools - Further continuation of fOSSiL's great i5comp (121k).
Interactive Disassembler Pro (IDA) v4.30a - Masterpiece from Datarescue (32Mb's) (since this link seems to disappear or be actively removed, I suggest you make note of the name 'ida430a.rar' for future searches ;-) ).
Interactive Disassembler Pro (IDA) v4.51.770 - A later version of IDA (29.2Mb's).
Interactive Disassembler Pro (IDA) v4.9 SDK - for making your own plugins (6.37Mb's).
isDcc v1.22 - Very capable InstallShield script decompiler by Andrew De Quincy.
palmdeMON - Carpathia's experimental Palm Pilot disassembler, abandoned in 2003 or so.
V-Communications Sourcer 7 - Old but worthy sourcering tool which deserves a place in any reversers archive (986k - 1,010,214 bytes).
V-Communications Sourcer 8 - Latest version (1.62Mb).
VB Decompiler Pro 3.4 - GPcH Soft's Decompiler (2.12Mb).
Visual Basic v3.0 Decompiler - from DoDi (1.28Mb).
W32Dasm v8.93 - Good disassembler for starting out, superseeded by IDA a while back.

Debuggers

Debugger Archive - MeltICE, SoftICE v1.54 (Windows 3.1), SoftICE v2.62 (DOS), SoftICE v2.8 (DOS), SoftICE ATI Driver Fix (621k - 636,249 bytes).
NuMega SoftICE v4.05 (Windows 9x) (filename si405w9x.zip) & NuMega SoftICE v4.05 (NT) - (filename SI405WNT.zip) Debugger of choice, alternative link here (NT).
NuMega SoftICE for Windows Millennium Beta (120k).
OllyDbg - 32-bit code level debugger (useful for environments where SoftICE doesn't perform so well).
SoftICE Cover v1.0 - Tool for hiding SoftICE against well-known anti-debugging tricks (9.61Mb's).
Syser v1.93 - Very capable and recent SoftICE alternative (3.55Mb).
TRW 2000 v1.22 - LiuTaoTao's capable (if slightly buggy) SoftICE alternative (453k).


Resource Editors

Decompiler Installshield Installation Tool

Borland Resource Workshop v4.5 - The original installation disks for this very good (if aging) resource compiler/editor.
Resource Hacker - Freeware resource editor.
Symantec ResourceStudio v1.0 16/32 bit - Alternative to BRW.

Decompiler Installshield Installation

Reference

HelpPC v2.10 - Invaluable quick ASM reference.

Let’s look through them and find the best way to work with Visio ® diagrams on a Mac. The program is quite expensive, and, moreover, it causes problems when you need to collaborate on Visio ® files on non-Windows platforms. Mac version of visio. There are some Visio ® alternatives for Mac OS X.

Spying

APISpy32 v2.5 - A poor man's BoundsChecker, of limited use (255k).
File Monitor, Registry Monitor & VxD Monitor - Capable file, registry and vxd monitoring tools with source code by Mark Russinovich & Bryce Cogswell.
Forms Spy - A hard to find tool for spying on applications using forms, e.g. VB and Delphi programs (129k).
OpenTrap v1.2 - Another recommended file system activity monitor for Windows 95/8 (323k).
Win-eXpose-I/O v3.00 - A very useful I/O monitoring tool (1.81Mb).
Win-eXpose-Registry v1.00 - A capable registry monitoring tool (1.12Mb).

Useful Tools

Byte Parser - Tool written by me for parsing dumps into text (well I think its useful anyway ;-) ) (16k).
FrogsICE - Useful anti-debugging tool for Win9x/WinME (please note his page is MSIE hostile).
Hex Workshop v3.0x - HEX editor from Breakpoint Software.
Hiew - Another great HEX editor from Sen.
IceDump - The tool that NuMega forgot with a neverending array of options, study the source code, for all common versions of SoftICE 95 & NT, highly recommended.
j0b's DeShrink v1.6 - Latest version always available here, j0b has now fixed the problems with Shrinker v3.4.
ProcDump v1.6.x - The last ever version of G-RoM, lorian & Stone's very capable OO unpacker.
Snippet Creator v1.05 build 2 - Iczelion's handy programming tool.
WinManage v1.0 - 605k.

General informationThere are several systems which vendors use to create installers for their applications. To make an educated guess about how to run an installer unattended, you need to know which system was used to create it. Sometimes this will be obvious from the installer's splash screen; sometimes you can figure it out by running strings; and sometimes you will have to guess.Of course, you can try running the installer with the /? Switch to find out which other switches it supports. But if you really expect this to work, then you have not been using Windows for very long.

In my experience, the odds are about 1 in 4 that /? Will tell you anything at all, even when there is something to tell.MSI packagesMicrosoft's own Windows Installer Service is the nominal standard, and if everybody used it, there would be no need for this document. Unfortunately, Microsoft invented it too late.The package files have a.msi extension, and you manipulate them using the msiexec utility.For installation, use the /i and /qb switches. Use the /l. switch to produce a log file. You can provide named options (or 'properties') at the end of the command line; which properties are supported depends on the package. For example, this command:msiexec /qb /l.

perl-log.txt /i ActivePerl.msi PERLPATH=Yes PERLEXT=Yes.is how you install ActiveState Perl, instructing the MSI package to add Perl.exe to your PATH and to associate.pl files with it. (See below for more on Perl.)Perhaps the most important common property is the REBOOT property, which you can use to suppress any automatic reboot the MSI package might try to perform. So in general, you want to provide the /i, /qb, and REBOOT=ReallySuppress parameters to msiexec.msiexec can do many other things, like uninstall software or apply patches. Too bad nobody uses it.InstallShieldInstallShield is one of the oldest and most widely used application packaging systems.Installers created by InstallShield recognize the /r, /s, /sms, /f1, and /f2 switches. The installer itself is invariably named setup.exe.To perform a silent installation, you need an InstallShield 'answer file', customarily named setup.iss. Some applications ship with such a file, but if yours does not, you can use the graphical installer itself to create one.Here is how it works. Run the installer with the /r ('record') switch.

Proceed through the dialogs and complete the installation. This will create a setup.iss file and place it in the C:WINDOWS directory (yes, really). This file will include all of your responses to the InstallShield dialogs, allowing you to perform unattended installations as if you were giving the same answers again. Simply copy setup.iss to the same directory as the installer executable.Once you have a setup.iss file, run the installer with the /s ('silent') option. This will perform an unattended installation.Unfortunately, the installer will fork a separate process and exit, meaning it will return immediately even if you run it under start /wait. This makes it useless for scripting purposes. Luckily, there is another switch, /sms, which will cause the installer to pause until the installation completes.Hence, for an InstallShield application, you want to provide both the /s and the /sms switches.The /f1filename switch allows you to specify a fully-qualified alternate name for the setup.iss file.

Note that there must be no space between the /f1 switch and the file name. This switch works both with /r to create the file and with /s to read it.The /f2filename switch specifies a log file. Once again, there must be no space between the switch and the file name.WARNING: Be careful what characters you use in these file names, because InstallShield silently strips certain non-alphanumerics (like hyphens).Oh, one more thing.

The /r and /s switches only work if the release engineer is competent. Many packages have 'custom dialogs' which are not supported by setup.iss, which means the dialogs will always appear no matter what you do. For such packages, I suggest asking the vendor to fix their installer. If that does not work, I suggest doing what you can to deprive them of business.PackagefortheWebInstallShield has a relatively new add-on product called PackagefortheWeb, or PFTW for short. This is basically an InstallShield tree bundled up as a single-file executable.When you run this executable, it extracts a bunch of files to a temporary directory and launches the setup.exe within.The PFTW package recognizes the /s and /a.

The /s switch instructs the PFTW package to run silently, although this does not necessarily mean that the underlying setup.exe will run silently.The /a. ('add') switch allows you to add switches to the command line of the underlying setup.exe process. You may provide any of the normal InstallShield switches here, including /r, /s, and /sms.Thus, to automate the installation of a PFTW package named foo.exe, you would first perform one installation by hand to create the answer file:foo.exe /a /r /f1c:tempfoo.issThen, to install the package completely silently, you would run:start /wait foo.exe /s /a /s /sms /f1c:tempfoo.issThe first /s is only needed for a completely silent installation.

Decompiler Installshield Switches For Computer

If you leave it off, the PFTW package will show you a status bar as it extracts the InstallShield tree to the temporary directory.InstallShield with MSIRecent versions (7 and above) of InstallShield's tools are able to produce MSI files. Read InstallShield's documentation for full details.These MSI files may be shipped alone or with a setup.exe installer.

These installers in turn come in two flavors, called 'InstallScript MSI' and 'Basic MSI'. InstallScript MSI uses the traditional InstallShield switches. Basic MSI is another story.To perform an unattended installation using a Basic MSI installer, you provide the /s /v'.' Switches, where. Represents any additional switches you want to pass down to msiexec. These should include the /qb (or /qn) switch to make the installation non-interactive, so a minimal invocation would be:setup.exe /s /v'/qb'Just to make things interesting, any of these mechanisms might be combined with PFTW. For example, I eventually figured out that the IBM Update Connector requires these flags for unattended installation:updcon532.exe /s /a /s /v'/qb'The first /s tells the PFTW installer to extract silently.

Microsoft installshield download

The /a tells it to provide the remaining switches to the underlying setup.exe. The second /s tells setup.exe to run silently, while the /v'/qb' tells it to pass /qb to msiexec, which causes msiexec to run non-interactively but display a basic interface.Finally, InstallShield has a KnowledgeBase article which is less helpful than you might expect. Are we having fun yet?Wise InstallMasterInstallMaster from Wise Solutions is a competitor to InstallShield. You can usually identify the installers it produces by running 'strings' on the executable and grepping for 'Wise'.InstallMaster installers are supposed to recognize the /s switch to perform a silent installation. And in my experience, they generally do.

But there is no way to set options, and the exit status is meaningless.NOTE: This product has been rebranded the 'Wise Installation System'. Don't let them confuse you.Inno SetupInno Setup is an open source competitor in this space.

You can usually identify the installers it creates by running 'strings' on the executable and grepping for 'Inno'.The switches for Inno Setup are fully documented in the ISetup.hlp file in the Inno distribution. The GnuWin32 project has put a copy on the Web.In my experience, the /silent switch is usually sufficient for a basic unattended installation. But to be completely sure, I recommend /sp- /silent /norestart.Note that the /verysilent switch may reboot the machine without prompting, which is pretty much the worst of all possible worlds. So if you use /verysilent, be sure to use /norestart as well.Nullsoft Scriptable Install SystemThe Nullsoft Scriptable Install System (NSIS) is another open source installation system.

It was created by the WinAmp authors to distribute that application, but it is now a general-purpose system which anyone might use.When an NSIS installer runs, it creates a little window which says verifying installer: N%, where N counts from 0 to 100. So you can recognize these installers by this behavior.

Decompile Installshield Installer

(Actually the verification procedure is optional, but most installers have it enabled. As an alternative, you can run 'strings' and grep for 'NSIS'.)NSIS installers recognize /S for silent installation, /NCRC to suppress the CRC (verification) step, and /D=dir to specify the 'output directory', which is where the program will be installed. These options are case-sensitive, so be sure to type them in upper case.Incidentally, all /S does is change the installer script's SilentInstall attribute from 'normal' to 'silent'. What effect this has, exactly, depends on the person who wrote the script. If /S does not perform a silent install, consider submitting a bug report to the installer's creator.Microsoft hotfixes and older packagesMost Microsoft hotfixes respond to the /? Switch, but they do not always tell you everything.According to KB article 816915 and KB article 824687, Microsoft is moving towards standardized packaging and naming for hotfixes.

But they are not done yet.Modern hotfixes support /passive (formerly /u) for unattended installation, /norestart (formerly /z) to suppress the automatic reboot, and /n to skip backing up files needed for uninstalling the hotfix.Some hotfixes use an old Microsoft packaging technology called 'IExpress', whose switches are more-or-less documented in KB article 197147 and an old USENET post. These installers first extract some stuff to a temporary folder and then run a command from inside that folder. They support the /t:path switch to specify the temporary folder name and the /c:command switch to specify the command to run. Specifying just /c suppresses running the command at all, so you can use /c /t:path to extract the hotfix just to look at it.These packages support the /q switch for quiet operation, except sometimes you have to use /q:a instead. They also support the /r:n switch to suppress the reboot. Sometimes these do not work and you have to fiddle with the /c:command switch; see the second 'NOTE' in KB article 317244 for an example.Leave it to Microsoft to make systems administration an experimental science.If all else fails.If the application simply has no unattended installation procedure, you can create your own.

I prefer to avoid these approaches if at all possible, since they are relatively unreliable and difficult to maintain.RepackagingThere are several tools around which can take a snapshot of a machine's state before and after a manual installation, compute the differences between the states, and bundle them up as an 'installer'. The Wise product line provides good support for this, and Microsoft's free tool (recently updated) provides bad support for it.The problem with this approach is that it fundamentally cannot work reliably. An installer's behavior may depend on the exact initial state of the machine, such as the OS version or the presence/absence of other installed software.

So the repackaged installer will almost never do exactly the same thing that a fresh installation would, unless the target machine is completely identical to the original machine.In addition, for every new release of an application, you will need to repackage it again. And there are other disadvantages which even Microsoft recognizes.For these reasons, I think repackaging is a very bad idea and I advise against it.AutoItAutoIt is a free tool which can simulate key presses and mouse clicks, following a script customarily named with a.aut extension.

Most installers have a sufficiently simple and consistent interface that a very short AutoIt script suffices to automate their installation.The AutoIt distribution includes very good documentation. You can copy the AutoIt.exe program wherever you like (say, Z:bin) and invoke it standalone.AutoIt scripts do have drawbacks.First, you must be careful when upgrading to new releases of an application, since the installer's UI may have changed.More worryingly, AutoIt scripts are theoretically unreliable because they do not let you determine when a sub-process has exited. You can tell when AutoIt itself exits, but that is not the same thing at all.

Jaime escalante program pioneer high school. For example, an installer's last window might disappear while the installer was still working. Your master script, waiting only for the AutoIt executable, would then proceed, starting another installation or rebooting the machine.AutoIt provides Run and RunWait primitives, but it does not provide a way to wait for the termination of an application which was invoked by Run.

If it did, this race condition could be avoided.In practice, it does not matter much, because most installers do finish their work before destroying their last window. Just make sure your.aut script uses WinWaitClose to wait for that last window to vanish.copied from Patrick J. LoPresti patl@users.sourceforge.net w/ permission.

MSI files are Windows installer files (for Microsoft Installer) that Windows users can run to install software on a PC.You may experience a couple of issues with these type of setup files: installations may not complete properly, you may not be able to install the program on a network, or you may run into dependency issues if the system is lacking other required installations.Sometimes, you may only need access to a single file contained in the msi installation package, at other times, you may have noticed that all the installer did was extract the files to the system. In the latter case, extraction of the msi file may have yielded the same result, but with additional benefits including a fully portable application that does not leave traces behind on the host system.And if you are running a non-Windows system, extraction may be the only option you got to access files included in the msi installer package. Extracting msi files extracting msi installer filesDepending on the operating system that you work on, you may have multiple options to extract msi files.

The is for instance available for Windows, Linux and Mac systems. It can be used to extract msi files on the host system.All that you need to do for that is right-click on the msi file, and select Extract Here to unpack the msi file on your system.

You can alternatively open the archive instead using the same application. This opens all files in the 7-Zip program manager from where individual files can be extracted or run right away.If you are using Microsoft Windows, you can use programs such as, or.Note: Some extractors may not be able to unpack all msi files on your system. It is therefore a good idea to keep multiple tools at hand if you run into situations where your favorite program cannot extract the msi. There may also be a difference in how files are extracted. 7-Zip for instance extracts all files to the root directory, while the built-in msiexec tool will preserve directories.To use msiexec, you need to perform the following operation:. Tap on the Windows-key and type cmd. Right-click on cmd.exe and select Run as administrator from the context menu.

Confirm the user account control prompt if it appears. Use the command msiexec /a msifilepath/qb TARGETDIR=targetpathYou can look up the full list of command line switches. The /a command applies the administrative installation option, the /qb parameter displays a basic user interface.Advertisement.