




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件逆向工程技術(shù)探討 摘要:隨著信息時代的不斷開展,人們對于軟件的需求越來越多,對軟件的功能要求也越來越高,僅僅依靠軟件正向工程無法滿足人們的需求,因此軟件逆向工程技術(shù)應(yīng)運而生,為人們在設(shè)計和使用軟件的過程中,帶來了極大的方便。作為一名軟件技術(shù)人員,我們必須時刻關(guān)注行業(yè)技術(shù)開展動態(tài),對各種新技術(shù)的開展和應(yīng)用有一個全面的了解,以此來確保自身能夠在了解新技術(shù)、掌握先進(jìn)知識的根底上,具備較高的職業(yè)素養(yǎng),為自身技術(shù)創(chuàng)新活動的開展奠定堅實的根底。為此,本文以當(dāng)前較為先進(jìn)的逆向工程技術(shù)為研究對象,通過對軟件逆向工程分析方法的介紹,結(jié)合目前軟件設(shè)計行業(yè)開展趨勢以及逆向工程技術(shù)特點,對軟件逆向工程技術(shù)未來的開
2、展方向做出了合理、科學(xué)的預(yù)設(shè)。希望以此來為軟件逆向工程技術(shù)未來在各行業(yè)中的良好運用提供更多科學(xué)的意見和建議。關(guān)鍵詞:軟件工程;軟件逆向工程;逆向工程;逆向工程分析1相關(guān)概念解析逆向工程是一種對產(chǎn)品設(shè)計技術(shù)予以再現(xiàn)的過程,即以目標(biāo)產(chǎn)品為對象在逆向分析的作用下,對產(chǎn)品設(shè)計及處理的主要技術(shù)規(guī)格、功能、組織結(jié)構(gòu)、特性、處理流程等相關(guān)設(shè)計要素進(jìn)行重新演繹和再現(xiàn),以此來幫助設(shè)計人員明晰產(chǎn)品設(shè)計流程、要素、特點等,在原有產(chǎn)品設(shè)計創(chuàng)新改革的根底上,為人們設(shè)計并制造出功能相仿的產(chǎn)品提供必要的材料根底。因此,單從技術(shù)方面考量,我們還可以將逆向工程稱之為逆向技術(shù)。從逆向工程的開展來看,最初其只是源于軍事、商業(yè)等領(lǐng)域
3、的硬件分析,其主要目的在于幫助設(shè)計人員難以確定產(chǎn)品生產(chǎn)信息的情況下,從產(chǎn)品自身著手,通過產(chǎn)品設(shè)計流程、要素、功能、特性等內(nèi)容的分析,來幫助設(shè)計人員對產(chǎn)品設(shè)計原理進(jìn)行反向推導(dǎo)。在社會現(xiàn)代化、智能化不斷開展的趨勢下,計算機(jī)技術(shù)也在社會各領(lǐng)域得到了更加廣泛式的應(yīng)用與開展。而為了滿足市場日益多元化的軟件功能需求,軟件開發(fā)技術(shù)一時之間得到了迅猛的開展。以某個特定的軟件為根底,通過反匯編閱讀源碼的方式去對程序設(shè)計、體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)等信息進(jìn)行推斷,已經(jīng)成為了當(dāng)前軟件逆向工程的主要關(guān)注和研究對象。因此,軟件逆向工程技術(shù)的目的是在于對先進(jìn)技術(shù)進(jìn)行研究、學(xué)習(xí),在缺乏相關(guān)文檔資料的情況下,可以通過對現(xiàn)實軟件功能的
4、解析、研究來幫助我們明晰其中所用到的各項技術(shù)。當(dāng)前軟件逆向工程技術(shù)常用軟件主要包括,用于動態(tài)調(diào)試程序的OllyDbg、用于調(diào)試驅(qū)動程序的SoftICE、反匯編軟件的IDAPro。2軟件逆向工程技術(shù)研究概況軟件逆向工程技術(shù)最初被用作軟件維護(hù)工作而存在。上世紀(jì)60年代,在計算機(jī)網(wǎng)絡(luò)技術(shù)不斷革新式開展的作用下,第三代計算機(jī)出現(xiàn)在我們面前,為了加速三代計算機(jī)軟件的開發(fā)同時也為了挽救二代計算機(jī)上正在運行的常用軟件,美國專門制定了軟件移植任務(wù)用于對特定軟件進(jìn)行逆向編譯,以此來實現(xiàn)對優(yōu)秀軟件的轉(zhuǎn)換,將其從幾近消亡的二代計算機(jī)上移植到三代計算機(jī)當(dāng)中,促進(jìn)其作用的繼續(xù)發(fā)揮。這些逆編譯工具當(dāng)中大量運用了軟件逆向工
5、程技術(shù)方法。此后基于軟件逆向工程技術(shù)自身的巨大優(yōu)勢其被逐漸運用到各國的軟件開發(fā)技術(shù)領(lǐng)域當(dāng)中,并得到了眾多技術(shù)研究人員的認(rèn)可。國外的CMUSEI專門成立了相應(yīng)的再工程研究中心,在軟件逆向工程的作用下用于對程序的研究和推廣。20世紀(jì)80年代后期,針對軟件逆向工程以及軟件版權(quán)之間矛盾的解決,各國紛紛從立法角度,對該領(lǐng)域的研究工作進(jìn)行了立法約束,明確指出軟件逆向工程屬于合法范圍,允許人們對軟件進(jìn)行逆向工程分析以用于個人學(xué)習(xí)和領(lǐng)域研究。我國的逆向工程技術(shù)開展于80年代,以北大開發(fā)的青鳥軟件生產(chǎn)線系統(tǒng);為主要成果,其中所涵蓋的逆向工程工具可以用于C+語言相關(guān)程序代碼的逆向分析。近年來以國內(nèi)高等院校為主圍繞
6、軟件逆向工程展開了全面的研究,電子工業(yè)出版社的?加密與解密?系列叢書,更是對我國軟件逆向工程的研究工作做出了突出奉獻(xiàn)。2007年1月我國最高法院也通過立法手段明確了逆向工程技術(shù)的合法性,這為我國軟件逆向工程研究工作的有序開展奠定了堅實的根底,掃除了其最后障礙。相信隨著我國計算機(jī)網(wǎng)絡(luò)技術(shù)的開展,人們對于軟件逆向工程技術(shù)的研究深度和廣度也會更加深入化,我國的軟件逆向工程技術(shù)也將會迎來一個更加美好的未來開展。3軟件逆向工程的分析方法對于軟件工程來講,代碼是實現(xiàn)軟件的重要局部,代碼局部的質(zhì)量對于后續(xù)軟件的維護(hù)本錢會產(chǎn)生重要的影響。因此,詞法分析和語法分析是軟件逆向工程中常用的分析方法之一,主要是利用分
7、析樹或者是抽象語法樹,對軟件的源碼進(jìn)行分析,從而得到軟件源碼的相關(guān)實現(xiàn)細(xì)節(jié),進(jìn)而更好地支持軟件逆向工程的分析。這一局部主要是針對軟件的具體實現(xiàn)流程進(jìn)行的,利用圖形化工具,將軟件的主要工作流程、控制流程、數(shù)據(jù)流程、各個對象之間的關(guān)系等進(jìn)行描述,例如:軟件的流程圖就是對軟件的主要工作流程進(jìn)行描述,能夠幫助人們更好地了解軟件的使用過程;數(shù)據(jù)流程,主要是介紹軟件中對應(yīng)的輸入和相關(guān)的輸出,可以使得人們了解哪些數(shù)據(jù)是有效的,哪些數(shù)據(jù)是無效的;將軟件作為一個黑盒子,從軟件的數(shù)據(jù)輸入輸出更好地了解軟件的功能;對象關(guān)系圖,這個是針對軟件實現(xiàn)中的具體抽象對象來開展的,不同對象之間會存在一定的關(guān)系,例如:包含、繼承
8、、依賴等關(guān)系,這個與其他流程而言,主要是從軟件專業(yè)人員的角度對軟件進(jìn)行分析,從而更好地了解軟件的設(shè)計及實現(xiàn)。顧名思義,程序切片是對程序的某個局部進(jìn)行分析,而不是針對整個程序來進(jìn)行分析,這種軟件逆向工程分析方法主要適用于軟件中的關(guān)鍵性邏輯,對這局部邏輯進(jìn)行重點測試和分析,了解程序的具體實現(xiàn)過程,從而更好地對關(guān)鍵步驟進(jìn)行分析,確保關(guān)鍵步驟可以實現(xiàn)功能,并能夠支持一些異常的輸入和輸出。上面介紹的幾種方法,主要是針對靜態(tài)的軟件實現(xiàn)代碼或者實現(xiàn)邏輯而言的,而動態(tài)的分析那么是針對軟件具體運行后的行為進(jìn)行分析,能夠更加全面地分析軟件的整個工作過程。動態(tài)分析一種根本的分析方法就是進(jìn)行植入,在一定的范圍內(nèi)植入一
9、些關(guān)鍵性的分析代碼,讓這些代碼在軟件運行后開始進(jìn)行工作,從而可以對軟件的運行過程進(jìn)行監(jiān)控。當(dāng)軟件在運行過程中,遇到某種情況可以觸發(fā)植入代碼的條件時,植入代碼就會產(chǎn)生相應(yīng)的輸出,從而幫助分析人員更好地了解軟件的具體運行過程。4軟件逆向工程技術(shù)未來的開展方向信息社會的到來,使得軟件的應(yīng)用范圍逐步擴(kuò)大,深入各行各業(yè),而目前軟件的規(guī)模在不斷擴(kuò)大,軟件的實現(xiàn)邏輯變得更加復(fù)雜,很多軟件將多種功能集中在一起,同時有能夠?qū)崿F(xiàn)一些個性化的邏輯。所以,軟件逆向工程技術(shù)在分析軟件時得到了廣泛的應(yīng)用,經(jīng)過本文的論述,認(rèn)為軟件逆向工程技術(shù)未來的開展方向,主要包括以下幾個方面:目前,軟件在各行各業(yè)中都有著廣泛的應(yīng)用,而每
10、個行業(yè)對于軟件的要求是不同的,例如:會計行業(yè)要求軟件計算的準(zhǔn)確無誤,銀行方面要求軟件可以處理更多的異常情況,局部行業(yè)要求軟件具有更高的性能等等。因此,軟件逆向工程技術(shù)未來的開展方向會與不同的領(lǐng)域進(jìn)行結(jié)合,從而形成具有領(lǐng)域特點的逆向工程技術(shù),更好地為具體的領(lǐng)域提供軟件效勞,幫助人們更好地了解軟件在某個領(lǐng)域中的應(yīng)用,也能夠進(jìn)一步加深軟件在該領(lǐng)域的應(yīng)用深度。目前,人工智能技術(shù)得到了廣泛的應(yīng)用,本文經(jīng)過分析認(rèn)為可以將人工智能與軟件逆向工程技術(shù)結(jié)合起來,通過進(jìn)行不同軟件逆向工程技術(shù)的應(yīng)用和分析,讓人工智能積累到更多的特征數(shù)據(jù),更好地進(jìn)行學(xué)習(xí)和成長,能夠更加智能地應(yīng)用軟件逆向工程對軟件進(jìn)行分析;同時,還可
11、以與用戶進(jìn)行更加友好的交互,深入理解用戶的需求,更好地滿足用戶的功能;對于用戶不滿的功能進(jìn)行反復(fù)修改,最終到達(dá)用戶的滿意。另外,還可以使用人工智能技術(shù)對軟件故障進(jìn)行預(yù)測和分析,幫助人們降低使用軟件中的故障概率,提高軟件的可用性。雖然,軟件在各行各業(yè)中都得到了廣泛的應(yīng)用,但是不同行業(yè)的軟件也具有類似的功能,例如:很多網(wǎng)站都具有登錄的功能,需要用戶輸入用戶名和密碼,軟件后臺對用戶名進(jìn)行查找,并對密碼進(jìn)行驗證,然后再校驗輸入驗證碼是否正確等等,這種重復(fù)性的工作,可以形成軟件的復(fù)用模塊,降低軟件設(shè)計者的工作量,可以進(jìn)一步提高軟件開發(fā)的效率。同時,一些優(yōu)秀的軟件架構(gòu),能夠使得軟件功能進(jìn)行解耦,形成獨立工
12、作的不同模塊,更好地發(fā)揮每個模塊的特點;優(yōu)秀的設(shè)計模式,能夠讓軟件設(shè)計人員對軟件進(jìn)行更好地設(shè)計,降低重復(fù)性勞動,有效地降低未來軟件的維護(hù)本錢。根據(jù)本文的論述可知,軟件逆向工程對于軟件的整個生命周期都起到了非常重要的作用,但是調(diào)查數(shù)據(jù)顯示,軟件逆向工程在企業(yè)中的應(yīng)用普及率比擬低。很多人員在進(jìn)行軟件設(shè)計、測試、維護(hù)等過程中,并沒有使用到軟件逆向工程的相關(guān)技術(shù),可能會導(dǎo)致各種問題。因此,軟件逆向工程技術(shù)未來需要得到進(jìn)一步普及,為此可以參考以下幾點:第一,可以對當(dāng)前的軟件逆向工程技術(shù)進(jìn)行分析,了解軟件逆向工程沒有普及的原因,并進(jìn)行針對性地改良,為該技術(shù)的推廣和應(yīng)用提供條件;第二,可以參照當(dāng)前國外一些優(yōu)
13、秀的軟件逆向工程技術(shù),并選擇適宜的技術(shù)進(jìn)行分析和應(yīng)用,能夠更好地滿足人們對軟件逆向工程技術(shù)的需求;第三,提高軟件逆向工程技術(shù)的簡單實用性,讓人們能夠非常方便地使用該技術(shù)對軟件進(jìn)行分析,可以增加該技術(shù)的普及性;同時,當(dāng)軟件逆向工程技術(shù)得到普及之后,用戶可以及時反應(yīng)該技術(shù)在應(yīng)用過程中存在的問題,對于該技術(shù)未來的開展是非常有利的。結(jié)束語總之,根據(jù)本文的分析和論述可知,軟件逆向工程技術(shù)在軟件的分析、軟件設(shè)計、軟件測試等多個方面都有著廣泛的應(yīng)用,為人們提供了多種技術(shù)更加快速、高效地了解軟件,對于推廣和普及軟件的使用起到了重要的作用。通過上文對軟件逆向工程相關(guān)內(nèi)容的探究,我們對于目前階段軟件逆向工程的分析方法有了一個更為全面的了解。認(rèn)識到了軟件工程擬向技術(shù)是一種符合當(dāng)今社會開展潮流、滿足社會各行業(yè)開展需求的高新技術(shù)。其未來在社會各行業(yè)中的應(yīng)用必然有著極為良好的開展趨勢。為此,在今后的工作中,我們要繼續(xù)加大對于逆向工程技術(shù)相關(guān)內(nèi)容的研究,深入到各行各業(yè)當(dāng)中,不斷擴(kuò)大軟件逆向工程應(yīng)用范圍,以此來充分發(fā)揮軟件逆向工程的技術(shù)優(yōu)勢,促進(jìn)其在社會各行業(yè)中的廣泛化應(yīng)用于推廣。與此同時,作者也希望借助本課題的研究,在社會各界引起人們對軟件逆向工程技術(shù)的熱議,使更多的人認(rèn)識到軟件逆向工程獨特的優(yōu)勢作用,進(jìn)而為本課題研究體系的完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東舞蹈戲劇職業(yè)學(xué)院《臨床藥理學(xué)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古能源職業(yè)學(xué)院《軟件工程專業(yè)實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽信息工程學(xué)院《氣象與生活》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北中醫(yī)藥高等??茖W(xué)?!缎旅襟w產(chǎn)品設(shè)計與制作實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南省豫東豫北十所名校2025屆高三第一次月考物理試題文試題含解析
- 常熟中學(xué)2025屆高三下第二次質(zhì)量檢查物理試題含解析
- 江西農(nóng)業(yè)大學(xué)《工程力學(xué)Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 濰坊職業(yè)學(xué)院《高分子科學(xué)前沿與進(jìn)展》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州省南白中學(xué)2025屆高三下-第一次強(qiáng)化訓(xùn)練英語試題試卷含解析
- 供應(yīng)鏈管理與采購制度
- 2025年上半年宜賓江安縣人社局招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年安徽工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整版
- 《C#程序設(shè)計基礎(chǔ)》課件
- 2024年第五屆美麗中國全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025年江蘇航空職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2023年湖北省技能高考計算機(jī)類備考題庫(萬維題庫)-中部分(800題)
- S145水表井標(biāo)準(zhǔn)圖集
- 2024年天翼云認(rèn)證運維工程師考試復(fù)習(xí)題庫(含答案)
- 2025年云南曲靖市事業(yè)單位定向招聘駐曲部隊未就業(yè)隨軍家屬10人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 第4章水彈性力學(xué)-流體與剛體、彈性體相互耦合運動理論
- 2024年10月自考13003數(shù)據(jù)結(jié)構(gòu)與算法試題及答案
評論
0/150
提交評論