青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

aurain
技術(shù)文摘
posts - 137,  comments - 268,  trackbacks - 0

一、前言

       大量的系統(tǒng)安全問題是由于薄弱的緩沖處理以及由此產(chǎn)生的緩沖區(qū)溢出造成的,而薄弱的緩沖區(qū)處理常常與字符串操作相關(guān)。c/c++語言運行庫提供的標準字符串操作函數(shù)(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的寫入。

       基于Windows XP SP1以及隨后的操作系統(tǒng)的Windows DDK版本提供了安全字符串函數(shù)(safe string functions)。這類函數(shù)被設(shè)計的目的是用來取代相同功能的c/c++標準函數(shù)和其它微軟提供的庫函數(shù)。這類函數(shù)具有以下特征:

  • 每個函數(shù)以目標緩沖區(qū)所占的字節(jié)大小作為其一個輸入?yún)?shù),因此可以保證在寫入時不會超出緩沖區(qū)末端。
  • 每個函數(shù)的輸出字符串均以NULL結(jié)尾(null-terminate),即使該函數(shù)可能會對正確的結(jié)果進行截斷。
  • 所有函數(shù)均有返回值,類型為NTSTATUS,只有返回STATUS_SUCCESS時,操作結(jié)果才正確。
  • 每個函數(shù)均有兩種類型的版本,按字節(jié)或者按字符數(shù)。例如,RtlStringCbCatWRtlStringCchCatW
  • 每個函數(shù)均有支持雙字節(jié)的unicode字符(以W作為后綴)和單字節(jié)的ANSI字符(以A作為后綴)的版本。例如:RtlStringCbCatWRtlStringCbCatA
  • 大部分函數(shù)有提供擴展版本的函數(shù)(以Ex作為后綴),例如,RtlStringCbCatWRtlStringCbCatExW

二、如何在內(nèi)核驅(qū)動代碼中引入安全字符串函數(shù)

    有兩種方式可以引入安全字符串函數(shù):

l        以內(nèi)聯(lián)的方式引入,包含在ntstrsafe.h

l        在鏈接時以庫的方式引入

其中,如果代碼需要在系統(tǒng)為Windows XP及以后版本運行時,可以使用內(nèi)聯(lián)的方式;如果代碼需要運行在早于Windows XP時,則必須使用鏈接庫的方式。

以內(nèi)聯(lián)方式引入

只需包含頭文件即可

#include <ntstrsafe.h>

以鏈接庫的方式

  1. 在包含頭文件之前先定義宏

#define NTSTRSAFE_LIB

#include <ntstrsafe.h>

  1. 在項目的sources文件中,添加一TARGETLIBS條目如下: $(DDK_LIB_PATH)\ntstrsafe.lib.

在默認情況下,當引入了安全字符串函數(shù)后,那些被取代的c/c++運行庫函數(shù)將變得無效,編譯是會報錯,提示需要使用安全字符串函數(shù)。

    如果還希望繼續(xù)使用c/c++運行庫函數(shù),即在使用安全字符串函數(shù)的時候,c/c++運行庫函數(shù)還可以繼續(xù)使用,則需要在包含ntstrsafe.h之前先定義宏NTSTRSAFE_NO_DEPRECATE

#define NTSTRSAFE_NO_DEPRECATE

The maximum number of characters that any ANSI or Unicode string can contain is STRSAFE_MAX_CCH. This constant is defined in ntstrsafe.h.

字符串最長長度為STRSAFE_MAX_CCH,該宏在ntstrsafe.h中定義。另外,如果一個字符串需要被轉(zhuǎn)換成UNICODE_STRING結(jié)構(gòu),則該字符串長度不能超過65535.

三、內(nèi)核模式安全字符串函數(shù)概述

    下表概述了可以在內(nèi)核驅(qū)動中使用的安全字符串函數(shù),并指明了它們用來何種類型的c/c++運行庫函數(shù)。

說明:

函數(shù)名含有Cb的是以字節(jié)數(shù)為單位,含有Cch的是以字符數(shù)為單位。

函數(shù)名

