两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種定位特定內(nèi)存被函數(shù)非法改寫的方法

文檔序號:6458073閱讀:309來源:國知局
專利名稱:一種定位特定內(nèi)存被函數(shù)非法改寫的方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,特別涉及一種定位特定內(nèi)存被函數(shù)非法改寫的方法。
背景技術(shù)
在通信技術(shù)領(lǐng)域中,大多數(shù)產(chǎn)品采用的是嵌入式實(shí)時(shí)操作系統(tǒng),例如Linux、 VxWorks等操作系統(tǒng)。在當(dāng)前數(shù)據(jù)通訊產(chǎn)品,例如路由器、交換機(jī)、 以及寬帶接入服務(wù)器中,都使用了 VxWorks作為技術(shù)人員開發(fā)的基石,內(nèi)存 管理采用了基于VxWorks的扁平(FLAT)內(nèi)存模式,所有的全局變量、隊(duì)列、 鏈表、指針可以被所有的任務(wù)直接訪問。盡管這樣可以提高進(jìn)程或任務(wù)間通訊 的效率,但同時(shí)也4艮有可能導(dǎo)致系統(tǒng)運(yùn)行出現(xiàn)異常。為了避免上述共享內(nèi)存帶來的系統(tǒng)不穩(wěn)定問題,目前通常考慮使用禁止搶 占、關(guān)中斷或者使用信號量的方式來保護(hù)共享內(nèi)存。在上述三種方法中,禁止搶占會(huì)使內(nèi)核任務(wù)調(diào)度暫時(shí)失效,但是,除了中 斷程序,其它任務(wù)都不能運(yùn)行;使用信號量來保護(hù)共享內(nèi)存時(shí),并不禁止其它 任務(wù)的運(yùn)行,只會(huì)讓訪問到共享內(nèi)存資源的任務(wù)暫停,盡管對系統(tǒng)實(shí)時(shí)性影響 較小,但是也無法防止中斷服務(wù)程序?qū)εR界資源的訪問;而關(guān)中斷,相對上述 兩種方式而言更為有效,其可以完全防止其它任務(wù)或中斷服務(wù)程序的沖突訪 問,執(zhí)行效率也最高,但是,中斷只能關(guān)很短時(shí)間,否則會(huì)造成系統(tǒng)時(shí)鐘以及 其它外部事件都無法得到正確處理,從而極大的降低系統(tǒng)的實(shí)時(shí)程度。總之,通過上述三種方式對特定的共享內(nèi)存進(jìn)行保護(hù)均有各自的缺點(diǎn),為 此,需要找到一種更為有效的防止特定內(nèi)存被非法改寫的方法。 發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種定位特定內(nèi)存被函數(shù)非法改寫的方法,能夠 較好的避免并定位內(nèi)存被非法改寫而不得知的情況,可以提高系統(tǒng)穩(wěn)定性。 本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫的方法,其中,在嵌入式實(shí)時(shí)操作系統(tǒng)運(yùn)行中,在不允許訪問特定內(nèi)存的函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的 異常處理,并在函數(shù)內(nèi)進(jìn)行了改寫特定內(nèi)存操作時(shí)進(jìn)行相應(yīng)的處理及定位。其中,所述在函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的異常處理,為將非法 操作任務(wù)掛起。其中,所述在函數(shù)內(nèi)進(jìn)行了改寫特定內(nèi)存操作時(shí)進(jìn)行相應(yīng)的處理及定位,包括下列步驟通過調(diào)用系統(tǒng)中的查看運(yùn)行任務(wù)功能的函數(shù),查看當(dāng)前CPU 上運(yùn)行的所有任務(wù),針對其中處于掛起狀態(tài)的任務(wù),通過調(diào)用系統(tǒng)中的查看當(dāng) 前任務(wù)中函數(shù)調(diào)用情況的函數(shù),查看給定任務(wù)的當(dāng)前函數(shù)調(diào)用堆棧情況,獲知 特定內(nèi)存被哪個(gè)函數(shù)所改寫。進(jìn)一步地,可以包括下列步驟步驟A:預(yù)先設(shè)置特定內(nèi)存空間所在頁的頁屬性為不可寫;步驟B:系統(tǒng)在運(yùn)行過程中,當(dāng)有函數(shù)訪問或改寫特定內(nèi)存時(shí),判斷是否 允許所述函數(shù)訪問或改寫,如果否,則在不允許訪問特定內(nèi)存的函數(shù)體內(nèi)設(shè)定 函數(shù)改寫特定內(nèi)存時(shí)候的異常處理。其中,在所述步驟A之前,可以進(jìn)一步包括下列步驟系統(tǒng)在初始化過 程中,設(shè)定一內(nèi)存空間為特定內(nèi)存,內(nèi)存空間的大小以頁為單位。其中,在步驟B中,在判斷結(jié)果為允許所述函數(shù)訪問或改寫時(shí),可以包 括下列步驟在所述函數(shù)執(zhí)行體的開始部分,編寫代碼設(shè)置特定內(nèi)存所在頁屬 性為可寫,然后所述函數(shù)執(zhí)行寫特定內(nèi)存操作的程序指令,并在函數(shù)執(zhí)行結(jié)束 時(shí)設(shè)置內(nèi)存屬性為不可寫后退出,系統(tǒng)正常運(yùn)行。此外,所述嵌入式實(shí)時(shí)操作系統(tǒng),為VxWorks系統(tǒng)或者Linux系統(tǒng)。其中,在VxWorks系統(tǒng)中,所述系統(tǒng)內(nèi)相關(guān)函數(shù),包括查看系統(tǒng)上運(yùn)行 任務(wù)的i函數(shù)、查看當(dāng)前任務(wù)中函數(shù)調(diào)用情況的tt函數(shù)、以及查看當(dāng)前任務(wù)狀 態(tài)的ti函凄史。本發(fā)明的有益效果是依照本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫的方 法,通過只允許一個(gè)或幾個(gè)有合法寫權(quán)限的函數(shù)可以對重要的共享內(nèi)存空間執(zhí) 行寫操作,對于某些不被授權(quán)的函數(shù),則增加針對改寫內(nèi)存操作的異常處理方 式,從而能夠較好的避免并定位內(nèi)存被非法改寫而不得知的情況,可以提高系 統(tǒng)的穩(wěn)定性。


