Without signed executables, and if someone is willing to spend the time to look for the exact spots in a disassembler in non-verified executables, they can either negate the condition or skip over the license check. This assumes it only happens in 1 location. Every upgrade of that particular file would likely need to be re-patched each time.
The least work semi-automated way to find it is through tracing a initial failure run and then binary search inverting logic of branch instructions.