Hello,
I'm evaluating Enigma Protector to protect our applications (both x86 and x64).
I found an issue when using x64 version of the tool (downloadable version from you website).
When I call EP_CheckupIsProtected and my app is unprotected, the result of EP_CheckupIsProtected is random.
I investigated and it seems the EP_CheckupIsProtected return it's result in "al" register (8 bits?) where the function declaration is supposed to return a BOOL (32 bits).
EP_CheckupIsProtected code:
push rbp
mov rbp,rsp
sub rsp,30h
mov byte ptr [rbp-8],0
mov al,byte ptr [rbp-8] <= result is 8 bits
leave
ret
From the caller:
if (!EP_CheckupIsProtected())
call qword ptr [__imp_EP_CheckupIsProtected (13F6C2198h)]
test eax,eax <= 32 bits test
Can you confirm the issue?
I guess this problem occurs with all prototypes declared as returning BOOL but I didn't test yet.
The problem doesn't occur with x86 version.
Thanks.
Jerome
Issue with BOOL definition in enigma_ide64.lib ?
Re: Issue with BOOL definition in enigma_ide64.lib ?
Hi Jerome,
I confirm there is such problem.
The problem happens with the few functions:
EP_CheckupIsProtected, EP_CheckupIsEnigmaOK, EP_CheckupFindProcess.
Temporary, you can change the result type of these functions to bool (which is 1 byte) instead of BOOL (4 bytes) in the enigma_ide.c
The problem is already solved.
Thanks you for the note!
I confirm there is such problem.
The problem happens with the few functions:
EP_CheckupIsProtected, EP_CheckupIsEnigmaOK, EP_CheckupFindProcess.
Temporary, you can change the result type of these functions to bool (which is 1 byte) instead of BOOL (4 bytes) in the enigma_ide.c
The problem is already solved.
Thanks you for the note!
Re: Issue with BOOL definition in enigma_ide64.lib ?
Yes this is what I've done.Temporary, you can change the result type of these functions to bool (which is 1 byte) instead of BOOL (4 bytes) in the enigma_ide.c
Thank you for you quick answer.