作用

取代

RtlStringCbCat
RtlStringCbCatEx
RtlStringCchCat
RtlStringCchCatEx

將源字符串連接到目的字符串的末尾

strcat
wcscat

RtlStringCbCatN
RtlStringCbCatNEx
RtlStringCchCatN
RtlStringCchCatNEx

將源字符串指定數(shù)目的字符連接到目的字符串的末尾

strncat
wcsncat

RtlStringCbCopy
RtlStringCbCopyEx
RtlStringCchCopy
RtlStringCchCopyEx

將源字符串拷貝到目的字符串

strcpy
wcscpy

RtlStringCbCopyN
RtlStringCbCopyNEx
RtlStringCchCopyN
RtlStringCchCopyNEx

將源字符串指定數(shù)目的字符拷貝到目的字符串

strncpy
wcsncpy

RtlStringCbLength
RtlStringCchLength

確定字符串的長度

strlen
wcslen

RtlStringCbPrintf
RtlStringCbPrintfEx
RtlStringCchPrintf
RtlStringCchPrintfEx

格式化輸出

sprintf
swprintf
_snprintf
_snwprintf

RtlStringCbVPrintf
RtlStringCbVPrintfEx
RtlStringCchVPrintf
RtlStringCchVPrintfEx

可變格式化輸出

vsprintf
vswprintf
_vsnprintf
_vsnwprintf

各個函數(shù)的作用可以通過它所取代的c/c++函數(shù)可以大概看出,具體用法請查閱DDK幫助文檔。

posted on 2009-09-27 14:50 閱讀(6398) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網(wǎng)絡(luò)開發(fā)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 501681
  • 排名 - 37

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美极品欧美精品欧美视频| 亚洲国产日韩精品| 欧美专区在线观看| 亚洲一区图片| 午夜精品久久久久99热蜜桃导演| 男女激情久久| 亚洲欧洲三级| 欧美日韩极品在线观看一区| 欧美激情成人在线视频| 欧美国产一区视频在线观看| 欧美视频网址| 国产精品综合不卡av| 国产日产亚洲精品系列| 好男人免费精品视频| 亚洲精品一二区| 亚洲免费人成在线视频观看| 欧美一区免费视频| 欧美成人精品三级在线观看 | 国产精品久久久久秋霞鲁丝 | 国产精品夜色7777狼人| 国产欧美一级| 国产午夜精品久久久| 亚洲免费av片| 亚洲欧美日韩精品久久| 久久婷婷国产综合国色天香| 欧美精品在线视频观看| 国产一区二区日韩精品| 亚洲精选视频免费看| 小嫩嫩精品导航| 乱码第一页成人| 一区二区三区四区五区精品| 小黄鸭精品密入口导航| 欧美黄色小视频| 1024国产精品| 国产精品入口福利| 国产噜噜噜噜噜久久久久久久久 | 亚洲国产精品一区在线观看不卡| 国产精品伦子伦免费视频| 激情久久婷婷| 欧美a级片一区| 美女亚洲精品| 国产精品福利av| 久久视频在线看| 老司机久久99久久精品播放免费| 亚洲电影免费观看高清完整版在线| 久久日韩精品| 榴莲视频成人在线观看| 欧美一区二区三区四区高清 | 一本色道婷婷久久欧美| 久久久久国色av免费看影院| 国产精品久久久久久亚洲调教| 亚洲国产日韩精品| 免费观看一区| 久久精品一区二区三区中文字幕| 国产精品色网| 欧美亚洲一区二区在线观看| 99热这里只有成人精品国产| 欧美黄色一区二区| 艳女tv在线观看国产一区| 亚洲国产99精品国自产| 久久久精品国产免大香伊| 国产一区二区三区免费观看| 欧美激情精品久久久| 农村妇女精品| 亚洲电影自拍| 国产综合在线看| 久久亚洲一区二区| 久久深夜福利免费观看| 亚洲成人资源| 亚洲国产影院| 欧美日韩视频不卡| 午夜激情亚洲| 欧美亚洲一区二区在线观看| 国产日韩成人精品| 久久色在线观看| 模特精品在线| 亚洲精品五月天| 一本色道久久加勒比精品| 国产精品视频免费| 久久久久久久久久久久久9999| 久久er精品视频| 亚洲精品日韩一| 在线视频精品一区| 国产欧美精品在线播放| 麻豆成人综合网| 欧美精品在线极品| 欧美怡红院视频| 久久这里只有| 亚洲尤物在线视频观看| 亚洲女同在线| 91久久久一线二线三线品牌| 日韩视频免费大全中文字幕| 国产欧美日韩亚洲| 欧美成人免费全部观看天天性色| 欧美激情一区二区三区在线视频 | 欧美日韩国产欧美日美国产精品| 裸体一区二区| 亚洲视频1区| 欧美一进一出视频| 亚洲乱码精品一二三四区日韩在线| 亚洲精选国产| 激情综合在线| 亚洲视频www| 亚洲国内精品在线| 午夜欧美视频| 中国女人久久久| 久久久久久久一区二区三区| 在线视频亚洲欧美| 久久蜜桃av一区精品变态类天堂| 中日韩高清电影网| 久久精品一区二区| 性色一区二区| 欧美三级网址| 欧美二区在线观看| 日韩视频一区二区| 亚洲精品免费网站| 国产日韩欧美在线播放不卡| 欧美成人r级一区二区三区| 香蕉成人啪国产精品视频综合网| 亚洲精品在线观看免费| 亚洲精品久久久久久久久久久久久 | 欧美韩日精品| 久久久人成影片一区二区三区| 亚洲综合国产激情另类一区| 欧美伊人久久久久久久久影院 | 亚洲小说欧美另类婷婷| 久久国产精品99国产| 亚洲一区在线免费观看| 欧美成人午夜影院| 欧美第一黄色网| 在线日韩中文字幕| 久久精品国产视频| 久久久久一区二区三区| 国产毛片一区二区| 亚洲一区中文字幕在线观看| 亚洲视频一区二区| 欧美日韩视频免费播放| 日韩一二三区视频| 亚洲免费在线视频一区 二区| 欧美日韩视频在线第一区| 亚洲精品一区在线观看香蕉| 99riav1国产精品视频| 欧美成人中文字幕| 亚洲日韩视频| 亚洲一区自拍| 国产麻豆日韩| 久久www成人_看片免费不卡| 久久免费国产精品1| 在线观看精品视频| 欧美成人一区二区在线| 亚洲人成7777| 午夜电影亚洲| 精品99一区二区| 欧美成人激情视频| 一二三区精品| 久久久999国产| 亚洲国产日韩在线一区模特| 欧美激情一级片一区二区| 亚洲精品一区二区三区福利 | 亚洲第一福利社区| 亚洲看片一区| 国产精品久久久久免费a∨大胸| 性色av一区二区三区红粉影视| 久久一区激情| 一区二区三区国产| 国产无遮挡一区二区三区毛片日本| 亚洲欧美日韩在线高清直播| 麻豆乱码国产一区二区三区| 亚洲精品久久久一区二区三区| 欧美午夜久久久| 久久久久成人网| 国产精品资源在线观看| 美女精品自拍一二三四| 亚洲精品在线二区| 国产嫩草影院久久久久| 久久青草欧美一区二区三区| 亚洲美女91| 免费在线观看成人av| 亚洲图片在区色| 影音先锋欧美精品| 国产精品草草| 欧美 日韩 国产在线 | 欧美激情中文字幕乱码免费| 亚洲一级在线| 最新高清无码专区| 国产精品久久久一区二区| 亚洲综合国产激情另类一区| 欧美成年人网| 久久国产精品72免费观看| 99av国产精品欲麻豆| 国模私拍视频一区| 欧美体内she精视频在线观看| 久久久亚洲国产天美传媒修理工 | 欧美激情区在线播放| 欧美中文日韩| 亚洲精品在线免费观看视频| 国产欧美成人| 欧美午夜欧美| 欧美激情一区二区三区在线| 久久婷婷丁香|