利用文本通訊實(shí)現(xiàn)authorware的軟件狗加密方法
authorware是一套功能強(qiáng)大的制作多媒體軟件的編著工具。其基于圖標(biāo)和流程線為結(jié)構(gòu)的編輯環(huán)境,使不具有程序設(shè)計(jì)經(jīng)驗(yàn)的生手,也能設(shè)計(jì)出多媒體產(chǎn)品,加上有豐富的函數(shù)及程序控制功能,使它成為多媒體教材或游戲軟件的良好開發(fā)工具。本文介紹一種利用vb與authorware之間的文本通訊,實(shí)現(xiàn)authorware應(yīng)用程序包的軟件狗加密的新方法。
1 vb對(duì)并行i/o口操作的實(shí)現(xiàn)方法
vb本身并沒有i/o端口輸入輸出函數(shù),windows api(應(yīng)用程序接口)也沒有提供端口輸入輸出的能力,因此大部分軟件對(duì)插在打印機(jī)口的軟件加密狗,仍采用dos下的c語言或80x86匯編語言的方式進(jìn)行通訊查詢。但由于vb具有動(dòng)態(tài)鏈接庫dll的調(diào)用功能,因此可以通過調(diào)用其他高級(jí)語言(如visual c++5.0)建立的具有i/o操作功能的dll,來實(shí)現(xiàn)vb對(duì)i/o口的操作。設(shè)用visual c++5.0編程用于操作并行i/o口的動(dòng)態(tài)鏈接庫名稱為outin.dll。dll中有三個(gè)用于vb調(diào)用的功能子函數(shù),它們分別為對(duì)數(shù)據(jù)口(口地址為0378h)進(jìn)行輸入輸出操作的子函數(shù)outindata()對(duì)狀態(tài)口(口地址為0379h)進(jìn)行輸入操作的子函數(shù)status ()以及對(duì)控制口(口地址為037ah)進(jìn)行輸出操作的子函數(shù)control()。vb在使用這些函數(shù)之前,必需在全局模塊(*.bas)中進(jìn)行聲明后,才可以在vb的form窗口中調(diào)用。其聲明和主窗口程序如下:
vb加密狗操作程序
’module 1. bas 中對(duì)dll定義函數(shù)的聲明
declare function outindata lib “outin.dll”(byval value as integer) as integer
declare function status lib “outin.dll”() as integer
declare function control lib “outin.dll” (byval value1 as integer) as integer
’form 框中 inspect.exe 主程序
private sub form-load()
j=control (0)’ 給加密狗上電
j1=outindata (16)’ 給加密狗輸入數(shù)據(jù)
stadata=status ()’ 檢測狀態(tài)口上加密狗輸出數(shù)據(jù)
form1.text1.text=str(stadata)
open “c:\commutxt” for output as #1
print #1 form1.text1.text
close #1
if stadata=6868 then
msg=“啟動(dòng)成功,謝謝使用!”
title=“ 檢查框”
i=msgbox(msg 0 title)
else
msg=“對(duì)不起,您是非法用戶!”
title=“ 檢查框”
i=msgbox(msg 16 title)
end
end if
end sub
以上程序打包成inspect.exe,供authorware加密時(shí)調(diào)用。
2 vb與authorware之間的文本通訊及軟件狗加密的實(shí)現(xiàn)
上述vb程序運(yùn)行后,將得到一個(gè)名為commutxt的文本文件,文本文件中存有檢測狀態(tài)口得到的數(shù)據(jù)statusdata。這個(gè)數(shù)據(jù)與軟件狗中的一致,則為安裝有軟件狗的合法用戶,可繼續(xù)運(yùn)行authorware應(yīng)用軟件包;否則為非法用戶,將退出authorware應(yīng)用軟件,回到windows狀態(tài)。因此authorware應(yīng)用軟件必須在其流程線的一開始加入調(diào)用外部文件inspect.exe的計(jì)算圖標(biāo)ext。在這個(gè)圖標(biāo)中不但實(shí)現(xiàn)了外部vb文件inspect.exe的調(diào)用,還實(shí)現(xiàn)了從調(diào)用后得到的文本文件commutxt中,取出檢測數(shù)據(jù)stadata并賦給authorware新變量sta。為了判斷檢測數(shù)據(jù)與軟件狗中數(shù)據(jù)的一致性,在流程線中要加入另一個(gè)計(jì)算圖標(biāo)test,若與軟件狗中的數(shù)據(jù)dogdata一致,可繼續(xù)運(yùn)行;否則退出應(yīng)用軟件。為了不使dogdata在文本中被查出,最后在流程線上還需加入一個(gè)刪除文件的計(jì)算圖標(biāo)del,用來刪除vb運(yùn)行后形成的commutxt文本文件。
authorware流程圖及計(jì)算圖標(biāo)的編程圖如圖1所示。
圖1 authorware加密流程圖
3 結(jié)束語
本文所述的vb與authorware之間文本傳遞數(shù)據(jù)的方法,不僅可用于authorware應(yīng)用程序包的軟件狗加密,也可用于vb和authorware應(yīng)用軟件之間的其它數(shù)據(jù)傳遞,使得authorware應(yīng)用軟件的編輯更為靈活方便。
作者簡介:楊龍興 江蘇省常州技術(shù)師范學(xué)院教師(213001)
參考文獻(xiàn)
1 賴阿福,鍵智著. 多媒體制作-authorware 3.0實(shí)用指南. 北京: 清華大學(xué)出版社,1996.10
2 劉炳文編著. visual basic 3.0 for windows 程序設(shè)計(jì)快速入門. 北京:人民郵電出版社,1996.5。
新聞熱點(diǎn)
疑難解答