圖1為本發(fā)明實(shí)施例的定位VxWorks特定內(nèi)存被函數(shù)非法改寫的方法流 程圖。
具體實(shí)施方式
以下,參考附圖詳細(xì)描述本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫的方法。本發(fā)明的核心思想是對于嵌入式實(shí)時(shí)操作系統(tǒng),任務(wù)表現(xiàn)為一個(gè)函數(shù), 該函數(shù)就是任務(wù)的入口函數(shù),每個(gè)任務(wù)擁有自己的堆棧,操作系統(tǒng)使用搶占調(diào) 度或輪轉(zhuǎn)調(diào)度對系統(tǒng)中的任務(wù)進(jìn)行調(diào)度,所有任務(wù)在一個(gè)統(tǒng)一的線性地址空間 內(nèi)運(yùn)行。因此,可利用系統(tǒng)中自帶的很多調(diào)試函數(shù)來查看系統(tǒng)運(yùn)行異常如任務(wù) 掛起時(shí)候的信息,根據(jù)此信息定位任務(wù)掛起的原因,從而迅速解決問題。以下,僅以VxWorks系統(tǒng)為例對本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫 的方法進(jìn)行說明,但是本發(fā)明并不局限于此,還可以包括Linux系統(tǒng)等;在VxWorks系統(tǒng)中,i函數(shù),為查看系統(tǒng)上運(yùn)行的任務(wù)的函數(shù);tt函數(shù), 為查看當(dāng)前任務(wù)中函數(shù)調(diào)用情況的函數(shù);ti函數(shù),為查看當(dāng)前任務(wù)狀態(tài)的函數(shù)。如圖1所示,為本發(fā)明實(shí)施例的定位VxWorks特定內(nèi)存被函數(shù)非法改寫 的方法流程圖,該方法包括下列步驟步驟101:設(shè)置特定內(nèi)存空間所在頁的頁屬性為不可寫;其中,在步驟101之前,可以進(jìn)一步包括下列步驟系統(tǒng)在初始化過程中, 設(shè)定一內(nèi)存空間為特定內(nèi)存,內(nèi)存空間的大小以頁為單位。步驟102:系統(tǒng)在運(yùn)行過程中,當(dāng)有函數(shù)訪問或改寫該特定內(nèi)存時(shí),判斷 是否允許該函數(shù)訪問或改寫,如果是,則執(zhí)行步驟103;否則,執(zhí)行步驟104;步驟103:在該函數(shù)執(zhí)行體的開始部分,編寫代碼設(shè)置特定內(nèi)存所在頁屬 性為可寫,然后函數(shù)執(zhí)行寫特定內(nèi)存操作的程序指令,并在函數(shù)執(zhí)行結(jié)束時(shí)設(shè) 置內(nèi)存屬性為不可寫后退出函數(shù);其中,在步驟103中,在函數(shù)執(zhí)行結(jié)束時(shí),意味著函數(shù)對特定內(nèi)存的改寫 也結(jié)束了,此時(shí),在函數(shù)體的結(jié)束部分,編寫代碼將特定內(nèi)存空間所在頁屬性 設(shè)置為不可寫,最后退出函數(shù)的執(zhí)行,系統(tǒng)正常運(yùn)行。步驟104:預(yù)先在函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)的異常處理,例如, 將非法操作任務(wù)掛起,進(jìn)而判斷該函數(shù)體內(nèi)是否有寫特定內(nèi)存操作;如果是,則將非法操作任務(wù)掛起,并定位該改寫特定內(nèi)存的函數(shù);否則,系統(tǒng)正常運(yùn)行。其中,在步驟104中,將非法操作任務(wù)掛起,并定位該改寫特定內(nèi)存的函 數(shù),包括下列步驟步驟41:調(diào)用系統(tǒng)中查看任務(wù)的函數(shù),查看掛起的任務(wù)名或者任務(wù)ID;其中,對于VxWorks系統(tǒng),可以通過調(diào)用系統(tǒng)自帶的查看運(yùn)行任務(wù)功能 的i函數(shù),查看當(dāng)前CPU上運(yùn)行的所有任務(wù),如果看到某個(gè)任務(wù)的狀態(tài)為掛 起(suspend),則表明其因?yàn)槟撤N原因,已經(jīng)出現(xiàn)異常的狀態(tài);步驟42:針對上述處于suspend狀態(tài)的任務(wù),通過調(diào)用特定系統(tǒng)函數(shù)定位 改寫特定內(nèi)存的函數(shù)。其中,在步驟42中,對于VxWorks系統(tǒng),可以通過調(diào)用系統(tǒng)自帶的查看 當(dāng)前任務(wù)中函數(shù)調(diào)用情況的tt函數(shù),通過"tt任務(wù)名/任務(wù)ID,,查看給定任務(wù) 的當(dāng)前函數(shù)調(diào)用堆棧情況,從而獲知內(nèi)存是被哪個(gè)函數(shù)改寫的。綜上所述,依照本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫的方法,通過只允 許一個(gè)或幾個(gè)有合法寫權(quán)限的函數(shù)可以對重要的共享內(nèi)存空間執(zhí)行寫操作,對 于某些不被授權(quán)的函數(shù),則增加針對改寫內(nèi)存操作的異常處理方式,從而能夠 較好的避免并定位內(nèi)存被非法改寫而不得知的情況,可以提高系統(tǒng)的穩(wěn)定性。以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對本發(fā)明所進(jìn)行的詳細(xì) 描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其 它的變化和修改,這些變化和修改均在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在于,在嵌入式實(shí)時(shí)操作系統(tǒng)運(yùn)行中,在不允許訪問特定內(nèi)存的函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的異常處理,并在函數(shù)內(nèi)進(jìn)行了改寫特定內(nèi)存操作時(shí)進(jìn)行相應(yīng)的處理及定位。
2. 如權(quán)利要求1所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,所述在函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的異常處理,為將非法操作任 務(wù)掛起。
3. 如權(quán)利要求2所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,所述在函數(shù)內(nèi)進(jìn)行了改寫特定內(nèi)存操作時(shí)進(jìn)行相應(yīng)的處理及定位,包括下 列步驟通過調(diào)用系統(tǒng)中的查看運(yùn)行任務(wù)功能的函數(shù),查看當(dāng)前CPU上運(yùn)行的所 有任務(wù),針對其中處于掛起狀態(tài)的任務(wù),通過調(diào)用系統(tǒng)中的查看當(dāng)前任務(wù)中函 數(shù)調(diào)用情況的函數(shù),查看給定任務(wù)的當(dāng)前函數(shù)調(diào)用堆棧情況,獲知特定內(nèi)存被 哪個(gè)函數(shù)所改寫。
4. 如權(quán)利要求3所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,進(jìn)一步包括下列步驟步驟A:預(yù)先設(shè)置特定內(nèi)存空間所在頁的頁屬性為不可寫;步驟B:系統(tǒng)在運(yùn)行過程中,當(dāng)有函數(shù)訪問或改寫特定內(nèi)存時(shí),判斷是否允許所述函數(shù)訪問或改寫,如果否,則在不允許訪問特定內(nèi)存的函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的異常處理。
5. 如權(quán)利要求4所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,在所述步驟A之前,進(jìn)一步包括下列步驟系統(tǒng)在初始化過程中,設(shè)定 一內(nèi)存空間為特定內(nèi)存,內(nèi)存空間的大小以頁為單位。
6. 如權(quán)利要求4所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,在步驟B中,在判斷結(jié)果為允許所述函數(shù)訪問或改寫時(shí),包括下列步驟在所述函數(shù)執(zhí)行體的開始部分,編寫代碼設(shè)置特定內(nèi)存所在頁屬性為可 寫,然后所述函數(shù)執(zhí)行寫特定內(nèi)存操作的程序指令,并在函數(shù)執(zhí)行結(jié)束時(shí)設(shè)置內(nèi)存屬性為不可寫后退出,系統(tǒng)正常運(yùn)行。
7. 如權(quán)利要求1所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,所述嵌入式實(shí)時(shí)操作系統(tǒng),為VxWorks系統(tǒng)或者Linux系統(tǒng)。
8. 如權(quán)利要求7所述的定位特定內(nèi)存被函數(shù)非法改寫的方法,其特征在 于,在VxWorks系統(tǒng)中,所述系統(tǒng)內(nèi)相關(guān)函數(shù),包括查看系統(tǒng)上運(yùn)行任務(wù)的i 函數(shù)、查看當(dāng)前任務(wù)中函數(shù)調(diào)用情況的tt函數(shù)、以及查看當(dāng)前任務(wù)狀態(tài)的ti 函數(shù)。
全文摘要
本發(fā)明提供一種定位特定內(nèi)存被函數(shù)非法改寫的方法,其中,在嵌入式實(shí)時(shí)操作系統(tǒng)運(yùn)行中,在不允許訪問特定內(nèi)存的函數(shù)體內(nèi)設(shè)定函數(shù)改寫特定內(nèi)存時(shí)候的異常處理,并在函數(shù)內(nèi)進(jìn)行了改寫特定內(nèi)存操作時(shí)進(jìn)行相應(yīng)的處理及定位。本發(fā)明的定位特定內(nèi)存被函數(shù)非法改寫的方法,能夠較好的避免并定位內(nèi)存被非法改寫而不得知的情況,可以提高系統(tǒng)穩(wěn)定性。
文檔編號G06F9/46GK101231599SQ20081000683
公開日2008年7月30日 申請日期2008年2月2日 優(yōu)先權(quán)日2008年2月2日
發(fā)明者楊利君, 石江濤 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
枣强县| 江安县| 宝清县| 抚顺市| 安乡县| 棋牌| 绵竹市| 龙岩市| 临安市| 永康市| 安多县| 库尔勒市| 凭祥市| 建阳市| 连云港市| 浦北县| 朝阳市| 五寨县| 绍兴县| 南召县| 梓潼县| 宁化县| 沭阳县| 浪卡子县| 洪泽县| 女性| 韶关市| 永安市| 繁昌县| 康乐县| 靖宇县| 深水埗区| 西城区| 福海县| 泽库县| 贵阳市| 沈丘县| 岳普湖县| 德令哈市| 常州市| 兴仁县|