ASPACK SOFTWARE - Best Choice Compression and Protection Tools for Software Developers

Welcome Guest ( Log In )

 
Reply to this topicStart new topic
> Exported API functions are not supported
Azurite SLU B669...
post Nov 19 2018, 02:25 PM
Post #1


Newbie
*

Group: ASProtect SKE users
Posts: 4
Joined: 19-November 18
Member No.: 16,361



Hi

I'm running ASProtect 2.78 to apply protection to a legacy application. The application source code was recently transferred to us and used an older version of ASProtect, but since the ASProtect license is not transferable we acquired a new license of your product.

Now when applying protection, I get this warning message: Exported API functions are not supported by this version of ASProtect

Then in our application we found that HardwareID is returning nil / null pointer.

What is the recommended approach? Is there a replacement function we should migrate to?

Thanks
Go to the top of the page
 
+Quote Post
ASPack Support
post Nov 20 2018, 12:25 PM
Post #2


Advanced Member
***

Group: Moderators
Posts: 392
Joined: 6-August 07
Member No.: 2,557



Hello and welcome to the forum!

If you used previous ASProtect version and upgraded to ASProtect 32 (SKE) version then you need to migrate completely to new API functions provided in user manual/examples. There is no backward compatibility in terms of API with these versions. Please check section "API description" in user manual (press F1 while in ASProtect 32 menu).
Go to the top of the page
 
+Quote Post
Azurite SLU B669...
post Nov 22 2018, 09:55 PM
Post #3


Newbie
*

Group: ASProtect SKE users
Posts: 4
Joined: 19-November 18
Member No.: 16,361



QUOTE (ASPack Support @ Nov 20 2018, 01:25 PM) *
Hello and welcome to the forum!

If you used previous ASProtect version and upgraded to ASProtect 32 (SKE) version then you need to migrate completely to new API functions provided in user manual/examples. There is no backward compatibility in terms of API with these versions. Please check section "API description" in user manual (press F1 while in ASProtect 32 menu).


Thank you! I got it working now (sort of). Still hit some major problem to be able to debug my application during development (prior to protection).

This is what I've done so far:

1. Seeing that I now need to call GetHardwareID as an external function, I imported aspr_api.pas from the Examples directory, which includes the declaration I needed.

2. As the declaration points to "aspr_ide" external module, I imported aspr_ide.dll as well.

3. When I run my program before protection, it will load aspr_ide.dll, which starts ASProtect IDE Debug log and complains loudly "Can't load project ...." before aborting.

Looking around in the help file, I gather that I need to run a program called ASProtect IDE for initial setup, but can't find that in the installation package.

Or maybe there's some way I can disable ASProtect IDE? I don't really need GetHardwareID to work at all during development. If it returns a NULL pointer I'll be just as fine.

Many thanks
Go to the top of the page
 
+Quote Post
ASPack Support
post Nov 23 2018, 01:49 PM
Post #4


Advanced Member
***

Group: Moderators
Posts: 392
Joined: 6-August 07
Member No.: 2,557



Hello again!

ASProtect IDE is in fact concluded in aspr_ide.dll library and maybe you need more priviligies to your user account in order to load an aspr2 file project. Try to run your program for debugging with adminstrator's rights.
Of course you can skip calling "aspr_ide" external module in your code as soon as you are sure that your protected application is ready for release and distribution.
Go to the top of the page
 
+Quote Post
Azurite SLU B669...
post Dec 3 2018, 02:37 PM
Post #5


Newbie
*

Group: ASProtect SKE users
Posts: 4
Joined: 19-November 18
Member No.: 16,361



QUOTE (ASPack Support @ Nov 23 2018, 02:49 PM) *
Hello again!

ASProtect IDE is in fact concluded in aspr_ide.dll library and maybe you need more priviligies to your user account in order to load an aspr2 file project. Try to run your program for debugging with adminstrator's rights.
Of course you can skip calling "aspr_ide" external module in your code as soon as you are sure that your protected application is ready for release and distribution.


Thanks, I think I understand now. I should write my code to use GetHardwareID just as if that funcion was provided by aspr_ide.dll, but this is only so during development. Later when I protect the executable, ASProtect will replace external references to aspr_ide.dll with its own code and embed that into the executable, so there's no external dependency anymore.

Since I don't need to use the IDE for the time being, for use during development I've written a dummy aspr_ide.dll which only contains:

QUOTE
char *GetHardwareID(void)
{
return (char *) 0;
}


So my application, when run inside development environment, detects that protection is missing (which on production is not allowed, but on development is OK).

Is that correct?
Go to the top of the page
 
+Quote Post
ASPack Support
post Dec 5 2018, 09:23 AM
Post #6


Advanced Member
***

Group: Moderators
Posts: 392
Joined: 6-August 07
Member No.: 2,557



Hello again!

Sure, you can use that scheme if you are still developing your application.
Go to the top of the page
 
+Quote Post
Azurite SLU B669...
post Dec 5 2018, 06:30 PM
Post #7


Newbie
*

Group: ASProtect SKE users
Posts: 4
Joined: 19-November 18
Member No.: 16,361



Ok thanks!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 



Lo-Fi Version Time is now: 14th October 2019 - 05:57 AM