QQ登录

只需要一步,快速开始

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

软件试用次数的限制

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

9 G( S& V! Z; U

# u- a8 c/ n2 \9 H+ a4 n

软件试用次数的限制有很多种方法,其关键是把次数这个值存储在哪里。本文介绍一种方法,通过改变文件 的时间来存储试用次数,从而限制软 件的试用。 * x; D9 K' o' ^ {7 j, u! d5 q. D3 Y! t 一、通过改变文件时间来限制软件的试用次数 ; h H6 g9 l7 t 在MS-DOS中,文件的时间是 通过一个16位的值来保存的,位 15~11用来保存小时数,位10~5用 来保存分钟数,位4~0用来保存秒钟 数。这个16位的值正好可以被我们用来保存试用次数。例如,在下面的示例 程序中,笔者就使用了保存分钟数的 位来保存试用次数。运行一下示例程序,我们可以看到,只是文件时间的分 钟数加了1,一般人很难察觉,这种方 法有比较好的隐蔽性。 7 _$ H3 W( d# A: s5 v/ S3 p二、示例程序中所涉及的中断 6 i& c- U# A& n8 M# n/ U/ n 1.中断21H的功能3DH 6 z; ~/ h& p8 s/ m 用途:打开文件用于读。写或补 充。 % b' I+ J/ W+ I! j" e 调用寄存器:AH=3DH,AL=00H,DSX=文件名; : W$ o! W: {, r 返回寄存器:CF 复位--成功,AX=文件把柄。 - o. e: b: M% ^& ]0 B' \' p, d. C CF 置位--出错,AX=错误代码。 6 K. c8 B% y: j( ]( ~1 ?, F, K5 Y* X 2.中断21H的功能3EH . G+ v6 A2 H- N- P$ ~9 [ 用途:强迫清除所有缓冲区,更新目录,使文件把 柄无效。 $ O: B1 q* w3 g& v% L" z! G 调用寄存器:AH=3EH,BX=文件把柄; 8 d2 [9 ^, n# v, d$ p# N' n 返回寄存器:CF 复位--成功,AX被破坏, 7 i& I' I0 a" X0 _' }& Z CF 置位--出错,AX=错误代码。 $ P- I' c8 A2 Q9 K6 X ? 3.中断21H的功能57H、子功能00H 9 e. c4 s- E" v. ^$ v) P; [ 用途:读出文件被最后修改的日期和时间。 $ L; `# Y% I4 q/ _& m$ O% U8 ]2 o1 F 调用寄存器:AX=5700H,BX=文件把柄; 1 ?: A" t7 U+ d 返回寄存器:CF 复位--成功,CX=文件时间, DX=文件日期, # @! I7 @( W5 U6 g0 ` CF 置位--出错,AX=错误代码。 % N# x$ @" |/ Z+ |7 y2 J 4。中断21H的功能57H、子功能01H " J+ f6 N# t# j; l, Y! }6 k+ e 用途:将文件最后被修改过的日期和时间信息变 成指定值。 7 A; B7 Q# d; d+ ~ 调用寄存器:AX=5701H,BX=文件把柄,CX= 新时间,DX=新日期; ; I9 P* Z T$ a& y 返回寄存器:CF 复位--成功, 2 B8 {& G# C Q1 A) i0 d CF 置位--出错,AX=错误代码。 * `# j0 ~ w) `6 }: [6 f三、示例程序 ; p$ S' f# }, B' q7 q#include <sidio.h> 4 T3 G7 q: b0 Y2 R! O#include <dos.h> # Q: g5 {/ W5 S% A9 y #include <conio.h> 5 h$ H. o. d! M7 J/ R, Mint count( ) 5 ?. Y, \& I! W0 y{ 5 W# T: g* e$ K0 Z0 K/ Z* a union REGS inregs,outregs; ( a2 f. i) D; D" {* z4 G( ?; | strut SREGS segs; / W3 i, q9 O) u# N: R unsigned handle; 7 l8 y& h l, b7 J# T6 t! J: a unsigned times; 5 P" W1 H7 U& s+ c' n6 O& ] / * 打开文件 * / 5 M, A) K6 H$ Y8 F5 K! e/ Z+ |$ ^& m inregs.h.ah =0x3d; & A7 ^( {$ Y2 h# M' x+ H3 ` inregs.h.al =0; ! H7 V2 h% Z6 }2 Y l scgread(& segs); 3 \- r0 e/ N2 j p4 Q( O1 s7 X' d# \ inregs.x.dx ="test.exe"; / E7 ]) c- y, c. O) t6 {9 l) I intdosx(& inregs, & outregs, & segs); ( b( `+ M3 t" H0 l7 h if(outregs.x.cflag) return(0); 9 A( A4 K+ v$ x# v) X4 o: { else * j) i. X" c9 o" T { * f$ H0 Q0 j4 R4 G8 T# e / * 读取文件日期时间 * / * b; P8 E$ H' T8 J A6 T handle = Outregs.x.ax; / V2 m3 O; I* _7 ]' e inregs.x.ax = 0x5700; % _. w$ j- n) H; l0 C; l( Y inregs.x.bx = handle; 1 J% X8 @4 _9 n# M intdosx(& inregs, & outregs, &segs); ' q+ B; k" R. ~% D times = (outregs.x.cx &0x7e0)> > 5; 5 w; O$ t5 S% r) n6 L2 L3 _ if(times <40)/ * 试用次数可以通过改变此处的'40'来实现 * / ) S e" D7 i/ y" l { ; G8 } ^; p; I) Z* g4 l inregs.x.ax = 0x5701; $ I3 a5 @* E w, i" a& m5 Z0 y" Z. { inregs.x.bx = handle; - K/ w6 `5 S: ?2 Y$ ]" c inregs.x.cx = outregs.x.cx + 0x20; / * 试用次数计数 * / 7 i; ^; ` n# c3 l* r inregs.x.dx = outregs.x.dx; 8 A2 b4 h* q, O0 E0 S! ~ intdosx(& inregs, & outregs, & segs); / * 重置日期时间 * / % O& k3 K; h5 F$ ]7 ~. Y return(2); 6 G3 N# t- L/ m/ v' i# ?$ o& q } " t8 {# v/ V( X5 E; l3 H- M! O else return(1); " [$ i3 o4 Y( L, W. ~: j( n / * 关闭文件 * / @% P G `! B @4 X( _- ?& L. D5 ^ inregs.h.ah = 0x3e; - r1 Y3 E3 G/ a4 M+ a inregs.x.bx = handle; ' \4 l+ c5 q6 ] X intdosx(& inregs, & outregs, & segs); + A# @ P+ S+ e8 b" ]' C } 0 M$ B5 l, C% W( k* |, q$ `4 w} , ^+ J# o' l: S2 ~. `) lmain() + r. T5 S4 X ?' f* v{ 0 N2 Q- M" S2 i; [0 R int flag; 2 r! R) r% i- C8 R% O5 K flag = count(); + f4 k# \- }8 [) F t if(flag==0) printf("此软件为试用版,请勿任意修改!\ n"); 8 T3 d/ r) a' z4 Z if(flag==1) printf("此软件为试用版,您的试用次数已满!\n"); # g0 R# m! t! _0 C) u' L6 A4 H if(flag==2) printf("此软件为试用版,欢迎试用!\n"); 3 [0 ^* o% G6 G. O/ V } ; h, x) _ U8 S

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-8-11 10:55 , Processed in 0.367249 second(s), 54 queries .

回顶部