ssdt函式索引號 乙個獲取系統服務索引號的小工具

2021-10-19 22:39:46 字數 1051 閱讀 1400

好久沒寫部落格了,最近想抽點時間補上之前的東西,有些東西要記錄下來,以後看了會覺得很有意思。

這個小工具沒有什麼可以說的,直接vc編譯連線就可以用了。下面附上**:

#include "stdio.h"

#include

int main()

printf("請輸入要獲得索引號的函式的名稱:\n");

char apiname[256];

scanf("%s",apiname);

//獲得函式位址

farproc paddress1 = getprocaddress(getmodulehandle("ntdll"),(const char*)apiname);

//轉換成pulong

pulong paddress2 = (pulong)paddress1;

//kd> u ntdll!ntcreatefile

//ntdll!ntcreatefile:

//772555c8 b842000000 mov eax,42h

//772555cd ba0003fe7f mov edx,offset shareduserdata!systemcallstub (7ffe0300)

//772555d2 ff12 call dword ptr [edx]

//772555d4 c22c00 ret 2ch

//772555d7 90 nop

//(ulong)paddress2+1,b8彙編指令為乙個位元組所以要加1,然後重新轉換位址指標

paddress2 = (pulong)((ulong)paddress2+1);

//*paddress2表示獲得此位址的內容,內容長度為4個位元組

printf("[%s]在ssdt表中的索引:%x \n",apiname,*paddress2);

system("pause");

return 0;

其實短短幾行**,但本菜鳥覺得還是挺好用的。呵呵

菜鳥言論僅供娛樂。

分享到:

2011-09-25 15:14

瀏覽 715

ssdt函式索引號 SSDT索引號的獲取

系統服務描述符表,system service dispatch table,ssdt windows在核心層提供了兩張表,分別為ssdt system service descriptor table,系統服務描述表 和shadow ssdt 使用者層的api實現,實際是層簡單的包裝,最終都是轉到...

初學SSDT遇到的乙個指標問題

最近想學驅動開發,參考別人的 但是遇到了一些問題,昨晚調了乙個晚上都找不到原因,快12點半 的時候才找 到原因,是指標沒寫好,其實根本原因是自己基礎不紮實。ssdt的結構如下 typedef struct servicedescriptortable pservicedescriptortable ...

Fortran乙個獲取硬體系統資訊的函式庫

此函式庫提供了 visual fortran 上獲取硬碟id,cpu編號,windows安裝時間及檔案頭部校驗的四個函式。可用於簡單的程式加密。但切勿用於商業性很強的地方 近期,不少朋友向筆者詢問 fortran 如何獲得網絡卡位址,硬碟id,cpu編號等。對此,筆者給出乙個自己書寫的簡單的函式庫。...