日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

《Undocumented Windows 2000 Secrets》翻譯 --- 2(2)

瀏覽:180日期:2023-08-27 15:56:41

序號

函數名稱

ImageHlp.DLL

DbgHelp.DLL

1

Bindlmage

N/A

2

BindlmageEx

N/A

3

CheckSumMappedFile

N/A

4

EnumerateLoadedModules

5

EnumerateLoadedModules64

6

ExtensionApiVersion

N/A

7

FindDebuglnfoFile

8

FindDebuglnfoFileEx

9

FindExecutablelmage

10

FindExecutablelmageEx

11

FindFilelnSearchPath

12

GetlmageConfiglnformation

N/A

13

GetlmageUnusedHeaderBytes

N/A

14

GetTimestampForLoadedLibrary

15

ImageAddCertificate

N/A

16

ImageDirectoryEntryToData

17

ImageDirectoryEntryToDataEx

18

ImageEnumerateCertificates

N/A

19

ImageGetCertificateData

N/A

20

ImageGetCertificateHeader

N/A

21

ImageGetDigestStream

N/A

22

ImagehlpApiVersion

23

ImagehlpApiVersionEx

24

ImageLoad

N/A

25

ImageNtHeader

26

ImageRemoveCertificate

N/A

27

ImageRvaToSection

28

ImageRvaToVa

29

ImageUnload

N/A

30

MakeSureDirectoryPathExists

31

MapAndLoad

N/A

32

MapDebuglnformation

33

MapFileAndCheckSumA

N/A

34

MapFileAndCheckSumW

N/A

35

ReBaselmage

N/A

36

ReBaseImage64

N/A

37

RemovePrivateCvSymbolic

N/A

38

RemovePrivateCvSymbolicEx

N/A

39

RemoveRelocations

N/A

40

SearchTreeForFile

41

SetlmageConfiglnformation

N/A

42

SplitSymbols

N/A

43

StackWalk

44

StackWalk64

45

Sym

N/A

46

SymCleanup

47

SymEnumerateModules

48

SymEnumerateModules64

49

SymEnumerateSymbols

50

SymEnumerateSymbols64

51

SymEnumerateSymbolsW

52

SymFunctionTableAccess

53

SymFunctionTa ble Access64

54

SymGetLineFromAddr

55

SymGetLineFromAddr64

56

SymGetLineFromName

57

SymGetLineFromName64

58

SymGetLineNext

59

SymGetLineNext64

60

SymGetLinePrev

61

SymGetLinePrev64

62

SymGetModuleBase

63

SymGetModuleBase64

64

SymGetModulelnfo

65

SymGetModuleInfo64

66

SymGetModulelnfo Ex

67

SymGetModulelnfo Ex64

68

SymGetModulelnfoW

69

SymGetModulelnfo W64

70

SymGetOptions

71

SymGetSearchPath

72

SymGetSymbolInfo

73

SymGetSymbolInfo64

74

SymGetSymFromAddr

75

SymGetSymFromAddr64

76

SymGetSymFromName

77

SymGetSymFromName64

78

SymGetSymNext

79

SymGetSymNext64

80

SymGetSymPrev

81

SymGetSymPrev64

82

Symlnitialize

83

SymLoadModule

84

SymLoadModule64

85

SymMatchFileName

86

SymEnumerateSymbolsW64

87

SymRegisterCallback

88

SymRegisterCallback64

89

SymRegisterFunctionEntryCallback

90

SymRegisterFunctionEntryCallback64

91

SymSetOptions

92

SymSetSearchPath

93

SymUnDName

94

SymUnDName64

95

SymUnloadModule

96

SymUnloadModule64

97

TouchFileTimes

N/A

98

UnDecorateSymbolName

99

UnMapAndLoad

N/A

100

UnmapDebuglnformation

101

UpdateDebuglnfoFile

N/A

102

UpdateDebuglnfoFileEx

N/A

103

WinDbgExtensionDllInit

N/A

在本節的示例代碼中,我會演示如何使用psapi.dll和imagehlp.dll完成如下任務:

l 枚舉所有內核組件和驅動程序

l 枚舉系統當前管理的所有進程

