我向您展示一個小型 WinAPI 原始碼的集合。如果您有任何建議或發現程式碼中的錯誤,請隨時私信我。
目錄
- Dll 注入
- 獲取磁碟大小
- 驅動器磁碟機代號更改器
- 將副檔名與程式關聯
- NtQuerySystemInformation
DLL 注入示例
演示如何將 DLL 注入到程序中。專案包括一個簡單的 DLL 和一個用於測試的 HelloWorld 應用程式。
下載 (CodeBlocks 專案)
獲取磁碟大小
這個簡單的應用程式演示瞭如何使用 DeviceIOControl() 和 IOCTL_DISK_GET_LENGTH_INFO 來獲取磁碟或分割槽大小。
如果您不需要一個完全可用的應用程式,可以使用此函式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
//
// GetDisk or or partition size
// dsk can be \\\\.\\PhysicalDrive0 or \\\\.\\C:
//
uint64_t GetDiskLengthIoctl(const char *dsk)
{
HANDLE hDisk=CreateFile(dsk,GENERIC_READ,FILE_SHARE_VALID_FLAGS,0,OPEN_EXISTING,0,0);
if(hDisk==INVALID_HANDLE_VALUE)
{
cerr<<"Could not open the disk. GetLastError() returned "<<GetLastError()<<endl;
return 0;
}
GET_LENGTH_INFORMATION gli;
DWORD ret;
DeviceIoControl(hDisk,IOCTL_DISK_GET_LENGTH_INFO,0,0,&gli,sizeof(gli),&ret,0);
CloseHandle(hDisk);
return gli.Length.QuadPart;
}
|
下載 (CodeBlocks 專案)
驅動器磁碟機代號更改器
一個簡單的程式,演示瞭如何使用 SetVolumeMountPoint 更改驅動器磁碟機代號
下載 (CodeBlocks 專案)
將副檔名與程式關聯
下載 (CodeBlocks 專案)
NtQuerySystemInformation 示例
.zip 檔案包含三個獨立的專案,演示瞭如何使用 NtQuerySystemInformation() 函式來...
- 獲取所有正在執行的程序的列表
- 顯示有關物理記憶體的一些資訊(頁面大小,物理頁面數)和處理器數量
- 顯示磁碟、序列埠、光碟機的數量
下載 (CodeBlocks 專案)
附件: [CodeInject.zip] [drive_letter_changer.zip] [ext_assoc.zip] [get_disk_size.zip] [nt_query_system_information.zip]