Floating Licenses

Floating license versions of IDA use FlexNet License Manager from Flexera to ensure license compliance.

Installation guide

If you're installing the server on Windows, please check this document for the detailed guide with screenshots. Some parts of it also apply to other platforms. Otherwise see below.

License server

A license server is required for floating licence versions. It needs to be installed on a dedicated machine in your network which is accessible over TCP/IP from the workstations that will run IDA.

The license server consists of two parts:

  1. The license server manager
    Called 'lmadmin', it is provided by Flexera. If you do not already have the FlexNet license server manager installed, download and install it from the links below.
    We also provide the now-deprecated, console-only 'lmgrd' server. This is the predecessor to 'lmadmin', and provide only a subset of its features.
    In addition, if you are running the 'lmadmin' server on Linux, please note that the 'lmadmin' server is a 32-bit binary. If you are forced to a 64-bit-only configuration and cannot install 32-bit compatibility libraries on your host, you will have to use the 'lmgrd' server.
  2. The vendor daemon
    Called 'hexrays(.exe)', it is provided by Hex-Rays. This binary needs to be placed next to the license server manager executable, 'lmadmin(.exe)' (or 'lmgrd(.exe)')
    You also can use another path, but you will need to edit the VENDOR line in the license file sent to you during the activation.

Download links

Please choose the platform where your license server will be running. It does not have to be for the same platform as IDA; any license server can manage IDA versions for different OSes.

Platform lmadmin installer
(web-based UI server)
lmgrd binary
(command-line based server)
Hex-Rays daemon Utilities
Microsoft® Windows® x86 lmadmin lmgrd hexrays.exe lmtools lmutil
Microsoft® Windows® x64 lmadmin lmgrd hexrays.exe lmtools lmutil
Linux x86 (LSB Certified™) lmadmin lmgrd hexrays lmutil
Linux x64 (LSB Certified™) lmadmin lmgrd hexrays lmutil
Mac OS® X Universal (x86, x64) lmadmin lmgrd hexrays lmutil
All License Administration Guide
Versions 11.15.0.0 11.15.0.0 11.15.0.0 11.15.0.0

Installing the license server & Hex-Rays daemon.

lmadmin server

The recommended server is 'lmadmin', which provides a web-based UI for configuring and managing the license server. If you do not yet have one installed (e.g. from using other FlexNet-bases software), please download the installer above and run it on the server machine.

Starting from v11.15, the lmadmin installer no longer bundles JRE (Java Runtime Environment) required by the installer engine, so please make sure that JRE 1.6 or later (for OS X: JRE 1.7 or later) is installed before running it. For more information see the License Administration Guide.
The 'lmadmin' installer is an InstallAnywhere installer which uses Java. The lmadmin server itself does not use or require Java. You can uninstall JRE after installing lmadmin.
You should not install nor run the 'lmadmin' server as administrator (Windows) or root (Linux/OS X), as this is not recommended.
What's more, at least on Linux/OS X, the embedded HTTP server will simply refuse to start if it is being run as root.

Post-install steps (common)

  1. Download the hexrays daemon from the table above and put it next to the lmadmin executable. Mark it as executable ("chmod +x hexrays") on Linux/OS X.
  2. Start lmadmin if it's not running
  3. open a Web browser and go to http://<servername>:8090/
  4. Click on "Administration", login with user "admin" and password "admin". Change password if requested or see next step.
  5. Click on "User Configuration", then click "Edit" next to "Administrator", and change the password to a secure value (you can change the username too)

Getting the Host ID

Now that the license server & its companion 'hexrays(.exe)' are installed, it is time to request the FlexLM floating license that corresponds to the IDA license you possess.

That floating license needs to be locked to the machine the license server will be running on (not the machines IDA will run on). To request the license file for the first time, you will need a Host ID (an Ethernet MAC address).

You can use the following means of getting the host ID:

Please choose a MAC for a physical card which is always present.

Installing the license

Once you have the Host ID, submit it to our activation page together with the ida.key from an IDA install:

https://www.hex-rays.com/activate.shtml

