通過DeviceIoControl獲取真實網絡卡位址

2021-08-08 23:51:35 字數 896 閱讀 6968

我們可以通過deviceiocontrol介面與核心驅動通訊來獲取真實網絡卡以及當前網絡卡的位址。

首先包含標頭檔案

#include

// 網絡卡標識,xp下可以在登錄檔下對應位置找到,本例: 

// hkey_local_machine\software\microsoft\windows nt\currentversion\networkcards\2\servicename

handle hdev = createfile(l"//./",

generic_read | generic_write, file_share_read | file_share_write, null, open_existing, 0, 0);

int inbuf;

byte outbuf[256] = ;

dword bytesreturned;

// 獲取永久原生mac位址

inbuf = oid_802_3_permanent_address;

int a = ioctl_ndis_query_global_stats;

if (deviceiocontrol(hdev, ioctl_ndis_query_global_stats, (lpvoid)&inbuf, 4, outbuf, 256, &bytesreturned, null))

// 獲取當前mac位址,可能被修改過

inbuf = oid_802_3_current_address;

if (deviceiocontrol(hdev, ioctl_ndis_query_global_stats, (lpvoid)&inbuf, 4, outbuf, 256, &bytesreturned, null))

通過ActiveProcessLinks遍歷程序

程序的遍歷有多種方法。在應用程式裡可以使用createtoolhelp32snapshot函式先做個程序快照 snapshot 然後通過返回的資料進行遍歷。在核心程式設計裡可以通過核心資料結構來實現。核心結構eprocess 執行體程序塊 executive process 是乙個不透明 opaqu...

通過RestHighLevelClient操作ES

一 查詢相關 在es查詢中,must相當於sql語句中的and,should相當於or。當想要實現類似於 select from table where a and b or c or d 的功能時可以借助於es中的bool。即resthighlevelclient中的boolquerybuilde...

IEEE PDF eXpress 通過方法

ieee pdf express這個東西比較煩人 文章是用latex寫的,生成pdf後始終是不能通過 原因是有些文字無法嵌入到pdf中的,本人之前的解決方法是把所有檔案打包生成zip後上傳,讓ieee來生成pdf 但這次一直不行,不過最後找到了乙個非常簡單的方法 安裝pdfcreater,之後列印生...