QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2851|回复: 0
打印 上一主题 下一主题

软件试用次数的限制

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 01:31 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

; O( L; \% e, H9 B! ~$ S

! c0 T) N% R" H' J% P! ?. k

软件试用次数的限制有很多种方法,其关键是把次数这个值存储在哪里。本文介绍一种方法,通过改变文件 的时间来存储试用次数,从而限制软 件的试用。 , ~7 d; L/ a' x. l; @+ b一、通过改变文件时间来限制软件的试用次数 7 U( L0 f" x/ Z$ j+ q, X# f 在MS-DOS中,文件的时间是 通过一个16位的值来保存的,位 15~11用来保存小时数,位10~5用 来保存分钟数,位4~0用来保存秒钟 数。这个16位的值正好可以被我们用来保存试用次数。例如,在下面的示例 程序中,笔者就使用了保存分钟数的 位来保存试用次数。运行一下示例程序,我们可以看到,只是文件时间的分 钟数加了1,一般人很难察觉,这种方 法有比较好的隐蔽性。 & [( E( b% `( H& v) R二、示例程序中所涉及的中断 ' D: [- w" B2 r1 Z& X1.中断21H的功能3DH : V) b: F' c& B 用途:打开文件用于读。写或补 充。 ; s7 z9 `8 R" G' s# Z3 F' X7 l! b 调用寄存器:AH=3DH,AL=00H,DSX=文件名; % b/ _) A H9 V% X' Y* G: h1 I, b/ i 返回寄存器:CF 复位--成功,AX=文件把柄。 7 b2 }/ H h* H/ ~/ _, l1 f CF 置位--出错,AX=错误代码。 - D, {# B5 v0 b 2.中断21H的功能3EH ( o I. C0 ~9 h' D# Q, ^2 `& ?& L7 ] 用途:强迫清除所有缓冲区,更新目录,使文件把 柄无效。 ( A8 A" L; `3 w& S 调用寄存器:AH=3EH,BX=文件把柄; ' o5 X( K' ~ A% Y1 c 返回寄存器:CF 复位--成功,AX被破坏, % t3 P7 V; ~! { CF 置位--出错,AX=错误代码。 1 z- ^* q& }) F* W, s* m& a 3.中断21H的功能57H、子功能00H * v7 ]; V( E- X C 用途:读出文件被最后修改的日期和时间。 * ^7 M8 O, n: d* Y3 K& G5 T 调用寄存器:AX=5700H,BX=文件把柄; 7 p$ z# J5 W$ f' l7 M) B 返回寄存器:CF 复位--成功,CX=文件时间, DX=文件日期, # j- }8 N9 U, a CF 置位--出错,AX=错误代码。 & D- V+ a1 \* I' [9 { 4。中断21H的功能57H、子功能01H * q. ], L7 f5 M) _) S; v! W, x 用途:将文件最后被修改过的日期和时间信息变 成指定值。 6 U( j3 B1 F$ R0 ]! w 调用寄存器:AX=5701H,BX=文件把柄,CX= 新时间,DX=新日期; ( a$ Q- |6 T9 ] w6 B1 Y' ?5 X 返回寄存器:CF 复位--成功, 2 n8 D6 S4 H9 f" N, U CF 置位--出错,AX=错误代码。 ) y, Q+ o* t8 c0 l ] |; n 三、示例程序 8 k) \( T3 M/ R+ I" e1 v6 ]! N0 A #include <sidio.h> : D: t0 U( N) F& X* \/ f- i#include <dos.h> / ~1 `! x; A: T #include <conio.h> 6 u$ N3 M, G% j6 T% q7 C P% U int count( ) ) M' J" F5 F2 n1 X2 H* }{ 1 J5 w$ ?7 R' @4 W* o0 p/ t6 y5 } union REGS inregs,outregs; 2 ?, k# K! ?0 ^6 J/ c# d strut SREGS segs; / ]) s3 S5 Y; ?. ~) Z unsigned handle; * ]7 Z% v. b1 J$ U unsigned times; ' h7 S* U9 E6 f5 C; _9 j( H / * 打开文件 * / ) R9 R' Z4 a+ I inregs.h.ah =0x3d; # N& `8 f5 ?6 G* E3 Y inregs.h.al =0; 3 a' W6 u! Q6 }3 j7 h- L scgread(& segs); ' ~! y- n! ^" z7 E inregs.x.dx ="test.exe"; ; {0 X. J4 Q; J& k& i; t$ a9 n intdosx(& inregs, & outregs, & segs); ) K7 J$ [ f4 V- | if(outregs.x.cflag) return(0); " U% h( f; U4 S* H4 l8 ^# } else 5 S/ ^6 t9 R) h* R2 B- | { ) B# `# a) Y0 T% U. h) y; Z / * 读取文件日期时间 * / 0 u# ^' o$ k0 v; P& y* k5 h handle = Outregs.x.ax; 5 }/ v7 u8 f6 K/ t; q. j" y6 X inregs.x.ax = 0x5700; a1 V9 [/ X+ I, G4 _6 ? inregs.x.bx = handle; & ^ H, R6 f- v; X+ B intdosx(& inregs, & outregs, &segs); * v* V- Z1 ^ c6 g1 H* ^0 i+ H0 m times = (outregs.x.cx &0x7e0)> > 5; 1 L* j2 ~: z% A3 s/ c0 R& G8 \; @ if(times <40)/ * 试用次数可以通过改变此处的'40'来实现 * / 0 |9 S' n3 c, t: Z. F3 W/ j3 R { 0 C- k8 U/ O! `( | inregs.x.ax = 0x5701; ! R( [7 X b& q6 F$ h3 P L) Y inregs.x.bx = handle; ' e( X! C+ D6 k* N inregs.x.cx = outregs.x.cx + 0x20; / * 试用次数计数 * / 4 |& ?4 z& h$ h8 P: y1 r: J8 B Q; A, ] inregs.x.dx = outregs.x.dx; ! n2 \; ^( W1 }* X# V, `: w- q intdosx(& inregs, & outregs, & segs); / * 重置日期时间 * / # d+ a9 m; y+ M return(2); 3 c4 L* P3 E0 J) C' v2 e } " U$ I+ {. |/ ^3 Q else return(1); 1 l6 z5 |6 ^( d. R5 B / * 关闭文件 * / ; ?! n7 @2 x# r) d0 ~1 Z inregs.h.ah = 0x3e; # }. P/ l# a$ o3 c inregs.x.bx = handle; ; J; u7 [6 C! v8 ^ intdosx(& inregs, & outregs, & segs); 1 y, M A3 |3 h# ]# a$ Y8 m } : ~+ f- I$ O6 r" p6 J& l3 t} # ^+ A' x# x6 W2 w$ t; L* A- h- Mmain() 0 S2 z8 K, b' Z% W3 `! y1 k! j. p { ! y# \; q* r0 l' A int flag; . D" A1 z+ T& R0 F* u1 O flag = count(); 0 S; w4 z6 u$ c+ S& V8 e% `( t if(flag==0) printf("此软件为试用版,请勿任意修改!\ n"); 4 j J9 r& d; b1 I0 a* V6 \ if(flag==1) printf("此软件为试用版,您的试用次数已满!\n"); 6 N7 M, a" c" \! C if(flag==2) printf("此软件为试用版,欢迎试用!\n"); & @. B1 H' z9 W" _- k9 L. r} 6 ]3 u: m- j7 T6 [

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-12 06:17 , Processed in 0.454309 second(s), 52 queries .

回顶部