l 枚舉加載到進程地址空間的所有模塊(modules)

l 枚舉一個給定組件的所有符號(如果其符號文件可用的話)

psapi.dll的接口并不像其設計的那樣好。它提供了最小的功能集,盡管它曾試圖增加一些便利性。雖然,它能從內核獲取一些信息但卻扔掉了其中的大多數,只留下很少一部分。

由于psapi.dll和imagehlp.dll的函數并不是標準Win32 API的一部分,它們所需的頭文件和導入庫不會自動包括在Visual C/C++工程中。因此,列表1-2中列出的四個指示符(directives)應該在你的原文件中出現。第一部分是所需的頭文件,剩余部分用于和這兩個DLL中的導出函數建立動態鏈接。

#include <imagehlp.h>

#include <psapi.h>

#pragma comment (linker,”/defaultlib:imagehlp.dll”)

#pragma comment (linker,”/defaultlib:psapi.dll”)

列表1-2增加psapi.dll和imagehlp.dll到Visual C/C++工程

譯注:

其實,也可以采用靜態鏈接,如下:

#pragma comment(lib,”psapi.lib”)

#pragma comment(lib,”imagehlp.lib”)

這樣,就不需要目標平臺必須有這兩個DLL了。

光盤中的示列代碼

在本書的附帶光盤中,有兩個工程是構建與psapi.dll和imagehlp.dll之上。其中一個示例工程是w2k_sym.exe----一個Windows 2000符號瀏覽器,它可以從任意符號文件中提取符號名稱(假如你已經安裝了的話)。它輸出的符號表可以按照名稱、地址和大小來排序,同時接受一個采用通配符的過濾器。作為附送功能,w2k_sym.exe還可列出當前活動的系統模塊/驅動程序的名稱,運行的進程和每個進程加載的模塊。另一個示例工程是調試支持庫w2k_dbg.dll,這個庫包含幾個便于使用的針對psapi.dll和imagehlp.dll的外包函數。w2k_sym.exe完全依賴這個DLL。這些工程的源代碼分別位于光盤的srcw2k_dbg和srcw2k_sym目錄。

表1-2列出了w2k_dbg.dll用到的函數名稱。A./W列表示對ANSI和Unicode的支持情況。稍早提示過,psapi.dll同時支持ANSI和Unicode。不幸的是,imagehlp.dll和dbghelp.dll沒有這么聰明,其中幾個函數只能接受ANSI字符串。這有些煩人,因為Windows 2000的調試程序通常不能運行在Windows 9x上,所以不該限制使用Unicode。若將imagehlp.dll假如你的工程中,你就必須選擇是使用ANSI還是來回轉化Unicode字符串。因為我很討厭在一個可處理16位字符串的系統中使用8位的字符串,所以我選擇后一種方法。w2k_dbg.dll導出的所有函數中涉及的字符串默認都是Unicode。所以,如果你在自己的Windows 2000工程中使用這個DLL不需要再關心字符大小問題。

另一方面,imagehlp.dll和dbghelp.dll有一個psapi.dll沒有的特性:他們同樣適用于Win64----讓每個開發人員恐懼的64位Windows,這是因為沒人知道將Win32程序移植到Win64有多困難。這些DLL導出了Win64 API函數,好吧----或許有一天我們會用到他們。

名稱

A/W

EnumDeviceDrivers

psapi.dll

EnumProcesses

psapi.dll

EnumProcessModules

psapi.dll

GetDeviceDriverFileName

A/W

psapi.dll

GetModuleFileNameEx

A/W

psapi.dll

GetModulelnformation

psapi.dll

ImageLoad

A

imagehlp.dll

ImageUnload

imagehlp.dll

SymCleanup

imagehlp.dll

SymEnumerateSymbols

A/W

imagehlp.dll

Symlnitialize

A

imagehlp.dll

SymLoadModule

A

imagehlp.dll

SymUnloadModule

imagehlp.dll

表1-2; w2k_dbg.dll使用的調試函數

