限次程序C语言源码

xiaoyudishine

xiaoyudishine

2016-02-19 14:31

今天图老师小编给大家展示的是限次程序C语言源码,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
软件试用次数的限制有很多种方法,其要害是把次数这个值存储在哪 里。本文介绍一种方法,通过改变文件 的时间来存储试用次数,从而限制软 件的试用。稍微修改一下程序就可以使用了。
  
   一、通过改变文件时间来限制软件的试用次数
   在MS-DOS中,文件的时间是 通过一个16位的值来保存的,位 15~11用来保存小时数,位10~5用 来保存分钟数,位4~0用来保存秒钟 数。这个16位的值正好可以被我们用来保存试用次数。例如,在下面的示例 程序中,笔者就使用了保存分钟数的 位来保存
   试用次数。运行一下示例程 序,我们可以看到,只是文件时间的分 钟数加了1,一般人很难察觉,这种方 法有比较好的隐蔽性。
  
   二、示例程序中所涉及的中断
  
   1.中断21H的功能3DH
   用途:打开文件用于读。写或补充。
   调用寄存器:AH=3DH,AL=00H,DS:DX=文件名;
   返回寄存器:CF 复位--成功,AX=文件把柄。
   CF 置位--出错,AX=错误代码。
  
   2.中断21H的功能3EH
   用途:强迫清除所有缓冲区,更新目录,使文件把 柄无效。
   调用寄存器:AH=3EH,BX=文件把柄;
   返回寄存器:CF 复位--成功,AX被破坏,
   CF 置位--出错,AX=错误代码。
  
   3.中断21H的功能57H、子功能00H
   用途:读出文件被最后修改的日期和时间。
   调用寄存器:AX=5700H,BX=文件把柄;
   返回寄存器:CF 复位--成功,CX=文件时间, DX=文件日期,CF 置位--出错,AX=错误代码。
  
   4。中断21H的功能57H、子功能01H
   用途:将文件最后被修改过的日期和时间信息变 成指定值。
   调用寄存器:AX=5701H,BX=文件把柄,CX= 新时间,DX=新日期;
   返回寄存器:CF 复位--成功,CF 置位--出错,AX=错误代码。
  
   三、示例程序 #include
   #include
   #include
   int count( )
   {
   union REGS inregs,outregs;
   strut SREGS segs;
   unsigned handle;
   unsigned times;
   / * 打开文件 * /
   inregs.h.ah =0x3d;
   inregs.h.al =0;
   scgread(& segs);
   inregs.x.dx ="test.exe";
   intdosx(& inregs, & outregs, & segs);
   if(outregs.x.cflag) return(0);
   else
   {
   / * 读取文件日期时间 * /
   handle = Outregs.x.ax;
   inregs.x.ax = 0x5700;
   inregs.x.bx = handle;
   intdosx(& inregs, & outregs, &segs);
   times = (outregs.x.cx &0x7e0) 5;
   if(times 40)/ * 试用次数可以通过改变此处的'40'来实现 * /
   {
   inregs.x.ax = 0x5701;
   inregs.x.bx = handle;
   inregs.x.cx = outregs.x.cx + 0x20; / * 试用次数计数 * /
   inregs.x.dx = outregs.x.dx;
   intdosx(& inregs, & outregs, & segs); / * 重置日期时间 * /
   return(2);
   }
   else return(1);
   / * 关闭文件 * /
   inregs.h.ah = 0x3e;
   inregs.x.bx = handle;
   intdosx(& inregs, & outregs, & segs);
   }
   }
   main()
   {
   int flag;
   flag = count();
   if(flag==0) printf("此软件为试用版,请勿任意修改! n");
   if(flag==1) printf("此软件为试用版,您的试用次数已满!");
   if(flag==2) printf("此软件为试用版,欢迎试用!");
   }
  
展开更多 50%)
分享

猜你喜欢

限次程序C语言源码

编程语言 网络编程
限次程序C语言源码

c语言10个经典小程序

编程语言 网络编程
c语言10个经典小程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java程序与C语言的接口

Java JAVA基础
Java程序与C语言的接口

C语言程序开发经典实例之三

编程语言 网络编程
C语言程序开发经典实例之三

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用C语言程序判断大小端模式

编程语言 网络编程
用C语言程序判断大小端模式

C语言程序开发经典实例之五

编程语言 网络编程
C语言程序开发经典实例之五

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

编写高级应用程序

编写高级应用程序

CSSVault推荐的130个CSS布局站点

CSSVault推荐的130个CSS布局站点
下拉加载更多内容 ↓