FLEXlm libraries are *flexible* and support many different APIs and methods of license management. How the applications use those libraries is largely up to the developer.
I have developed a FLEXlm-like engine toy, it is not flexible since it offers just *one way*: the validator code is stored in supervisor space, protected by MMU, not accessible form the userspace, and it can be invoked only by a kernel system call, there fore the application needs to pass the FEATURE line as input, and it will get a boolean answer, is_it_valid { True, False }
you put the FEATURE string pointer into a register (including the hash), you invoke the method, it will recompute the hash, it will check if the date is expired and other limitation, then it will answer with the compute hash and with the response
is_it_ok = check_limitations();
is_it_valid=(acquired_hash isEqualTo computed_hash);
ans=(is_it_valid logicalAnd is_it_ok);
return ans;
about bullshit on FLEXlm articles: well, my toy is just a toy, there is no business on it, ... you don't think that the it would really creates an hash (computed_hash) in ram and then compares it the one in the license file (acquired_hash) ... but ... yes they would because this is exactly what they do, and not only that they leave it in memory untouched when they are finished with it.
do you think the same scheme can be applied to FLEXlm? so, are you really *to fish* (through a debugger) the computed hash in memory ? FLEXlm < v5 are claimed to do so, seriously?
in my case ... I was too lazy to implement something really strong, so I put my effort on the protected memory method (XINU kernel), and the validator runs inside the super-user space, which traps a memory error if an application in user space tries to access
the MMU doesn't translate address, virtual addresses are equals to physical addresses, but there is a protection, and some area are not accessible, protected
poor design for my 68060 board, I know
FLEXlm <v5 promotes security through obscurity, then they evolved, since these days (after 2006) one would design something based on public key cryptography, the functional equivalent to openssh login using a certificate.