You will receive the .lic file (it's a plain text file) by email. Save it on disk and use it the following way:

NOTE: If you have multiple .key files and want to activate them with the same host id, submit each of them for activation. Our server will keep track of all licenses activated for the same host id and will prepare a combined .lic file for them. In other words, just use the latest .lic file you received from the server. There is no need to install multiple .lic files.

NOTE: once a Host ID is submitted, it is fixed in our database and can be changed only by a manual request to [email protected]. You can, however, request the .lic file again by entering the same Host ID.

Configuring clients

Windows

On Windows, you can just run IDA and open a file. On the first run this will produce an interactive dialog where you can enter the license server's name. You can also set the environment variable like for Linux and OS X.

Linux/OS X

To tell IDA the location of the license server you can either use an environment variable:

     export [email protected]
   
or a settings file:
     echo "[email protected]" > ~/.flexlmrc
   

Firewall issues

Checking out a license requires two TCP connection: one to the license server, and one to the vendor daemon. If you're using a firewall, you need to make sure that both connections are not blocked both on the server and the client (IDA workstation).

The default port range used by the license server is 27000-27009. The vendor daemon uses a dynamic port by default, so it changes on every run. To change or fix the ports, you can use the Web UI, or edit the .lic file.

Web UI (lmadmin)

The port for the license server can be changed in "Server Configuration" tab, "License Server Configuration" section. The vendor daemon port can be changed in the Vendor Daemon Configuration tab, settings for the "hexrays" daemon. You may need to restart the vendor daemon and/or license server for the changes to take effect.

.lic file

The license server port can be specified on the SERVER line, e.g.:

     SERVER this_host 001122334455 29000
   
The vendor daemon port can be specified on the VENDOR line, e.g.:
     VENDOR hexrays PORT=30000
   
You will need to re-import the .lic file (for lmadmin) or restart the server (for lmgrd) after editing it.

If you change the license server port from the default, you will need to specify it in IDA's server path, e.g.: [email protected]

License borrowing

By default our licenses allow borrowing for offline use for up to 4320 hours (this can be disabled or limited by the server administrator). To borrow a license, run the lmborrow utility on the client before running IDA:

  lmutil lmborrow hexrays <enddate> [time]

enddate is the date the license is to be returned in dd-mmm-yyyy format. time is optional and is specified in 24-hour format (hh:mm) in the local time. If time is unspecified, the checkout lasts until the end of the given end day.
For example:

  lmutil lmborrow hexrays 20-may-2014 13:00
Note: make sure to actually check out the necessary license(s) before disconnecting from the network. For example, open a file in IDA (to check out IDA's license) and decompile a function (to check out the decompiler's license).

To check the status of borrowed licenses, run:

  lmutil lmborrow -status

To perform early return of the borrowed license at the end of your offline work, reconnect your system to the network and run:

  lmutil lmborrow -return [-c @servername] <feature>

Where feature is the name of the borrowed feature that is listed in the "lmborrow -status" output. For example:

  lmutil lmborrow -return -c @myserver IDASTAFW

You can also set the LM_BORROW environment variable manually instead of using lmutil. Please see the License Administration Guide for more information.

Running the license server in a virtual machine or in the cloud

You may run the license server in a virtual machine. We do not recommend it, because the MAC address of the VM network adapter is often changed when moving or cloning the VM. However, some cloud providers offer more permanent identifiers:

Amazon EC2

It is possible to lock the license server to an Amazon EC2 instance. For this please attach an Elastic Network Interface (ENI) to the instance and specify its MAC address as the host ID. Locking to the EIP is not supported at this time.

Digital Ocean

You can use the Floating IP attached to your VM as the host ID.

Microsoft Azure

Azure's Reserved IP address may be used as the host ID.

Other providers

If the cloud provider offers a permanent MAC address or a public IPv4 address, you can use it as the host ID. The IP must be accessible from the guest OS.

See also the License Administration Guide(Chapter 16: Licensing in a Cloud-Computing Environment) for more info.

Upgrading IDA

When upgrading to a new IDA version, you may need to upgrade the license server or at least redo the activation. Please see this document for details.

Further information

Please see the License Administration Guide. Contact us if you have any questions or problems.