> Thanks for the pointers. I'll have a look around. At first glance their
> trick seems to be using security holes in DLL's, which won't be an option
> here.
>
> Yes, D4305A includes a local FlexLM lmgrd (v2.21), the Inmos license
> daemon (inmos_ld), and a D4305 license generator tool (that requires the
> unknown activation code). I'm not sure how these child daemons work.
On network installs of recent FlexLM, there's the FlexLM daemon and the
vendor daemon, which listen on different ports. The first is generic, the
second is specific to a particular vendor. I think the client is talking to
the vendor daemon primarily to check out licences (they are both exposed on
different TCP sockets) - maybe the FlexLM daemon is just being a signpost
to find out the port of the vendor daemon?
(in theory you can run multiple vendor daemons on the same machine with a
single FlexLM daemon, in practice everyone wants a different FlexLM version
so it's easier to use VMs or containers)
> FlexLM launches them, and as the Occam compiler is complaining about key
> encryption, it appears the license itself is encrypted in the FlexLM
> license.dat (by the generator tool, probably node-locked as it requires
> the hostid too) and then decrypted by the Inmos daemon.
license.dat is the licence file, that contains the actual licence
information as well as the host information. Typically there will be a list
of 'feature' tags and a licence for each one?
Do you have a valid licence file? For example, this is an old licence file
for Bluespec's compiler (which is now open source and no longer uses FlexLM):
# licence server and MAC address:
SERVER
licsrv.example.com 0123456789ab
# path to vendor daemon, whose binary is called 'BLUESPEC'
VENDOR BLUESPEC $BLUESPECDIR/../util/flexlm/<architecture>/BLUESPEC
#
#
########################## FEATURE LINES ############################
#
# Version: 3.8
# Expiration: 30-May-2020
#
INCREMENT BCOMP BLUESPEC 3.8 30-may-2020 250 \
VENDOR_STRING=Q..alphanum_string.. SUPERSEDE ISSUED=02-May-2019 \
START=02-May-2019 SIGN="0123 4567 89ab cdef 0123 4567 89ab cdef ..."
#
# BCOMP = the feature name
# other blocks for other features follow
If it's node locked it'll be based on host ID, which is the MAC address on
x86 hardware. If you run it in a VM you are able to (in fact, you have to)
set an arbitrary MAC address...
Theo