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

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>
            亚洲午夜伦理| 欧美人成免费网站| 日韩亚洲欧美成人| 欧美精品v国产精品v日韩精品| 亚洲国产精品热久久| 欧美激情一区二区久久久| 老司机午夜精品| 99re66热这里只有精品3直播| 亚洲伦理在线观看| 国产精品久久久久久久浪潮网站| 欧美一区三区二区在线观看| 欧美在线免费一级片| 亚洲国产精品精华液2区45| 亚洲福利精品| 欧美日韩一区二区在线观看| 午夜精品一区二区三区电影天堂| 香蕉尹人综合在线观看| 1024亚洲| 亚洲图片你懂的| 永久555www成人免费| 亚洲欧洲日夜超级视频| 国产毛片一区| 亚洲高清在线精品| 国产精品久久久一区麻豆最新章节 | 国产精品毛片高清在线完整版| 久久国产精品99国产精| 每日更新成人在线视频| 亚洲欧美激情四射在线日| 久久精品国产第一区二区三区| 日韩视频三区| 欧美一区二区精品| 一本色道精品久久一区二区三区| 亚洲欧美日韩国产| 日韩视频一区二区| 久久精品国产免费看久久精品| 99视频在线精品国自产拍免费观看 | 亚洲大片在线| 亚洲尤物在线| 亚洲国产综合视频在线观看| 亚洲欧美高清| 一区二区三区视频在线播放| 久久精品视频在线| 性欧美暴力猛交另类hd| 欧美精品七区| 一区二区国产精品| 在线观看av不卡| 欧美在线日韩精品| 欧美国产一区二区在线观看 | 一本大道久久a久久精二百| 国产美女诱惑一区二区| 欧美激情一区二区三级高清视频 | 亚洲欧美中文日韩v在线观看| 亚洲精品国产日韩| 香蕉久久夜色精品| 亚洲一区二区成人在线观看| 久久久久久久尹人综合网亚洲| 亚洲一区二区在线免费观看视频| 欧美国产日韩xxxxx| 久久三级福利| 国产一区二区三区成人欧美日韩在线观看| 亚洲美女av黄| 亚洲日本成人网| 欧美国产日韩亚洲一区| 欧美xxx成人| 亚洲欧洲日夜超级视频| 久久综合久久久久88| 狂野欧美激情性xxxx欧美| 韩日精品中文字幕| 欧美一区二区播放| 久久五月天婷婷| 亚洲高清久久网| 欧美不卡在线| 亚洲国产一区二区视频| 在线日韩一区二区| 欧美国产高清| 一区二区不卡在线视频 午夜欧美不卡' | 亚洲成色777777女色窝| 亚洲欧洲免费视频| 欧美激情综合五月色丁香| 亚洲欧洲视频| 亚洲欧美电影在线观看| 国产精品一区三区| 久久精品中文字幕免费mv| 欧美不卡三区| 亚洲婷婷综合久久一本伊一区| 欧美视频久久| 欧美在线亚洲在线| 亚洲二区在线| 亚洲欧美日韩精品一区二区| 国产一区清纯| 欧美电影免费观看网站| 一区二区av在线| 久久综合国产精品台湾中文娱乐网| 亚洲国产精品久久久久婷婷884| 欧美国产一区视频在线观看| 亚洲线精品一区二区三区八戒| 久久精品99久久香蕉国产色戒| 亚洲国产综合视频在线观看| 国产精品美女久久久| 狂野欧美性猛交xxxx巴西| 亚洲激情视频网| 欧美在线观看视频一区二区三区| 国产综合亚洲精品一区二| 一本色道久久综合精品竹菊| 欧美精品激情blacked18| 欧美激情第9页| 亚洲精品一二三区| 亚洲欧美综合v| 美女黄色成人网| avtt综合网| 国产精品一区视频网站| 亚洲一区网站| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲视频在线播放| 亚洲国产精品女人久久久| 国产精品女同互慰在线看| 你懂的成人av| 久久福利精品| 亚洲一区精彩视频| 亚洲国产99| 欧美a级片网站| 久久久免费av| 久久精品久久99精品久久| 亚洲免费视频在线观看| 夜夜嗨av色综合久久久综合网| 在线视频国产日韩| 国内视频精品| 国产日韩欧美高清免费| 欧美视频免费看| 欧美日本中文| 欧美精品精品一区| 欧美18av| 欧美国产日韩xxxxx| 老司机一区二区三区| 久久精品亚洲乱码伦伦中文| 亚洲欧美日韩中文视频| 午夜精品久久久久99热蜜桃导演| 99国产精品99久久久久久粉嫩| 亚洲国产精品毛片| 欧美激情欧美激情在线五月| 免费欧美在线视频| 老鸭窝毛片一区二区三区| 久久色中文字幕| 久久人91精品久久久久久不卡| 欧美伊人久久大香线蕉综合69| 香港成人在线视频| 亚洲欧美日韩久久精品| 亚洲在线观看视频网站| 午夜久久一区| 久久精品免费播放| 久久天堂成人| 亚洲电影免费在线| 亚洲精品在线看| 亚洲性图久久| 欧美在线看片a免费观看| 久久久青草婷婷精品综合日韩 | 亚洲欧美日韩一区二区| 亚洲高清不卡在线观看| 久久精品青青大伊人av| 久久精品在线播放| 久久中文字幕一区| 欧美高潮视频| 国产精品国产精品| 国产在线一区二区三区四区| 亚洲电影免费观看高清| 亚洲在线不卡| 99av国产精品欲麻豆| 亚洲四色影视在线观看| 欧美在线综合| 欧美激情在线观看| 国产精品免费看片| 影音先锋日韩资源| 亚洲一级一区| 免费成人你懂的| 99综合在线| 久久精品一区二区三区不卡牛牛| 欧美国产精品人人做人人爱| 国产精品久久久久免费a∨大胸| 国产一区二区丝袜高跟鞋图片| 亚洲人线精品午夜| 性色一区二区三区| 亚洲成色777777女色窝| 亚洲一区二区三区精品在线| 久久综合一区| 国产精品综合久久久| 亚洲乱码一区二区| 久久精品免费电影| av不卡免费看| 女女同性精品视频| 国产美女一区二区| 一区二区三区波多野结衣在线观看| 久久久久综合网| 一区二区三区鲁丝不卡| 老司机久久99久久精品播放免费 | 亚洲一区精品视频| 欧美国产激情二区三区| 在线观看视频一区二区| 欧美在线不卡视频| 一本色道久久综合亚洲精品按摩 | 在线国产精品一区|