win32k 平台上,獲取cpuid的辦法主要有兩種,一種是利用 wmi 另一種是利用 x86 彙編的 cpuid 指令,而最快的辦法就是通過彙編了,而且 wmi 與彙編之間效率上的差距的確有點讓人難以忍受,wmi 獲取 cpuid 的效率幾乎接近了一秒鐘,而利用 cpuid 指令的辦法,大概是幾個 us 時間的問題,這種令人咋舌的巨大差異,讓人有些難以忍受。
using system;
using system.management;
using system.runtime.interopservices;
static class program
; intptr address = gchandle.alloc(shellcode, gchandletype.pinned).addrofpinnedobject();
virtualprotect(address, (uint)shellcode.length, 0x40, out uint lpfloldprotect);
__cpuid cpuid = (__cpuid)marshal.getdelegateforfunctionpointer(address, typeof(__cpuid));
int s1 = 0;
int s2 = 0;
for (int i = 0; i < 100000; i++)
console.write("asm: ", s1.tostring("x2") + s2.tostring("x2"));
using (managementclass mc = new managementclass("win32_processor"))
", mo.properties["processorid"].value.tostring());}}
console.readkey(false);
}}
Linux下獲取CPUID 硬碟序列號
在很多系統軟體的開發中,需要使用一些系統的唯一性資訊。所以,得到主機的cpuid 硬碟序列號及網絡卡的mac位址,就成個一件很重要的應用。需要的準備知識有 1.gcc的嵌入彙編,具體的gcc嵌入彙編知識,請參考相關手冊 2.ioctl系統呼叫,具體的呼叫方法,請檢視手冊頁 按照網上提供的說明,cpu...
Linux下獲取CPUID 硬碟序列號與MAC位址
在很多系統軟體的開發中,需要使用一些系統的唯一性資訊。所以,得到主機的cpuid 硬碟序列號及網絡卡的mac位址,就成個一件很重要的應用。本人經過一番google即自己的鑽研,基本上實現了這幾個功能。需要的準備知識有 gcc的嵌入彙編,具體的gcc嵌入彙編知識,請參考相關手冊 ioctl系統呼叫,具...
爬蟲之兩種網頁獲取辦法
import requests 將引數字典進行編碼 from urllib import parse 攜帶引數的get請求,攜帶引數的第二種方式 base url 生成引數 qs 引數編碼 專門用來進行編碼,特別是有中文的 params parse.urlencode qs print params...