将VMProtect集成到应用程序教程之实模式(一):创建新的受保护的应用程序

本系列教程的五个步骤说明了使用基于软件保护工具VMProtect和许可系统的全功能保护来保护简单应用程序的过程。

在实模式下, 


步骤一  创建控制台应用程序

在第一阶段,我们制作了几个简单的应用程序来测试许可系统的API。现在,在第二阶段,创建一个带有foo()函数的控制台应用程序,该函数仅在注册版本中有效。这是测试应用程序的代码:

#include #include #include“ VMProtectSDK.h”#定义PRINT_HELPER(状态,标志)如果(状态和标志)printf(“%s”,#flag)无效print_state(INT状态){        如果(状态== 0)        {                printf(“ state = 0  n”);                返回;        }        printf(“ state =”);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_CORRUPTED);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_INVALID);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_BLACKLISTED);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_DATE_EXPIRED);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_RUNNING_TIME_OVER);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_BAD_HWID);        PRINT_HELPER(状态,SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED);        printf(“  n”);}char * read_serial(const char * fname){        文件* f;        如果(0!= fopen_s(&f,fname,“ rb”))返回NULL;        fseek(f,0,SEEK_END);        int s = ftell(f);        fseek(f,0,SEEK_SET);        char * buf =新的char [s + 1];        fread(buf,s,1,f);        buf [s] = 0;        fclose(f);        返回buf;}// foo()方法非常简短,但我们需要将其作为单个函数//因此,我们要求编译器不要内联编译__declspec(noinline)void foo(){        printf(“我是foo! n”);}int main(int argc,char ** argv){        char * serial = read_serial(“ serial.txt”);        int res = VMProtectSetSerialNumber(序列);        删除[]序列 ;        如果(res)        {                printf(“序列 错误 n”);                print_state(res);                返回0;        }        printf(“序列 正确,调用foo() n”);        foo();        printf(“ done  n”);        返回0;}

在没有调试信息的情况下编译程序,但是在链接器设置中,我们创建了MAP文件–需要将它与VMProtect一起使用。运行程序后,应该看到以下文本:

序列 为错误状态= SERIAL_STATE_FLAG_INVALID

当前,许可系统仍在测试模式下工作,因为该文件未由VMProtect处理,并且其中不包含许可模块。

步骤二 创建VMProtect保护项目

当测试应用程序准备就绪、已编译且在同一文件夹中有分配的MAP文件时,就可以运行VMProtect Ultimate并打开可执行文件。需要向项目添加两个函数:_main(这是Visual Studio重命名main())和foo()的方式。可以在VMProtect的“Functions”部分的功能列表中看到这两个功能。

有关VMProtect更多资源,请联系【客服】了解


12月,庆圣诞,迎元旦,上“ ”小程序签到兑软件商城无门槛抵价券>>>   领优惠券购VMProtect享折上折>>>

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月7日
下一篇 2019年11月7日

相关推荐

发表回复

登录后才能评论