我沒有深入的探究psapi.dll和imagehlp.dll。本書的焦點在于未文檔化的接口,而且在SDK中與這兩個DLL的接口有關的文檔還算不錯。可是,我并不打算完全繞過它們,因為它們和Windows 2000 Native API(將在第2章討論)緊密聯系在一起。而且,psapi.dll是證明為什么未文檔化的接口比文檔化的那個更好的最佳實例。該DLL的接口不僅僅只是看上去的簡單和笨拙---在某些地方它竟然會返回明顯矛盾的數據。如果我不得不編寫一個專業的調試工具來出售,我是不會指望這個DLL的。Windows 2000內核提供了強大、通用和更加合適的調試API函數。然而,這些幾乎都沒有文檔化。幸運的是,微軟提供的許多系統工具都廣泛的使用了這些API,so it has undergone only slight changes across Windows NT versions。是的,如果你使用了這些API,每當發布了新版的NT,你就必須修訂和小心的測試你的軟件,但是它們帶來的好處遠大于這些障礙。

本章隨后的大多數示例代碼都來自w2k_dbg.dll,你可以在光盤的srcw2k_dbgw2k_dbg.c中發現它們。這個DLL封裝了多個步驟,以返回更豐富的信息。數據會以合適的大小、鏈表(包括可選的索引值)返回,以便于對它們進行排序等操作。表1-3列出了w2k_dbg.dll導出的所有API函數。這些函數很多,詳細討論每個函數已經超出了本章的范圍,因此我鼓勵你去參考w2k_sym.exe的源代碼(位于光盤srcw2k_symx),來學習它們的典型用法。

表1-3

函數名稱

描 述

dbgBaseDriver

Return the base address and size of a driver, given its path

dbgBaseModule

Return the base address and size of a DLL module

dbgCrc32Block

Compute the CRC32 of a memory block

dbgCrc32Byte

Bytewise computation of a CRC32

dbgCrc32Start

CRC32 preconditioning

dbgCrc32Stop

CRC32 postconditioning

dbgDriverAdd

Add a driver entry to a list of drivers

dbgDriverAddresses

Return an array of driver addresses (EnumDeviceDrivers ( ) wrapper)

dbgDriverlndex

Create an indexed (and optionally sorted) driver list

dbgDriverList

Create a flat driver list

dbgFileClose

Close a disk file

dbgFileLoad

Load the contents of a disk file to a memory block

dbgFileNew

Create a new disk file

dbgFileOpen

Open an existing disk file

dbgFileRoot

Get the offset of the root token in a file path

dbgFileSave

Save a memory block to a disk file

dbgFileUnload

Free a memory block created by dbgFileLoad ( )

dbglndexCompare

Compare two entrIEs referenced by an index (used by dbgindexsort ( ) )

dbglndexCreate

Create a pointer index on an object list

dbglndexCreateEx

Create a sorted pointer index on an object list

dbglndexDestroy

Free the memory used by an index and its associated list

dbglndexDestroyEx

Free the memory used by a two-dimensional index and its associated lists

dbglndexList

Create a flat copy of a list from its index

dbglndexListEx

Create a flat copy of a two-dimensional list from its index

dbglndexReverse

Reverse the order of the list entries referenced by an index

dbglndexSave

Save the memory image of an indexed list to a disk file

dbglndexSaveEx

Save the memory image of a two-dimensional indexed list to a disk file

dbglndexSort

Sort the list entries referenced by an index by address, size, ID, or name

dbgListCreate

Create an empty list

dbgListCreateEx

Create an empty list with reserved space

dbgListDestroy

Free the memory used by a list

dbgListFinish

Terminate a sequentially built list and trim any unused memory

dbgListlndex

Create a pointer index on an object list

dbgListLoad

Create a list from a disk file image

dbgListNext

Update the list header after adding an entry

dbgListResize

Reserve memory for additional list entries

dbgListSave

Save the memory image of a list to a disk file

dbgMemory

Align Round up a byte count to the next 64-bit boundary

dbgMemoryAlignEx

Round up a string character count to the next 64-bit boundary

dbgMemoryBase

Query the internal base address of a heap memory block

dbgMemoryBaseEx

Query the internal base address of an individually tagged heap memory block

dbgMemoryCreate

Allocate a memory block from the heap

