• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于Vxworks的代碼保護(hù)方法研究

    2013-08-20 01:54:46肖永全張國
    關(guān)鍵詞:二進(jìn)制實(shí)時(shí)性內(nèi)核

    肖永全 張國

    1西安西瑞保護(hù)控制設(shè)備有限責(zé)任公司 陜西 710000

    2長慶油田公司礦區(qū)事業(yè)部 陜西 710000

    0 引言

    在嵌入式實(shí)際應(yīng)用過程中,因?yàn)榍度胧较到y(tǒng)其獨(dú)特性和實(shí)時(shí)性要求,基本上沒有虛擬內(nèi)存等機(jī)制存在,整個(gè)內(nèi)存空間對用戶程序開放的。所以不恰當(dāng)?shù)牟僮?,往往?huì)修改其代碼段甚至系統(tǒng)內(nèi)核,從而導(dǎo)致缺陷缺陷甚至系統(tǒng)崩潰。而對代碼段只讀區(qū)域進(jìn)行檢測保護(hù),是保護(hù)一個(gè)嵌入式系統(tǒng)可靠性的可行的實(shí)現(xiàn)方法。

    1 基本技術(shù)

    1.1 vxworks簡介

    VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)一席之地。它以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等。

    1.2 編譯鏈接過程

    Vxworks系統(tǒng)使用linux系統(tǒng)的GNU工具鏈,其中包括GCC編譯器和LD鏈接器。其編譯生成的二進(jìn)制文件格式符合ELF格式,其系統(tǒng)加載規(guī)則符合ELF規(guī)定。

    1.3 ELF文件簡析

    ELF(可執(zhí)行連接格式)是UNIX系統(tǒng)實(shí)驗(yàn)室(USL)作為應(yīng)用程序二進(jìn)制接口(Application Binary Interface(ABI))而開發(fā)和發(fā)布的。工具接口標(biāo)準(zhǔn)委員會(huì)(TIS)選擇了正在發(fā)展中的ELF標(biāo)準(zhǔn)作為工作在32位INTEL體系上不同操作系統(tǒng)之間可移植的二進(jìn)制文件格式。ELF文件現(xiàn)在已經(jīng)成為Linux系統(tǒng)下最主要最流行的可執(zhí)行文件格式。Gcc的默認(rèn)輸出格式就是elf。而VxWorks下生成的程序映像就是ELF格式,如圖1所示。

    圖1 ELF文件格式布局

    首先是文件頭和程序頭表,然后依次各個(gè)段排列在后。其中每個(gè)段的描述均在節(jié)頭表(section header table)中。比如要查找代碼段信息,需要查找ELF文件頭中Text段的偏移量和長度。

    1.4 CRC校驗(yàn)公式

    由于CRC-32的可靠性,把CRC-32用于重要數(shù)據(jù)存儲(chǔ)傳輸十分合適,所以在通信、計(jì)算機(jī)等領(lǐng)域運(yùn)用十分廣泛。

    對代碼段采用CRC-32校驗(yàn),其中生成多項(xiàng)式為:

    若余式為零則認(rèn)為存儲(chǔ)無差錯(cuò);若余式不為零則存儲(chǔ)有差錯(cuò)。

    2 實(shí)現(xiàn)方法

    在宿主機(jī)生成目標(biāo)印象ELF的之后,編制腳本objdump從而解析出其代碼段偏移地址 TextSectionOffset和長度TextSectionSize。在目標(biāo)機(jī)加載運(yùn)行后,啟動(dòng)tCheckTextSection任務(wù),定期進(jìn)行代碼段校驗(yàn),如校驗(yàn)值和初始校驗(yàn)值不相符,則應(yīng)該進(jìn)行異常處理(圖2)。

    在系統(tǒng)加載后,數(shù)據(jù)段TextSection的值會(huì)發(fā)生變化,而代碼段應(yīng)該穩(wěn)定,如果發(fā)生變化,則可以斷定內(nèi)存越界錯(cuò)誤。而這種錯(cuò)誤在自動(dòng)控制設(shè)備中,往往是致命的錯(cuò)誤,需要及時(shí)處理,否則將造成被控制對象誤操作,從而給工業(yè)生產(chǎn)帶來損失。

    圖2 tCheckTextSection流程示意

    在系統(tǒng)加載后,數(shù)據(jù)段TextSection的值會(huì)發(fā)生變化,而代碼段應(yīng)該穩(wěn)定,如果發(fā)生變化,則可以斷定內(nèi)存越界錯(cuò)誤。而這種錯(cuò)誤在自動(dòng)控制設(shè)備中,往往是致命的錯(cuò)誤,需要及時(shí)處理,否則將造成被控制對象誤操作,從而給工業(yè)生產(chǎn)帶來損失。

    因?yàn)楸鞠到y(tǒng)是智能電網(wǎng)電力自動(dòng)化設(shè)備,控制對象是國家電網(wǎng),如果系統(tǒng)錯(cuò)誤動(dòng)作將會(huì)造成錯(cuò)誤供電或者錯(cuò)誤斷電,影響很大。目前本系統(tǒng)采用的異常處理,即立刻停止所有后續(xù)操作,并且使系統(tǒng)進(jìn)入安全模式。在安全模式中對系統(tǒng)進(jìn)行最小化動(dòng)作處理后系統(tǒng)重新加載代碼段。

    3 下一步工作

    在實(shí)際工程實(shí)踐中,此方法證明可以穩(wěn)定有效的保證代碼段的完整性,在下一步的工作中,但是沒有對代碼段的內(nèi)部結(jié)構(gòu)進(jìn)行分析。其可以繼續(xù)細(xì)分為系統(tǒng)內(nèi)核,核心任務(wù),應(yīng)用任務(wù)??梢詫ζ溥M(jìn)行重要性,優(yōu)先級(jí)排序后,當(dāng)次要模塊被修改后,只需要重新加載其代碼而不是整個(gè)系統(tǒng)映像重新加載一遍。

    [1]Wind River System.VxWorks_BSP_Reference www.wind_river.com.2004.

    [2]基于 PowerPC的嵌入式 Linux.北京航空航天大學(xué)出版社.2004.

    猜你喜歡
    二進(jìn)制實(shí)時(shí)性內(nèi)核
    萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
    有趣的進(jìn)度
    二進(jìn)制在競賽題中的應(yīng)用
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
    航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對比
    景德镇市| 望城县| 江陵县| 巩义市| 德保县| 景泰县| 永宁县| 宁夏| 淮北市| 咸宁市| 来宾市| 荔浦县| 万源市| 凯里市| 宕昌县| 高雄市| 英吉沙县| 海晏县| 泸西县| 凤冈县| 色达县| 黄石市| 应城市| 广德县| 德惠市| 长顺县| 衡阳县| 黔江区| 章丘市| 亚东县| 花垣县| 靖宇县| 乐都县| 翁牛特旗| 毕节市| 上杭县| 共和县| 西华县| 泾阳县| 望奎县| 甘德县|