Linux系统中软件简单License的实现

本文介绍了如何在Linux系统中使用MD5算法为软件添加license功能,通过获取CPU和MAC地址信息,确保软件只能在特定机器上运行,防止盗用。主要涉及的技术包括获取CPU信息、MAC地址和MD5加密。
摘要由CSDN通过智能技术生成

概述

       目前,很多商用应用系统是运行在Linux系统之上的,为了维护开发者利益,有必要为软件添加license功能,防止软件被盗用和挪用。本文探讨如何在Linux软件中添加license功能,用到的算法是MD5算法。

 

关键字: MD5

 

一 目的和思路

       设置License就是要将软件和运行该软件的机器进行简单“绑定”,该软件只能在某台指定机器上使用,如果将该软件挪动到其他机器上则无法运行。

       根据以上目的,那么思路就很清晰,则我们需要读取该指定机器的某些特征,这里我们只抓取两个特征,即CPU特征和机器MAC地址。

这样,我们需要一个获得机器特征的程序,一个生成license的程序以及在所要加license的程序中嵌入检查license的代码。生成license程序可以是在windows操作系统下编写,也可以在Linux系统下编写,本文只讨论后面一种。

 

二 关键技术

       这里的三个关键技术是获得本机的CPU信息、获得网卡MAC地址信息以及MD5加密。

1.       获得CPU信息

兼容x86的CPU的信息存储在数据结构:

 

struct cpuinfo_x86 {

__u8 x86;        /* CPU family */

__u8 x86_vendor; /* CPU vendor */

__u8 x86_model;

__u8 x86_mask;

char wp_works_ok;    /* It doesn't on 386's */

char hlt_works_ok;    /* Problems on some 486Dx4's and old 386's */

char hard_math;

char rfu;

       int cpuid_level; /* Maximum supported CPUID level, -1=no CPUID */

unsigned long x86_capability[7];

char x86_vendor_id[16];

char x86_model_id[64];

int x86_cache_size;  /* in KB - valid for CPUS which support this

                   call  */

int x86_cache_alignment; /* In bytes */

int fdiv_bug;

int f00f_bug;

int coma_bug;

unsigned long loops_per_jiffy;

unsigned char x86_num_cores;

};

中,对于我们来说,只要获得x86_ven

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值