dbgMemoryCreateEx

Allocate an individually tagged memory block from the heap

dbgMemoryDestroy

Return a memory block to the heap

dbgMemoryDestroyEx

Return an individually tagged memory block to the heap

dbgMemoryReset

Reset the memory usage statistics

dbgMemoryResize

Change the allocated size of a heap memory block

dbgMemoryResizeEx

Change the allocated size of an individually tagged heap memory block

dbgMemoryStatus

Query the memory usage statistics

dbgMemory

Track Update the memory usage statistics

dbgModulelndex

Create an indexed (and optionally sorted) process module sub-list

dbgModuleList

Create a flat process module sub-list

dbgPathDriver

Build a default driver path specification

dbgPathFile

Get the offset of the file name token in a file path

dbgPrivilegeDebug

Request the debug privilege for the calling process

dbgPrivilegeSet

Request the specified privilege for the calling process

dbgProcessAdd

Add a process entry to a list of processes

dbgProcessGuess

Guess the default display name of an anonymous system process

dbgProcessIds

Return an array of process IDs (EnumProcesses ( ) wrapper)

dbgProcessIndex

Create an indexed (and optionally sorted) process list

dbgProcessIndexEx

Create a two-dimensional indexed (and optionally sorted) process/module list

dbgProcessList

Create a flat process list

dbgProcessModules

Return a list of process module handles (EnumProcessModules ( )wrapper)

dbgSizeDivide

Divide a byte count by a power of two, optionally rounding up or down

dbgSizeKB

Convert bytes to KB, optionally rounding up or down

dbgSizeMB

Convert bytes to MB, optionally rounding up or down

dbgStringAnsi

Convert a Unicode string to ANSI

dbgStringDay

Get the name of a day given a day-of-week number

dbgStringMatch

Apply a wildcard filter to a string

dbgSymbolCallback

Add a symbol entry to a list of symbols (called by SymEnumerateSymbols ( ) )

dbgSymbolIndex

Create an indexed (and optionally sorted) symbol list

dbgSymbolList

Create a flat symbol list

dbgSymbolLoad

Load a module's symbol table

dbgSymbolLookup

Look up a symbol name and optional offset given a memory address

dbgSymbolUnload

Unload a module's symbol table

