Any questions? Ask us: support@enigmaprotector.com

Help

Manual
Additional
Manual

Protector FAQ

Q: I have lost The Enigma Protector project file and I can't protect my module again and can't generate registration keys for current module, how can I fix it?

A: Sorry, but this is impossible. The Enigma Protector project file contains several unique constants that are used for key generation. These constants are generated when a project is created and have random contents, and therefore we can't restore them! Please, make backup copies of your project files!

Q: I have several versions of my software, one is protected with The Enigma Protector, the other is not. How can I check whether the current version is protected?

A: Check if the Enigma API functions exist, and if EP_CheckupIsProtected returns TRUE (means the file is protected). See the following Delphi example:

function IsEnigmaPresent : boolean;
var
  pEP_CheckupIsProtected : function : boolean;
begin
  Result := false;
  pEP_CheckupIsProtected := GetProcAddress(GetModuleHandle('enigma_ide.dll'), 'EP_CheckupIsProtected');
  if @pEP_CheckupIsProtected <> nil then
  begin
    Result := pEP_CheckupIsProtected;
  end;
end;


A (OLD, not recommended): This can be solved by using a Reg_Crypt macros. See the following Delphi example:

function IsEnigmaPresent : boolean;
begin
  Result := true;
  // this code returns TRUE at any ways,
  // but we should use it to fighting
  // with the Delphi code optimization
  if GetModuleHandle(nil) <> 0 then
  begin
    {$I reg_crypt_begin1.inc}
    Result := false;
    {$I reg_crypt_end1.inc}
  end;
end;