国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

限次程序C語言源碼

2019-11-17 05:30:42
字體:
來源:轉載
供稿:網友
軟件試用次數的限制有很多種方法,其要害是把次數這個值存儲在哪 里。本文介紹一種方法,通過改變文件 的時間來存儲試用次數,從而限制軟 件的試用。稍微修改一下程序就可以使用了。

一、通過改變文件時間來限制軟件的試用次數
在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) if(flag==1) printf("此軟件為試用版,您的試用次數已滿!/n");
if(flag==2) printf("此軟件為試用版,歡迎試用!/n");
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚宁县| 濮阳市| 扎赉特旗| 古田县| 周至县| 濉溪县| 西贡区| 成安县| 阳谷县| 博湖县| 吐鲁番市| 龙门县| 南丹县| 丹阳市| 肥乡县| 伊川县| 边坝县| 舟山市| 兰州市| 阿拉善左旗| 绵阳市| 界首市| 合作市| 龙陵县| 介休市| 达拉特旗| 苗栗县| 徐州市| 泰州市| 商南县| 九龙城区| 河北省| 东光县| 江油市| 涡阳县| 丘北县| 通江县| 固阳县| 鄂伦春自治旗| 北辰区| 成武县|