資源描述:
《基于gcc抽象語法樹文本的c源程序語義分析方法研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、碩士學位論文基于GCC抽象語法樹文本的C源程序語義分析方法研究RESEARCHONSEMANTICANALYSISOFCPROGRAMBASEDONGCCABSTRACTSYNTAXTREETEXT封戰(zhàn)勝2009年6月國內(nèi)圖書分類號:TP311.5國際圖書分類號:681學校代碼:10213密級:公開碩士學位論文基于GCC抽象語法樹文本的C源程序語義分析方法研究碩士研究生:封戰(zhàn)勝導師:蘇小紅教授申請學位:工學碩士學科:計算機科學與技術(shù)所在單位:計算機科學與技術(shù)答辯日期:2009年6月授予學位單
2、位:哈爾濱工業(yè)大學ClassifiedIndex:TP311.5U.D.C:681DissertationfortheMasterDegreeinEngineeringRESEARCHONSEMANTICANALUSISOFCPROGRAMBASEDONGCCABSTRACTSYNTAXTREETEXTCandidate:Supervisor:AcademicDegreeAppliedfor:Speciality:Affiliation:DateofDefence:FengZhanshengPr
3、of.SuXiaohongMasterofEngineeringComputerScienceandTechnologySchoolofComputerScinenceandTechnologyJune,2009Degree-Conferring-Institution:HarbinInstituteofTechnology哈爾濱工業(yè)大學工學碩士學位論文摘要本文致力于完成C語言源程序的系統(tǒng)依賴圖的構(gòu)造,系統(tǒng)依賴圖是靜態(tài)分析工具的基礎(chǔ),在逆向工程中具有重要意義。系統(tǒng)依賴圖的構(gòu)造可以歸結(jié)為控制流分析和
4、數(shù)據(jù)流分析,控制流分析主要是求取語句間的控制依賴關(guān)系,可以歸結(jié)為父親-孩子關(guān)系的求解。數(shù)據(jù)流分析主要是求取語句間的數(shù)據(jù)依賴關(guān)系,可以歸結(jié)為到達-定值信息的求解。本文提出了一種基于GCC抽象語法樹文本的構(gòu)造系統(tǒng)依賴圖的新方法,首先,對GCC抽象語法樹進行了深入的研究,統(tǒng)計出GCC抽象語法樹中各個符號的含義,為后續(xù)研究奠定了基礎(chǔ)。其次,對GCC抽象語法樹文本進行了標準化及消除文本中與控制流分析和數(shù)據(jù)流分析無關(guān)的冗余信息。再次,用面向?qū)ο蟮乃枷雭磉M行靜態(tài)信息提取。最后,在構(gòu)造系統(tǒng)依賴圖時,本文沒有采用傳
5、統(tǒng)構(gòu)造系統(tǒng)依賴圖的流程,而是首先建立了控制依賴圖,其次在控制依賴圖的基礎(chǔ)上構(gòu)建控制流圖,再次在控制流圖的基礎(chǔ)上構(gòu)建數(shù)據(jù)流圖。同時本文給出了各個步驟的具體算法描述,其中包含了自己的算法及對以往算法的改進。為了提高數(shù)據(jù)流的精度,介紹了一些提高數(shù)據(jù)流精度的方法,比如指針分析、變量別名分析等等。另外,本文在設(shè)計系統(tǒng)時,也對每個過程的相關(guān)信息進行了統(tǒng)計,為用戶查詢模塊奠定了基礎(chǔ)。本文最后一章給出了系統(tǒng)的詳細設(shè)計,并對源程序進行了測試,驗證了算法的可行性,通過與以往研究的對比,說明了該方法的優(yōu)越性。關(guān)鍵詞:G
6、CC抽象語法樹;控制流分析;數(shù)據(jù)流分析;控制流圖;系統(tǒng)依賴圖I哈爾濱工業(yè)大學工學碩士學位論文AbstractInthispaper,systemdependencegraphontheCprogramminglanguageisconstructed,whichisthebasisofstaticanalysistoolandplaysanimportantroleinthereverseengineering.Theconstructionofsystemdependencegraphcanbe
7、attributedtothecontrolflowanalysisanddataflowanalysis.Thecontroldependencerelationshipamongstatementsisobtainedbycontrolflowanalysis,whichcanbeattributedtoobtainthefather-childrelationship.Thedatadependencerelationshipamongstatementsisobtainedbydatafl
8、owanalysis,whichcanbeattributedtoobtaintheglobalinformationabouthowaprogramdefines,changesandusesdatavalues.Themethodthathowtoconstructthesystemdependencegraphbasedontheabstractsyntaxtreetextisputforward.Firstly,theabstractsyntaxtreeisstudied,