計(jì)算機(jī)軟件基礎(chǔ)論文
計(jì)算機(jī)軟件基礎(chǔ)論文
越來越多的高校針對非計(jì)算機(jī)專業(yè)都開設(shè)了計(jì)算機(jī)軟件技術(shù)基礎(chǔ)課,該課程對培養(yǎng)學(xué)生的軟件開發(fā)能力十分重要。下面是學(xué)習(xí)啦小編為大家整理的計(jì)算機(jī)軟件基礎(chǔ)論文,供大家參考。
計(jì)算機(jī)軟件基礎(chǔ)論文范文一:計(jì)算機(jī)軟件保護(hù)與恢復(fù)探索
簡單來講,反動(dòng)態(tài)跟蹤的目的是防止別人使用調(diào)試器來追蹤軟件運(yùn)行。這種方法最基本的思路是讓程序去故意執(zhí)行一些能使干擾的調(diào)試器的正常運(yùn)行或者可以讓調(diào)試器失效的動(dòng)作。反調(diào)試代碼將測試是否需要額外增加一個(gè)調(diào)試器,如果需要的話,程序則自動(dòng)退出,或者讓調(diào)試器終止。反調(diào)試有很多方法,但大部分反調(diào)試方法都與一個(gè)特定的平臺及特定調(diào)試器有關(guān)。
軟件壓縮與加殼技術(shù)外殼程序事先早于被保護(hù)對象程序運(yùn)行的程序,這部分的程序?qū)υ绦虼a和數(shù)據(jù)進(jìn)行相應(yīng)解密還原操作。一些殼軟件能加密數(shù)據(jù)并且可以對可執(zhí)行文件的代碼和數(shù)據(jù)壓縮,這不僅降低了文件在磁盤上所占有的存儲(chǔ)空間,而且在某些情況下,可以有效提高可執(zhí)行文件加載的速度。大多數(shù)的軟件外殼還集成有反靜態(tài)分析方法、反跟蹤技術(shù)及反脫殼技術(shù)從而增加了破解難度。加密代碼是防止靜態(tài)分析程序的一種常用的方法。一般可以在程序編譯完成時(shí),給用戶使用之前,將程序加密,并且在可執(zhí)行文件里嵌套可實(shí)現(xiàn)解密的代碼來實(shí)現(xiàn)解密功能。該方法對于經(jīng)驗(yàn)豐富的破解者最多也就是在逆向工程中增加一些困難。但是由于只要在可執(zhí)行文件包含有解密程序,它必須包含相應(yīng)的解密算法及解密密鑰進(jìn)行解密。由于在程序代碼運(yùn)行之前必須解密出來,因此,在程序運(yùn)行的過程中,實(shí)現(xiàn)解密的全部或部分程序必須留到內(nèi)存當(dāng)中。即便如此,代碼加密仍然是防止靜力分析的一種常用方法。這是由于它能夠明顯改善程序的分析復(fù)雜性,有時(shí)候甚至能夠迫使破解者必須動(dòng)態(tài)分析程序。
軟件水印軟件水印方法的基本思想是,把版權(quán)信息或者唯一身份識別碼等信息,隱蔽的嵌入應(yīng)用程序中,當(dāng)需要時(shí)候再用一個(gè)特定的水印算法將水印提取出來進(jìn)行版權(quán)確認(rèn),這是一種可以追蹤非法軟件拷貝的副本直到源頭的方法。根據(jù)水印加載的時(shí)間來分,軟件水印技術(shù)可以分成靜態(tài)軟件水印技術(shù)和動(dòng)態(tài)軟件水印技術(shù)2種。靜態(tài)軟件水印的存在并不依賴于軟件運(yùn)行的狀態(tài),可以在儲(chǔ)存、發(fā)送及運(yùn)行時(shí)進(jìn)行驗(yàn)證。靜態(tài)水印軟件通過在軟件編輯時(shí)直接或者在編輯完成后加入的方式加入到軟件程序中。只有對軟件本身有足夠的了解,才能最終確定水印信息。根據(jù)水印存放的位置不同,靜態(tài)水印又可以分為靜態(tài)代碼水印和靜態(tài)資料水印2種。動(dòng)態(tài)水印依賴于軟件運(yùn)行狀態(tài)而存在,一個(gè)動(dòng)態(tài)的軟件水印的結(jié)構(gòu)是在程序執(zhí)行時(shí)被構(gòu)造出來的,因此可能會(huì)由某一個(gè)特定輸入序列進(jìn)行觸發(fā)。動(dòng)態(tài)水印能通過分析水印信息的程序運(yùn)行時(shí)候結(jié)構(gòu)的數(shù)據(jù)的結(jié)構(gòu)來萃取,也可以通過執(zhí)行跟蹤程序提取。動(dòng)態(tài)軟件水印又可分為動(dòng)態(tài)執(zhí)行軌跡水印、復(fù)活節(jié)彩蛋水印及動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)水印3類。軟件水印保護(hù)的目標(biāo)就是使攻擊者很難對水印程序進(jìn)行分析,從而防止水印的發(fā)現(xiàn)和竊取,或防止水印的代碼被惡意修改或刪除。
虛擬機(jī)保護(hù)虛擬機(jī)保護(hù)技術(shù)是將一段程序匯編成一段特殊意義的代碼,這個(gè)代碼不是在目標(biāo)機(jī)被直接執(zhí)行,而是通過一個(gè)解釋器來模擬執(zhí)行。虛擬機(jī)中的可執(zhí)行代碼文件只有一個(gè)數(shù)據(jù)塊,由于虛擬機(jī)代碼在運(yùn)行的過程中進(jìn)行解釋執(zhí)行,所以反匯編工具不能反編譯虛擬機(jī)的代碼。破解者要分析虛擬機(jī)的加密結(jié)構(gòu)與執(zhí)行過程要花費(fèi)大量時(shí)間及精力。另外,由于虛擬機(jī)能夠屏蔽具體的平臺及相關(guān)信息,編譯器只要產(chǎn)生能夠在虛擬機(jī)上進(jìn)行運(yùn)行的一種目標(biāo)代碼,它就可以在各種平臺運(yùn)行而無需修改,而虛擬機(jī)本身需要移植。當(dāng)虛擬機(jī)要執(zhí)行相應(yīng)的字節(jié)代碼時(shí),再將字節(jié)碼解釋成相應(yīng)的具體平臺上的機(jī)器碼進(jìn)行執(zhí)行。
計(jì)算機(jī)軟件恢復(fù)的原理與方法
軟件恢復(fù)技術(shù)是應(yīng)對系統(tǒng)軟件老化現(xiàn)象的有力效方法。簡單地說,是當(dāng)軟件的性能衰退到了一定程度時(shí),終止程序的運(yùn)行,并對系統(tǒng)重置來清理系統(tǒng)內(nèi)部的狀態(tài),從而能夠釋放操作系統(tǒng)的資源,恢復(fù)軟件的性能,并能有效減少由于系統(tǒng)軟件的老化造成意外終止而帶來損失。在進(jìn)行恢復(fù)策略研究時(shí),依據(jù)一定系統(tǒng)模型,將系統(tǒng)狀態(tài)分成系統(tǒng)魯棒狀態(tài)、系統(tǒng)預(yù)故障狀態(tài)及系統(tǒng)故障狀態(tài)。根據(jù)對以上原型系統(tǒng)的分析,軟件恢復(fù)策略一般分基于時(shí)間的軟件恢復(fù)策略與基于檢測的軟件恢復(fù)策略2種。
基于時(shí)間的軟件恢復(fù)策略基于時(shí)間的恢復(fù)策略是實(shí)現(xiàn)簡單、成本可預(yù)計(jì)的一種恢復(fù)模式。該方法通常是基于最小的恢復(fù)成本和最短的停機(jī)時(shí)間來得到更高系統(tǒng)服務(wù)率或者更快服務(wù)響應(yīng)來提前確定最優(yōu)恢復(fù)的時(shí)間間隔,對性能衰退的系統(tǒng)周期性的進(jìn)行恢復(fù)?;跁r(shí)間的軟件恢復(fù)策略中重點(diǎn)研究的一個(gè)問題是如何確定最優(yōu)的恢復(fù)時(shí)間表的問題。
基于檢測的軟件恢復(fù)策略基于檢測的恢復(fù)策略是通過對系統(tǒng)的檢測來確定恢復(fù)模式。恢復(fù)模式的確定通常根據(jù)系統(tǒng)參數(shù)、系統(tǒng)運(yùn)行期間采集到的系統(tǒng)信息并通過合理的數(shù)據(jù)統(tǒng)計(jì)等來確定相應(yīng)的恢復(fù)模式?;跈z測的軟件恢復(fù)策略首先要確定系統(tǒng)性能進(jìn)行衰退的閾值和評價(jià)指標(biāo),主要是分析造成系統(tǒng)的性能衰退的主要的一個(gè)原因或者幾個(gè)原因的協(xié)調(diào)折中。在系統(tǒng)的運(yùn)行過程中對系統(tǒng)的性能進(jìn)行檢測,若達(dá)到了預(yù)先所設(shè)定的閾值時(shí)則執(zhí)行軟件恢復(fù)。為減少監(jiān)控的成本,在檢測時(shí)可以在指定的時(shí)間間隔內(nèi)進(jìn)行周期性的檢測。
軟件保護(hù)與恢復(fù)技術(shù)的應(yīng)用
通過對系統(tǒng)進(jìn)行綜合的權(quán)衡和比較及算法研究,得到完整保護(hù)的流程是:首先要對軟件程序有限制,要求用戶至少要進(jìn)行注冊才能得到完整的使用權(quán)限,并用程序運(yùn)行與用戶機(jī)的硬件相關(guān)聯(lián)的注冊碼進(jìn)行關(guān)鍵功能解封。其次,為防止解密者利用各種工具得到程序的關(guān)鍵點(diǎn)及關(guān)鍵的信息,應(yīng)采用反跟蹤技術(shù)、反調(diào)試技術(shù)及反匯編靜態(tài)技術(shù)等進(jìn)行分析。另外,最好給程序加上一個(gè)外衣,把程序包起來,也就是利用加殼軟件或加密鎖等產(chǎn)品來提高自己程序的防范能力和增加破解門檻。也要考慮怎樣有效的保證自己程序只給合法用戶使用,而非合法用戶即使在正常的途徑下得到了正式軟件業(yè)也無法正常使用的問題。目前此問題一般用“一機(jī)一碼”進(jìn)行許可注冊的方式進(jìn)行解決。在軟件恢復(fù)中,在保證產(chǎn)生更多恢復(fù)方法的同時(shí)要結(jié)合基于時(shí)間與基于測量的2種思路進(jìn)行研究。同時(shí)在軟件容錯(cuò)領(lǐng)域中,將軟件恢復(fù)的相關(guān)概念與其他的有效技術(shù)概念相結(jié)合,以便產(chǎn)生出更多新概念和新方法。
結(jié)語
國內(nèi)外的專家學(xué)者對軟件的保護(hù)及恢復(fù)進(jìn)行了較為深入的研究和探討,并且取得了一系列豐富的科研成果。本文對計(jì)算機(jī)軟件保護(hù)與恢復(fù)的理論研究有一定的指導(dǎo)意義。
計(jì)算機(jī)軟件基礎(chǔ)論文范文二:小議計(jì)算機(jī)軟件數(shù)據(jù)接口的作用
目前常用的接口方式為:無縫鏈接法及IGES格式的導(dǎo)入法。除了上述軟件間的接口問題外,其它不同軟件間也存在接口問題,目前隨著技術(shù)的不斷發(fā)展,一些問題已相繼解決,但仍然存在安全隱患,例如現(xiàn)行機(jī)制可能為惡意攻擊者提供攻擊應(yīng)用程序的機(jī)會(huì)。同樣,一些用戶在理解和掌握這些共享機(jī)制時(shí),可能會(huì)直接從底層訪問數(shù)據(jù),從而影響了數(shù)據(jù)自身的一致性。
1設(shè)計(jì)原則
在對計(jì)算機(jī)軟件數(shù)據(jù)接口進(jìn)行設(shè)計(jì)時(shí)應(yīng)按照以下設(shè)計(jì)原則:
1.1面向?qū)ο?/p>
在設(shè)計(jì)計(jì)算機(jī)軟件數(shù)據(jù)接口的過程中,應(yīng)最大程度上準(zhǔn)確描述該軟件所提供的服務(wù)和功能,實(shí)際上就是在設(shè)計(jì)過程中應(yīng)以面向?qū)ο鬄橹饕瓌t。設(shè)計(jì)過程中數(shù)據(jù)接口科學(xué)性和合理性的提高,能夠推動(dòng)軟件本身使用效率的進(jìn)一步發(fā)展。而要想減少開發(fā)程序時(shí)的成本和難度及降低不同程序模塊間的耦合性,程序開發(fā)人員往往使數(shù)據(jù)接口更加復(fù)雜和詳細(xì),同時(shí)數(shù)據(jù)接口的最終效果也會(huì)更好。
1.2高容錯(cuò)性和高建壯性的軟件數(shù)據(jù)接口
所謂軟件接口的健壯性實(shí)際上就是軟件處理一些規(guī)范要求以外情況的能力。如果該軟件健壯性較強(qiáng),那么它就能在處理規(guī)范要求以外情況的過程中提供恰當(dāng)?shù)奶幚矸椒ú⒆龀雠袛?。由于不同軟件間實(shí)現(xiàn)交流的主要手段就是軟件數(shù)據(jù)接口,因此在設(shè)計(jì)過程中必須保障該接口具有較高的健壯性和容錯(cuò)性,從而為工作人員提供處理異常問題的合理機(jī)制。
1.3可擴(kuò)展性的軟件數(shù)據(jù)接口
軟件在使用過程中用戶會(huì)根據(jù)實(shí)際需要提出新要求,而軟件接口數(shù)據(jù)應(yīng)根據(jù)這些變化不斷升級,因此,設(shè)計(jì)人員在設(shè)計(jì)軟件數(shù)據(jù)接口的過程中,必須考慮其可擴(kuò)展性。
1.4以客戶需求為依據(jù)
軟件數(shù)據(jù)接口應(yīng)提供的服務(wù)和功能是由軟件本身所具有的服務(wù)和功能決定的。而軟件用戶所提出的需求正是數(shù)據(jù)接口存在的意義。所以盡可能滿足用戶對軟件的需求是設(shè)計(jì)軟件數(shù)據(jù)接口的基本原則。
1.5與行業(yè)內(nèi)制定的數(shù)據(jù)標(biāo)準(zhǔn)接口相符
隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,計(jì)算機(jī)軟件已成為各個(gè)行業(yè)發(fā)展不可或缺的一部分,而不同的行業(yè)開發(fā)商所采用的編程語言是不同的,數(shù)據(jù)庫也不同,因此定義的接口數(shù)據(jù)標(biāo)準(zhǔn)也有所區(qū)別。這些沒有統(tǒng)一的計(jì)算機(jī)軟件數(shù)據(jù)接口,給日后軟件升級等一些工作帶來很多困難,維護(hù)起來較麻煩。這就要求設(shè)計(jì)人員在對數(shù)據(jù)接口進(jìn)行設(shè)計(jì)過程中應(yīng)最大程度上符合業(yè)內(nèi)標(biāo)準(zhǔn),從而為日后軟件的升級、第三方軟件開發(fā)商的工作提供更多便利。
2應(yīng)用計(jì)算機(jī)軟件的數(shù)據(jù)接口
2.1文件交換模式
該方式下用戶、軟件開發(fā)商及第三方的軟件開發(fā)商間實(shí)現(xiàn)數(shù)據(jù)交互的主要手段是通過指定數(shù)據(jù)結(jié)構(gòu)中的文件來完成的。主要流程為:首先,軟件用戶或者軟件第三方開發(fā)商以開發(fā)商指定數(shù)據(jù)結(jié)構(gòu)為依據(jù),提供一個(gè)文件,當(dāng)該文件被系統(tǒng)軟件掃描后,計(jì)算機(jī)就會(huì)自動(dòng)按照系統(tǒng)內(nèi)部的相關(guān)規(guī)則返回相應(yīng)文件。然后軟件第三方的開發(fā)商或者用戶按照相關(guān)規(guī)則讀取該文件,從而實(shí)現(xiàn)數(shù)據(jù)交互的目標(biāo)。數(shù)據(jù)文件形式多種多樣,主要有txt和ini文件,開發(fā)商除了能夠利用通用格式外,還能采取自定義的方式獲取文件格式。Ini文件屬于windows系統(tǒng)配置文件,再加上windows系統(tǒng)能夠提供API函數(shù),該函數(shù)主要用于操作ini文件,所以ini文件大多用于記錄軟件本身的配置信息,另外,使用ini文件還能實(shí)現(xiàn)數(shù)據(jù)交互的目的。Txt文件屬于windows系統(tǒng)中的文本文件,在軟件開發(fā)過程中常常被程序員用于記錄其它特殊格式。例如以##為分割的字符串。對txt文件的操作方式各種開發(fā)語言都能提供。總之,文件交換模式開發(fā)起來較自由,程序員往往能夠靈活地完成用戶需求,編程語言限制力度不大。但采用這種方式開發(fā)軟件時(shí),軟件第一方的開發(fā)商必須定期對第三方軟件開發(fā)商的接口文件進(jìn)行檢測,檢測其是否提交相關(guān)文件。
2.2中間數(shù)據(jù)庫的模式
軟件中間數(shù)據(jù)庫的模式實(shí)際上就是讓軟件開發(fā)商構(gòu)建起一個(gè)公用數(shù)據(jù)庫,并授權(quán)給軟件第三方的開發(fā)商及用戶允許他們訪問,雙方根據(jù)一定規(guī)則對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,從而實(shí)現(xiàn)數(shù)據(jù)交互功能。該模式下軟件第三方開發(fā)商或用戶訪問數(shù)據(jù)庫時(shí),只能訪問指定格式的數(shù)據(jù),所使用的數(shù)據(jù)庫最好為當(dāng)前主流格式。例如:sybase,Access,oracle等。該方式下為軟件第三方開發(fā)商的工作提供了很多便利,使其操作數(shù)據(jù)過程中的靈活性更強(qiáng)。但該模式需要額外數(shù)據(jù)庫的支持,再加上數(shù)據(jù)庫配置的復(fù)雜性,相對來說實(shí)現(xiàn)起來比較困難,因此該模式的使用范圍不是很廣泛。
2.3應(yīng)用程序接口的函數(shù)模式
應(yīng)用程序接口的函數(shù)模式實(shí)際上就是指開發(fā)軟件前,軟件開發(fā)商充分考慮過數(shù)據(jù)安全性后,預(yù)先編制好訪問數(shù)據(jù)的函數(shù),軟件第三方開發(fā)商或用戶只需調(diào)用定義好的函數(shù)就可訪問相關(guān)數(shù)據(jù)。該模式下數(shù)據(jù)具有透明安全性,目前應(yīng)用范圍較廣,而且大多數(shù)的軟件開發(fā)商都會(huì)公開自己應(yīng)用程序接口的函數(shù),因此為很多用戶或軟件第三方開發(fā)商的工作提供了便利。
3結(jié)語
綜上所述,我們可以得出,計(jì)算機(jī)軟件的數(shù)據(jù)接口能夠?qū)崿F(xiàn)不同軟件間的數(shù)據(jù)交流,因此具有承上啟下作用,能夠?qū)⒈舜斯铝⒌能浖M成一條流水線,促進(jìn)用戶工作信息一體化的發(fā)展,很大程度上提高了軟件的可行性。因此程序開發(fā)人員應(yīng)努力統(tǒng)一各個(gè)行業(yè)中的接口規(guī)范,以便為接口程序提供更多的服務(wù)。
計(jì)算機(jī)軟件基礎(chǔ)論文相關(guān)文章: