彩票走势图

logo VMPsoft中文文档
文档彩票走势图>>VMPsoft中文文档>>步骤 2.1:创建新的受保护应用程序

步骤 2.1:创建新的受保护应用程序


VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C++、Visual Basic(本机)、Virtual Pascal和XCode编译器。

同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择要保护的代码片段。 为了轻松实现应用程序保护任务的自动化,VMProtect实现了内置脚本语言。VMProtect完全支持Windows系列的32/64位操作系统(从Windows 2000开始)和Mac OSX(从版本10.6开始)。重要的是,无论目标平台如何,VMProtect都支持所有范围的可执行文件,即Windows版本可以处理Mac OS X版本的文件,反之亦然。

VMProtect最新版下载

加密解密技术交流群(766135708)

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


#include <windows.h>
#include <stdio.h>
#include "VMProtectSDK.h"

#define PRINT_HELPER(state, flag) if (state & flag) printf("%s ", #flag)
void print_state(INT state)
{
if (state == 0)
{
printf("state = 0\n");
return;
}

printf("state = ");
PRINT_HELPER(state, SERIAL_STATE_FLAG_CORRUPTED);
PRINT_HELPER(state, SERIAL_STATE_FLAG_INVALID);
PRINT_HELPER(state, SERIAL_STATE_FLAG_BLACKLISTED);
PRINT_HELPER(state, SERIAL_STATE_FLAG_DATE_EXPIRED);
PRINT_HELPER(state, SERIAL_STATE_FLAG_RUNNING_TIME_OVER);
PRINT_HELPER(state, SERIAL_STATE_FLAG_BAD_HWID);
PRINT_HELPER(state, SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED);
printf("\n");
}

char *read_serial(const char *fname)
{
FILE *f;
if (0 != fopen_s(&f, fname, "rb")) return NULL;
fseek(f, 0, SEEK_END);
int s = ftell(f);
fseek(f, 0, SEEK_SET);
char *buf = new char[s + 1];
fread(buf, s, 1, f);
buf[s] = 0;
fclose(f);
return buf;
}

// The foo() method is very short, but we need it to be an individual function
// so we asked the compiler to not compile it inline
__declspec(noinline) void foo()
{
printf("I'm foo!\n");
}

int main(int argc, char **argv)
{
char *serial = read_serial("serial.txt");
int res = VMProtectSetSerialNumber(serial);
delete [] serial;
if (res)
{
printf("serial number is bad\n");
print_state(res);
return 0;
}
printf("serial number is correct, calling foo()\n");
foo();
printf("done\n");
return 0;
}


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


serial number is bad
state = SERIAL_STATE_FLAG_INVALID


目前,许可系统仍在测试模式下运行,因为该文件未经过 VMProtect 处理,并且其中不包含许可模块。在下一步中,我们将创建一个 VMProtect 项目并尝试保护我们的应用程序。

 

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP