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

aurain
技術文摘
posts - 137,  comments - 268,  trackbacks - 0

一、前言

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

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

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

二、如何在內核驅動代碼中引入安全字符串函數

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

l        以內聯的方式引入,包含在ntstrsafe.h

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

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

以內聯方式引入

只需包含頭文件即可

#include <ntstrsafe.h>

以鏈接庫的方式

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

#define NTSTRSAFE_LIB

#include <ntstrsafe.h>

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

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

    如果還希望繼續使用c/c++運行庫函數,即在使用安全字符串函數的時候,c/c++運行庫函數還可以繼續使用,則需要在包含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中定義。另外,如果一個字符串需要被轉換成UNICODE_STRING結構,則該字符串長度不能超過65535.

三、內核模式安全字符串函數概述

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

說明:

函數名含有Cb的是以字節數為單位,含有Cch的是以字符數為單位。

函數名

作用

取代

RtlStringCbCat
RtlStringCbCatEx
RtlStringCchCat
RtlStringCchCatEx

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

strcat
wcscat

RtlStringCbCatN
RtlStringCbCatNEx
RtlStringCchCatN
RtlStringCchCatNEx

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

strncat
wcsncat

RtlStringCbCopy
RtlStringCbCopyEx
RtlStringCchCopy
RtlStringCchCopyEx

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

strcpy
wcscpy

RtlStringCbCopyN
RtlStringCbCopyNEx
RtlStringCchCopyN
RtlStringCchCopyNEx

將源字符串指定數目的字符拷貝到目的字符串

strncpy
wcsncpy

RtlStringCbLength
RtlStringCchLength

確定字符串的長度

strlen
wcslen

RtlStringCbPrintf
RtlStringCbPrintfEx
RtlStringCchPrintf
RtlStringCchPrintfEx

格式化輸出

sprintf
swprintf
_snprintf
_snwprintf

RtlStringCbVPrintf
RtlStringCbVPrintfEx
RtlStringCchVPrintf
RtlStringCchVPrintfEx

可變格式化輸出

vsprintf
vswprintf
_vsnprintf
_vsnwprintf

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

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

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網絡開發

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 501336
  • 排名 - 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>
            久久精品国产清自在天天线| 久久精品免费观看| 亚洲美女免费精品视频在线观看| 亚洲欧美日韩天堂| 欧美日韩在线免费| 亚洲精品日韩综合观看成人91| 久久精品动漫| 亚洲一区二区三区四区在线观看 | 亚洲理伦在线| 久久亚洲捆绑美女| 欧美一区=区| 国产区二精品视| 亚洲综合国产| 亚洲一区二区三区成人在线视频精品 | 免费观看成人www动漫视频| 午夜日韩在线| 国产视频一区在线| 久久看片网站| 久久久精品tv| 亚洲国产精品123| 91久久夜色精品国产九色| 免费观看欧美在线视频的网站| 在线日韩欧美| 亚洲国产精品尤物yw在线观看| 农村妇女精品| 一本大道久久a久久综合婷婷| 一本色道久久99精品综合| 欧美视频日韩| 欧美一区二区黄色| 久久精品一区二区国产| 亚洲福利国产| 99精品国产热久久91蜜凸| 国产精品久久久一本精品| 欧美一区二区黄| 久久精品一区蜜桃臀影院 | 在线成人激情视频| 欧美福利在线| 欧美日韩在线免费| 久久精品国产久精国产一老狼| 久久精品五月婷婷| 亚洲九九精品| 亚洲欧美一级二级三级| 伊人成人在线| 99热免费精品| 在线播放不卡| 亚洲视频1区2区| 怡红院av一区二区三区| 亚洲精品免费在线| 国产欧美大片| 亚洲人人精品| 狠狠88综合久久久久综合网| 最新国产成人在线观看| 国产精品自在欧美一区| 亚洲国产天堂久久综合| 国产欧美日韩免费| 亚洲欧洲精品一区二区| 国产日韩一区二区三区| 亚洲国产成人av在线| 国产欧美综合一区二区三区| 亚洲国产精品成人一区二区| 国产亚洲成av人在线观看导航| 亚洲人在线视频| 激情视频一区二区| 亚洲自拍都市欧美小说| 日韩视频免费大全中文字幕| 亚洲精品影院在线观看| 欧美成人tv| 国产精品免费视频xxxx| 最新日韩在线视频| 激情五月婷婷综合| 亚洲欧美日韩高清| 一区二区成人精品| 久久综合伊人77777尤物| 欧美在线视频不卡| 欧美视频中文一区二区三区在线观看 | 欧美亚洲一区| 亚洲欧美另类在线观看| 欧美极品在线观看| 欧美激情va永久在线播放| 国产日韩欧美在线视频观看| 中日韩美女免费视频网址在线观看 | 国产人妖伪娘一区91| 日韩视频免费| 日韩一区二区福利| 欧美国产日韩在线观看| 欧美成人激情视频免费观看| 好吊一区二区三区| 午夜精品成人在线| 欧美一区二区免费视频| 国产精品海角社区在线观看| 亚洲伦理久久| 亚洲图色在线| 国产精品高清网站| 亚洲欧美国产日韩中文字幕| 亚洲女同在线| 国产伦精品一区| 亚洲男人天堂2024| 欧美在线观看视频一区二区三区| 国产精品久久久久久久久久久久久久 | 久久国产精品99精品国产| 久久av一区二区三区亚洲| 国产精品欧美在线| 亚洲欧美国产一区二区三区| 欧美亚洲色图校园春色| 国产欧美日韩一级| 久久精品观看| 欧美激情精品久久久久久变态| 亚洲激情视频网站| 欧美日韩成人精品| 亚洲一区二区三区在线| 欧美一区二区在线视频| 国产亚洲精品久久久| 久久se精品一区二区| 免费成人av在线看| 亚洲精品老司机| 欧美三日本三级少妇三2023 | 先锋影音一区二区三区| 国产精品一区在线播放| 欧美影院视频| 欧美大色视频| 亚洲视频在线看| 国产色产综合产在线视频| 久久久国产成人精品| 亚洲国产影院| 性欧美在线看片a免费观看| 国内精品视频一区| 欧美区在线观看| 小辣椒精品导航| 最新国产精品拍自在线播放| 欧美伊人久久久久久久久影院| 亚洲成在线观看| 国产精品成人播放| 老妇喷水一区二区三区| 亚洲图片欧洲图片av| 噜噜噜噜噜久久久久久91| 亚洲视频大全| 亚洲高清精品中出| 国产裸体写真av一区二区| 麻豆精品在线视频| 亚洲一区二区三区在线看| 亚洲丁香婷深爱综合| 性色av香蕉一区二区| 日韩视频免费观看高清完整版| 国产日韩欧美黄色| 欧美日韩伊人| 欧美搞黄网站| 久久久亚洲午夜电影| 亚洲一区二区三区中文字幕| 亚洲国产精品传媒在线观看 | 免费毛片一区二区三区久久久| 亚洲视频在线播放| 亚洲国产精品久久久| 久久久高清一区二区三区| 中文av一区特黄| 亚洲精品国产精品国自产在线| 国产亚洲欧美aaaa| 欧美日韩精品欧美日韩精品| 久久蜜臀精品av| 午夜免费久久久久| 亚洲婷婷在线| 亚洲美女av黄| 亚洲激情视频| 亚洲国产成人久久综合一区| 久久精品亚洲一区二区| 午夜精品影院| 亚洲欧美bt| 亚洲小说春色综合另类电影| 亚洲人成网站精品片在线观看| 黄色日韩网站视频| 韩国女主播一区二区三区| 国产日韩欧美a| 国产精品一区二区久久精品| 欧美性猛交xxxx乱大交蜜桃| 欧美日韩视频免费播放| 欧美日韩午夜剧场| 欧美日韩在线精品| 欧美视频中文一区二区三区在线观看| 欧美啪啪一区| 欧美私人网站| 国产精品婷婷| 国产日韩欧美| 永久免费精品影视网站| 亚洲福利精品| 一本色道久久综合亚洲91| 日韩午夜中文字幕| 亚洲深夜av| 欧美在线免费| 久久综合九色九九| 欧美激情a∨在线视频播放| 亚洲国产成人精品女人久久久| 欧美一区二区三区在线看| 国产综合色在线| 一区二区在线免费观看| 伊人男人综合视频网| 国内精品视频一区| 91久久综合亚洲鲁鲁五月天| 亚洲精品美女在线观看播放| 一区二区日韩| 欧美一级淫片播放口| 久久免费黄色|