QQ登录

只需要一步,快速开始

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

软件试用次数的限制

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

/ e0 p5 p) D, _5 ~& p) q6 {5 |

; ?( B+ H' ]: L% K4 S" K5 `

软件试用次数的限制有很多种方法,其关键是把次数这个值存储在哪里。本文介绍一种方法,通过改变文件 的时间来存储试用次数,从而限制软 件的试用。 * v( ^: P& @% K$ E3 f. `, z8 w 一、通过改变文件时间来限制软件的试用次数 r" \7 A2 @0 F4 Z+ F8 a 在MS-DOS中,文件的时间是 通过一个16位的值来保存的,位 15~11用来保存小时数,位10~5用 来保存分钟数,位4~0用来保存秒钟 数。这个16位的值正好可以被我们用来保存试用次数。例如,在下面的示例 程序中,笔者就使用了保存分钟数的 位来保存试用次数。运行一下示例程序,我们可以看到,只是文件时间的分 钟数加了1,一般人很难察觉,这种方 法有比较好的隐蔽性。 3 i; n- p+ B6 ?3 Y二、示例程序中所涉及的中断 , b# Q; E8 y! x6 V8 W% r 1.中断21H的功能3DH 8 t& X. X% ?5 I5 u 用途:打开文件用于读。写或补 充。 / p& h2 i1 Y0 S! R: z6 z5 ~ 调用寄存器:AH=3DH,AL=00H,DSX=文件名; 2 y" c! Y6 o3 ^ 返回寄存器:CF 复位--成功,AX=文件把柄。 ) j$ b {5 T* z4 E( O CF 置位--出错,AX=错误代码。 & V/ `2 s2 K" @4 l 2.中断21H的功能3EH 4 Y' p; O9 ]1 [9 p/ n" V2 D8 W 用途:强迫清除所有缓冲区,更新目录,使文件把 柄无效。 6 h6 u3 V5 O; j, K( }* @0 B/ J$ V 调用寄存器:AH=3EH,BX=文件把柄; 2 [- h" x! E, Q+ S; ^3 K# B- | 返回寄存器:CF 复位--成功,AX被破坏, ( z/ l+ p) I) c& {2 I CF 置位--出错,AX=错误代码。 . { W; O: s" \- v( X1 n$ g 3.中断21H的功能57H、子功能00H & [2 d7 a/ X8 ^+ l9 } 用途:读出文件被最后修改的日期和时间。 : V5 x( c2 h# r. U: l9 m1 g g 调用寄存器:AX=5700H,BX=文件把柄; # P2 |$ k" w- r7 n 返回寄存器:CF 复位--成功,CX=文件时间, DX=文件日期, : G, `5 {- N$ a) S( v# M, r CF 置位--出错,AX=错误代码。 ' L# ~3 S& J( e9 L8 m 4。中断21H的功能57H、子功能01H $ h0 c! x7 |! w; m, Y) {# M# ^; l 用途:将文件最后被修改过的日期和时间信息变 成指定值。 5 S& w- V) ~- @7 }- @# G. T2 X 调用寄存器:AX=5701H,BX=文件把柄,CX= 新时间,DX=新日期; 6 o9 e& ?" ~: u1 g* @5 q% @ 返回寄存器:CF 复位--成功, ) N9 B3 g8 v5 g7 s3 [8 }& M$ H6 R CF 置位--出错,AX=错误代码。 : `+ b- w: v& Z) E 三、示例程序 " [; N$ y6 E& ]8 X. c #include <sidio.h> 5 K% `1 f+ A) m1 \$ G#include <dos.h> 8 ? A" X: m5 |, f$ l& u #include <conio.h> ) I, C, D* T2 d2 G: j0 P- e4 Iint count( ) % d2 G. K# u( O, g5 W& }4 K{ # ~7 k7 Y+ Q& I3 d# b: j2 @: J* d3 P union REGS inregs,outregs; ! [6 E& f# l, s: L6 a' e7 f$ X strut SREGS segs; 0 T) n" G2 {, g" Q+ Z unsigned handle; % y/ r# u0 F- `2 s unsigned times; $ l U$ g/ W1 D1 U / * 打开文件 * / 2 u3 t6 x4 D' b1 M5 Y$ F inregs.h.ah =0x3d; ) \# m3 F6 R/ [" e1 p# a inregs.h.al =0; / S+ H7 r l0 P& x% O scgread(& segs); : V% c# E0 ?# c; M# r, C% U" h& W inregs.x.dx ="test.exe"; ) g' V K* J! ?& H; Q4 o: O intdosx(& inregs, & outregs, & segs); ' x' {1 a" _+ `: h& P if(outregs.x.cflag) return(0); $ X6 x! i, W9 U9 g8 W else 6 L5 X, @9 x8 b, v/ d7 V$ m# ?1 u1 L { 8 h/ F9 c" Y& t- ] / * 读取文件日期时间 * / # ]6 a Y; b `3 v! Z! r handle = Outregs.x.ax; , I4 d& O. a* p9 h inregs.x.ax = 0x5700; 1 M6 R; U8 l* ?* |& E inregs.x.bx = handle; ( O4 v0 _, t" a& d( v" [ intdosx(& inregs, & outregs, &segs); % }+ U4 y! U$ O U9 E* a% ^ times = (outregs.x.cx &0x7e0)> > 5; . K$ k! z, X! j if(times <40)/ * 试用次数可以通过改变此处的'40'来实现 * / , B1 b$ X( m0 r9 {" v; w0 g { 4 O0 ]) y. T. c6 w5 v8 d inregs.x.ax = 0x5701; {# X- h8 i5 R* Z% d6 Z inregs.x.bx = handle; 1 S. N$ h6 R) e( r: y- i inregs.x.cx = outregs.x.cx + 0x20; / * 试用次数计数 * / $ @; Y" ~4 o+ c% Y% Y ? inregs.x.dx = outregs.x.dx; " m9 `' i! J. ~( n intdosx(& inregs, & outregs, & segs); / * 重置日期时间 * / : P! G( P6 Y$ h! E, X, M return(2); " Z/ W& f' h- [% C& d5 o# v } 8 f( Z- ^. e u- _ else return(1); . a% r8 K$ a! w/ ?, Z / * 关闭文件 * / 1 H6 q$ v' I7 F4 L* e4 X" Q inregs.h.ah = 0x3e; . J0 P) z5 ^5 i+ J1 H) a. J inregs.x.bx = handle; ' g/ h" ?$ y- F+ ~5 r/ q. w% ` intdosx(& inregs, & outregs, & segs); ' O! e; p4 Q: z6 R2 E } B$ ?. T9 y$ g3 g } 8 j# j4 u4 g& s" S1 u9 ^+ V main() / m% H' Q i, d4 H' ?' T8 g { - D' r2 Z" A! ]5 V) _) | int flag; " v4 j' p0 g( b1 d flag = count(); " ~+ B0 H( I2 d" P8 ^5 D if(flag==0) printf("此软件为试用版,请勿任意修改!\ n"); - b+ k9 Q2 o8 F- I* `0 n5 Z if(flag==1) printf("此软件为试用版,您的试用次数已满!\n"); . c" u+ U8 Q' U* d# I2 K, \ if(flag==2) printf("此软件为试用版,欢迎试用!\n"); , A s# M' z. N" l0 [; f } : ]8 Z- M1 x$ [0 o9 q

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-4-18 09:01 , Processed in 0.285162 second(s), 52 queries .

回顶部