Legacy license server: Floating Licenses
Last updated
Last updated
Floating license versions of IDA use FlexNet License Manager from Flexera to ensure license compliance.
License Administration Guide | general server usage guide from Flexera | |
Upgrade Guide | if you already have a license server configured and are upgrading to a new IDA version | |
Installation Guide | if you're installing the server for the first time (this guide covers installing server on Windows but some parts of it also apply to other platforms). See also instructions below. | |
Troubleshooting Guide | if you're having issues using IDA with the license server or during installation/configuration |
A license server is required for floating license 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:
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.
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.
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.
FNLS is FlexNet Licensing Service, required when locking to a VM UUID.
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.
Installing on Windows
Installing on Linux
Installing on OS X
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.8 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 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.
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.
Start lmadmin if it's not running
open a Web browser and go to http://<servername>:8090/
Click on "Administration", login with user "admin" and password "admin". Change password if requested or see next step.
Click on "User Configuration", then click "Edit" next to "Administrator", and change the password to a secure value (you can change the username too)
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:
Using lmadmin (recommended)
Open the lmadmin UI (go to http://servername:8090 in the browser)
Go to the Administration tab ? System Information
Copy the string to the right from the "Ethernet Address" entry (pick a permanent one if there are several).
Using lmutil
Download the lmutil tool
From console/command prompt, run "lmutil lmhostid"
Copy the first entry from the list (without quotes)
Using system utilities
On Windows: from command prompt, run "ipconfig /all | more", then take "Physical Address" value for the physical Ethernet card.
On Linux/OS X: from command prompt, run "ifconfig | more", then take "ether" value for the physical Ethernet card.
Please choose a MAC for a physical card which is always present.
If you want to use locking to a VM UUID, please download the FNLS package above and follow the directions in readme.txt.
Once you have the Host ID, submit it to our activation page together with the ida.key from an IDA install:
You will receive the .lic file (it's a plain text file) by email. Save it on disk and use it the following way:
If using lmadmin:
Go to Administration tab, Vendor Daemon Configuration.
Click "Import License" and browse to the saved .lic file.
Make sure the "hexrays" daemon binary is installed in proper location (e.g. "hexrays.exe" in lmadmin's directory). If you are using another path, edit the VENDOR line in the .lic file before submitting:
If using lmgrd:
You will need to pass the filename to the .lic file on the commandline using the -c switch. See the License Administration Guide for details.
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 support@hex-rays.com. You can, however, request the .lic file again by entering the same Host ID.
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.
To tell IDA the location of the license server you can either use an environment variable:
or a settings file:
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.
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.
The license server port can be specified on the SERVER line, e.g.:
The vendor daemon port can be specified on the VENDOR line, e.g.:
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.: 29000@servername.
By default our licenses allow borrowing for offline use for up to 4320 hours (this can be disabled or limited by the server administrator).
Since IDA 7.2, borrowing can be performed directly in IDA (menu Help, Floating Licenses), but you can also use the below procedure.
To borrow a license, run the lmborrow utility on the client before running IDA:
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 borrow period lasts until the end of the day. For example:
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:
To perform early return of the borrowed license at the end of your offline work, reconnect your system to the network and run:
Where feature is the name of the borrowed feature that is listed in the "lmborrow -status" output. For example:
You can also set the LM_BORROW environment variable manually instead of using lmutil. Please see the License Administration Guide for more information.
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:
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.
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 exposed directly to the guest OS (no NAT/VPN or similar translation) and be the first in the adapter list.
Use lmutil lmhostid -internet
to confirm that the global IP is exposed to the guest before using it for activation.
See also the License Administration Guide(Chapter 16: Licensing in a Cloud-Computing Environment) for more info.
Use the FNLS package to enable VM UUID locking. Make sure you use output of lmutil lmhostid -uuid
for locking.
You can download FNLS from here:
Running the server in Docker is not supported.
Please see the License Administration Guide. Contact us if you have any questions or problems.
Microsoft® Windows® x64 | ||
---|---|---|
installer | ||
zip package | ||
lmgrd binary (command-line based server) | lmgrd.exe binary | |
Hex-Rays daemon | hexrays.exe binary | |
Utilities |
|
Linux x64 (LSB Certified) | ||
---|---|---|
installer | ||
tgz package | ||
lmgrd binary (command-line based server) | lmgrd binary | |
Hex-Rays daemon | hexrays binary | |
Utilities |
|
macOS® (universal2) | ||
---|---|---|
installer | ||
tgz package | ||
lmgrd binary (command-line based server) | lmgrd binary | |
Hex-Rays daemon | hexrays binary | |
Utilities | lmutil |
License Administration Guide |