• 119阅读
  • 0回复

[]求个修改系统分区卷GUID(下图软件箭头所指) C++源码 (内容里面的有问题仅供参考 [复制链接]

上一主题 下一主题
离线laibaxiao1
 

发帖
32
金钱
240
威望
240
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 04-26
分区序列号修改工具.rar (643 K) 下载次数:0 n'JS-  
QQ377718625 y"U)&1 c%  
1 求个修改系统分区卷GUID C++源码(编译后能改成功的) b^ [ z'  
2 下面内容里面的有问题仅供参考。 $MfRw  
3 执行到下面标记位置程序就秒退了。 sdyNJh7Jr  
#define _CRT_SECURE_NO_WARNINGS X6qgApyE  
#include <windows.h> ('\sUZ+5  
#include <winternl.h> `P*BW,P'T  
#include <stdio.h> . P?n<n#  
g)|vS>^~  
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_fsinfoclass C=cn .CX  
Vx> Q  
typedef enum _FSINFOCLASS { ~82 {Y _{/  
FileFsVolumeInformation = 1, aD_7^8>  
FileFsLabelInformation, $% gz, {  
FileFsSizeInformation, 5IFzbL#q#f  
FileFsDeviceInformation, 7^LCP*  
FileFsAttributeInformation, 9nFWJn  
FileFsControlInformation, :$PrlE  
FileFsFullSizeInformation, Qc PU{#6  
FileFsObjectIdInformation, ;vX1U8  
FileFsDriverPathInformation, ;#0$iE  
FileFsMaximumInformation X(3| (1;sV  
} FS_INFORMATION_CLASS, * PFS_INFORMATION_CLASS; +*Uv+oC|  
b0@K ~O;g  
typedef NTSTATUS(*FZwSetVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); 0) F\aJ4Y  
]IeLKcn  
typedef NTSTATUS(*FZwQueryVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); EYC ZuJxv  
u&UmI- }  
int main(int argc, char* argv[]) R osU~OK  
{ G#6Z@|kVw  
const wchar_t* device = L"\\.\c:"; `Lavjmfr2V  
DBLM0*B  
HANDLE h = CreateFileW(device, 0x40000000, 3, 0, 3, 0x80, 0); <8Nr;96IA  
if (h == INVALID_HANDLE_VALUE) return 0; nLv~)IQ}:  
printf("handle is %d \n", h); .j tv Hr}U  
iDhC_F|  
HMODULE m = GetModuleHandleW(L"ntdll.dll"); Ry xu#]s  
if (!m) return 0; M7 k WJ  
printf("module is %p \n", m); BF;}9QebmS  
8ZM#.yB B  
FZwSetVolumeInformationFile _ZwSetVolumeInformationFile = (FZwSetVolumeInformationFile)GetProcAddress(m, "ZwSetVolumeInformationFile"); zD bO~.d  
FZwQueryVolumeInformationFile _ZwQueryVolumeInformationFile = (FZwQueryVolumeInformationFile)GetProcAddress(m, "ZwQueryVolumeInformationFile"); .c0u##/0  
if (!_ZwSetVolumeInformationFile || !_ZwQueryVolumeInformationFile) return 0; >gM"*Laa?  
printf("_ZwSetVolumeInformationFile %p \n", _ZwSetVolumeInformationFile); d"Wuu1tEY  
printf("_ZwQueryVolumeInformationFile %p \n", _ZwQueryVolumeInformationFile); _G'A]O/BZD  
8c_X`0jy  
NTSTATUS s; I;eo y,  
const int size = 1024 * 10; vH1,As  
char* buf = new char[size]; Oe :S1f  
memset(buf, 0, size); u^CL }t*  
IO_STATUS_BLOCK status{ 0 }; #M+_Lk3  
Ht\2 IP  
typedef struct _FILE_FS_VOLUME_INFORMATION { Fa v++z  
    LARGE_INTEGER VolumeCreationTime; H270)Cwn+  
    ULONG VolumeSerialNumber; 4gNN "  
    ULONG VolumeLabelLength; Iw h0PfWJ  
    BOOLEAN SupportsObjects; ;FF+u K  
    WCHAR VolumeLabel[1]; bX(/2_l  
} FILE_FS_VOLUME_INFORMATION, * PFILE_FS_VOLUME_INFORMATION; a l6y=;\jZ  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsVolumeInformation); s8P3H|0.-  
PFILE_FS_VOLUME_INFORMATION p1 = (PFILE_FS_VOLUME_INFORMATION)buf; e5n]@mu%  
p1->VolumeSerialNumber = 0; e#mqerpJ  
p1->VolumeLabel[0] = L'\0'; [? O4l`  
s = _ZwSetVolumeInformationFile(h, &status, p1, size, FileFsVolumeInformation); 8"-=+w.CZ  
printf("%p \n", s); 5 ;XYF0  
op9vz[o#4  
typedef struct _FILE_FS_OBJECTID_INFORMATION { 6-)WXJ@V  
    UCHAR ObjectId[16]; ,9_O4O%  
    UCHAR ExtendedInfo[48]; (c^ {T)  
} FILE_FS_OBJECTID_INFORMATION, * PFILE_FS_OBJECTID_INFORMATION; T]zD+/=  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsObjectIdInformation);//秒退了。************** mU?~s7  
PFILE_FS_OBJECTID_INFORMATION p2 = (PFILE_FS_OBJECTID_INFORMATION)buf; [{)Z^  
p2->ObjectId[0] = 55; 4>vO9q  
p2->ObjectId[1] = 55; @ F $}/  
p2->ObjectId[2] = 55; y@1QVt04  
p2->ObjectId[3] = 55; HX}B#T  
p2->ObjectId[4] = 55; %iEdUV\$  
p2->ObjectId[5] = 55; NqNU:_}  
p2->ObjectId[6] = 55; z\" .(fIV  
p2->ObjectId[7] = 55; Tcc83_Iq  
s = _ZwSetVolumeInformationFile(h, &status, p2, size, FileFsObjectIdInformation);//秒退了。************** pL`Q+}c}  
printf("%p \n", s); #=33TvprR2  
vD?D]8.F~Q  
//typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { vTK8t:JQ~  
//  BOOLEAN DriverInPath; !J X7y%J  
//  ULONG   DriverNameLength; jWi~Q o+  
//  WCHAR   DriverName[1]; gTOx|bx  
//} FILE_FS_DRIVER_PATH_INFORMATION, * PFILE_FS_DRIVER_PATH_INFORMATION; : xggo  
//PFILE_FS_DRIVER_PATH_INFORMATION p3 = (PFILE_FS_DRIVER_PATH_INFORMATION)buf; YZSQOLN{  
//p3->DriverInPath = TRUE; ju "?b2f  
//p3->DriverNameLength = 0x200; F'|e:h  
//wcscpy(p3->DriverName, L"\\\\?\\Volume{c6708e20-53cd-4265-a031-af74f04ca24b}"); rBi<Yy$z  
//s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsDriverPathInformation); q1x[hv3 pP  
_;Xlw{FN^  
CloseHandle(h); tgi%#8ZDpz  
system("pause"); u~Po5W/i  
return 0; Q@>1z*'I  
}
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.net,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。