標簽: Windows系統
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日韩欧美三级| 偷拍欧美精品| 精品久久久中文字幕| 亚洲字幕久久| 久久久久一区| 国产女人18毛片水真多18精品| 午夜电影亚洲| 不卡中文一二三区| 久久在线免费| 中文字幕人成乱码在线观看| 五月亚洲婷婷 | 天堂va在线高清一区| 国产精品视频一区二区三区综合 | 日韩1区在线| 亚洲精品麻豆| 日韩视频一二区| 国产视频一区免费看| 欧美成人午夜| 亚洲黄色影院| 亚洲丝袜美腿一区| 午夜性色一区二区三区免费视频| 午夜在线一区二区| 免费日韩av| 欧美专区一区二区三区| 久久亚洲一区| 日韩精品一级| 欧美在线首页| 免费一区二区三区在线视频| 国产精品1区| 中文在线а√天堂 | 国产成人1区| 亚欧洲精品视频在线观看| 中文字幕一区二区三区日韩精品| 国产成人免费视频网站视频社区| 久久久国产精品网站| 成人影视亚洲图片在线| 99国产精品免费视频观看| 精品国产第一福利网站| 日韩av首页| 欧美日韩精品一本二本三本 | 国产麻豆一区二区三区精品视频| 麻豆精品蜜桃视频网站| 成人日韩在线| 亚洲一区二区三区高清| 久久不见久久见中文字幕免费| 亚洲天堂免费| 国产精品手机在线播放| 日韩国产在线| 亚洲69av| 国产成人精品一区二区三区免费 | 在线亚洲人成| 亚州精品视频| 欧美日韩国产观看视频| 免费国产自久久久久三四区久久| 免播放器亚洲| 精品入口麻豆88视频| 日本一区免费网站| 精品一级视频| 日韩精品麻豆| 免费看的黄色欧美网站| 精品视频国产| 免费看日韩精品| 国产一区二区色噜噜| 亚洲另类黄色| 欧美日韩国产免费观看视频| 99久精品视频在线观看视频| 欧美日韩 国产精品| 福利一区和二区| 日韩和欧美的一区| 国产精品美女久久久浪潮软件| 精品视频在线你懂得| 日本午夜精品视频在线观看| 婷婷成人在线| 国产精品色在线网站| 亚洲网址在线观看| 久久国产小视频| 福利在线免费视频| 电影91久久久| 视频一区视频二区中文| 亚洲va在线| 日韩另类视频| 久久电影tv| 欧美日韩在线网站| 欧美日韩国产探花| 快she精品国产999| 亚洲一区欧美二区| 在线精品国产亚洲| 人人精品人人爱| 国产精品婷婷| 欧美午夜精品一区二区三区电影| 香蕉成人av| 日韩亚洲国产欧美| 中文日韩在线| 亚洲啊v在线免费视频| 欧美日一区二区在线观看| 欧美日韩一区二区国产| 国产精品黄网站| 国产亚洲精品美女久久久久久久久久| 日韩欧美在线精品| 日本成人中文字幕在线视频| 国产精品三p一区二区| 麻豆传媒一区二区三区| 色综合狠狠操| 国产福利资源一区| 亚洲综合小说| 日本综合精品一区| 日韩成人高清| 亚洲免费影院| 鲁大师影院一区二区三区| 亚洲精品免费观看| 国产精品调教| 99精品在线免费在线观看| 伊人成人在线视频| 婷婷视频一区二区三区| 国产欧美日韩精品一区二区免费| 欧美特黄一级大片| 日韩影院精彩在线| 国产精品一区二区免费福利视频| 精品欧美一区二区三区在线观看| 国产v日韩v欧美v| 亚洲色诱最新| 国产资源在线观看入口av| 国产亚洲福利| 久久国产生活片100| 久久影院资源站| 香蕉久久99| 亚洲一级淫片| 国产伦精品一区二区三区千人斩| 久久影院资源站| 国产一级一区二区| 麻豆成人综合网| 99久久九九| 亚洲精品欧美| 今天的高清视频免费播放成人| 精品一区在线| 7777精品| 伊人久久大香线蕉av不卡| 日韩av午夜在线观看| 精品一区二区三区四区五区| 亚洲欧美日韩国产一区| 水蜜桃久久夜色精品一区| 国产精品日韩| 在线一区视频观看| 在线精品观看| 日韩综合精品| 国产日韩中文在线中文字幕| 欧美午夜不卡| 精品久久一区| 欧美久久精品| 欧美一区二区三区高清视频| 日韩av在线免费观看不卡| 亚洲v天堂v手机在线| 欧美午夜不卡| 国产日韩中文在线中文字幕| 亚洲欧洲专区| 麻豆9191精品国产| 亚洲精品国产嫩草在线观看| 国产在线|日韩| 欧美精品资源| av资源中文在线| 亚洲1234区| 欧洲激情综合| 亚洲一二av| 91欧美极品| 欧美激情久久久久久久久久久| 久久成人高清| 精品一区二区三区中文字幕| 日本精品在线中文字幕| 中文国产一区| 免费在线观看一区二区三区| 亚洲资源在线| a天堂资源在线| 久久精品免费一区二区三区| 色偷偷色偷偷色偷偷在线视频| 午夜在线观看免费一区| 亚洲日韩视频| 欧美在线观看天堂一区二区三区| 国产精品1luya在线播放| 久久激五月天综合精品| 久久av日韩| 国产精品日本| 久久久国产精品入口麻豆 | 亚洲精品成人一区| 欧美精品羞羞答答| 亚洲国产一区二区三区在线播放| 极品日韩av| 国产亚洲毛片| 国产欧美日韩在线一区二区 | 国产美女高潮在线观看| 亚洲91精品| 国产福利资源一区| 久久男人天堂| 日韩精品欧美大片| 亚洲黄色免费av| 国产麻豆综合| 吉吉日韩欧美| 日韩av网站在线观看| 成人午夜亚洲| 亚洲欧美日韩高清在线| 日韩欧美在线精品|