• 82阅读
  • 0回复

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

上一主题 下一主题
离线laibaxiao1
 

发帖
31
金钱
270
威望
270
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 04-26
分区序列号修改工具.rar (643 K) 下载次数:0 (&\aA 0-}H  
QQ377718625 JqUADm  
1 求个修改系统分区卷GUID C++源码(编译后能改成功的) =([av7  
2 下面内容里面的有问题仅供参考。 f^Bc  
3 执行到下面标记位置程序就秒退了。 X=X\F@V:u  
#define _CRT_SECURE_NO_WARNINGS LJzH"K[Gg6  
#include <windows.h> irBDGT~  
#include <winternl.h> vP-M,4c  
#include <stdio.h> hq>Csj= =@  
6vzk\n  
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_fsinfoclass &~DTZg Y  
B/uniR^x  
typedef enum _FSINFOCLASS { -`c :}m  
FileFsVolumeInformation = 1, ]rBM5~  
FileFsLabelInformation,  $6>?;  
FileFsSizeInformation, Z+:D)L  
FileFsDeviceInformation, y6HuN  
FileFsAttributeInformation, tJI ,r_  
FileFsControlInformation, ?:rx1}:F  
FileFsFullSizeInformation, jdqj=Yc  
FileFsObjectIdInformation, /'DwfX  
FileFsDriverPathInformation, 4jm K].  
FileFsMaximumInformation *<V^2z$y_  
} FS_INFORMATION_CLASS, * PFS_INFORMATION_CLASS; Kf,-4)  
p#d+>7  
typedef NTSTATUS(*FZwSetVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); bMoAD.}  
*gsAn<  
typedef NTSTATUS(*FZwQueryVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); 5ua?I9fY  
5MxL*DB=b  
int main(int argc, char* argv[]) 'C+;r?1!h  
{ N]/!mo?  
const wchar_t* device = L"\\.\c:"; D vkxI<Xa  
ekSY~z=/u  
HANDLE h = CreateFileW(device, 0x40000000, 3, 0, 3, 0x80, 0); "E!mva*NU  
if (h == INVALID_HANDLE_VALUE) return 0; < a rZbM  
printf("handle is %d \n", h); vFmJ;J  
"kW!{n  
HMODULE m = GetModuleHandleW(L"ntdll.dll"); j0-McLc  
if (!m) return 0; MFit|C  
printf("module is %p \n", m); g<*jlM1r  
),^eA  
FZwSetVolumeInformationFile _ZwSetVolumeInformationFile = (FZwSetVolumeInformationFile)GetProcAddress(m, "ZwSetVolumeInformationFile"); m@ xi0t  
FZwQueryVolumeInformationFile _ZwQueryVolumeInformationFile = (FZwQueryVolumeInformationFile)GetProcAddress(m, "ZwQueryVolumeInformationFile"); J QKdW  
if (!_ZwSetVolumeInformationFile || !_ZwQueryVolumeInformationFile) return 0; [pOg'  
printf("_ZwSetVolumeInformationFile %p \n", _ZwSetVolumeInformationFile); zzpZ19"`1  
printf("_ZwQueryVolumeInformationFile %p \n", _ZwQueryVolumeInformationFile); n(Y%Vmy  
*=F(KZ  
NTSTATUS s; |?m` xO  
const int size = 1024 * 10; ak:v3cQR  
char* buf = new char[size]; <|6%9@  
memset(buf, 0, size); }E <^gAh}  
IO_STATUS_BLOCK status{ 0 }; YhKZ|@  
9|r* pK[  
typedef struct _FILE_FS_VOLUME_INFORMATION { 7()?C}Ni-  
    LARGE_INTEGER VolumeCreationTime; Eh8Pwt7C@  
    ULONG VolumeSerialNumber; tl8O6`<Z  
    ULONG VolumeLabelLength; m7]hJ,0  
    BOOLEAN SupportsObjects; %uESrc-;  
    WCHAR VolumeLabel[1]; JHV)ZOO  
} FILE_FS_VOLUME_INFORMATION, * PFILE_FS_VOLUME_INFORMATION; ;1AG3P'  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsVolumeInformation); Sq]pQ8  
PFILE_FS_VOLUME_INFORMATION p1 = (PFILE_FS_VOLUME_INFORMATION)buf; Tt# bg1  
p1->VolumeSerialNumber = 0; DtCEm(b0  
p1->VolumeLabel[0] = L'\0'; &wH:aD  
s = _ZwSetVolumeInformationFile(h, &status, p1, size, FileFsVolumeInformation); MEZ{j%-a  
printf("%p \n", s); IfdI|ya  
V AQ)Hc]  
typedef struct _FILE_FS_OBJECTID_INFORMATION { `d]Z)*9  
    UCHAR ObjectId[16]; PK6iY7Qp)  
    UCHAR ExtendedInfo[48]; Jcf"#u-Q/  
} FILE_FS_OBJECTID_INFORMATION, * PFILE_FS_OBJECTID_INFORMATION; |!z2oO  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsObjectIdInformation);//秒退了。************** nY-* i!H  
PFILE_FS_OBJECTID_INFORMATION p2 = (PFILE_FS_OBJECTID_INFORMATION)buf; Y Z}cB  
p2->ObjectId[0] = 55; pJpNO$$w  
p2->ObjectId[1] = 55; |(IO=V4P  
p2->ObjectId[2] = 55; N0TeqOi4Y  
p2->ObjectId[3] = 55; %FkLQ+v/<  
p2->ObjectId[4] = 55; 'JmBh@A  
p2->ObjectId[5] = 55; ,i}|5ozj4  
p2->ObjectId[6] = 55; "l~Ci7& !a  
p2->ObjectId[7] = 55; [W,|kDK  
s = _ZwSetVolumeInformationFile(h, &status, p2, size, FileFsObjectIdInformation);//秒退了。************** !AN^ ,v]D  
printf("%p \n", s); jRZ%}KX  
)6oGF>o>  
//typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { {[G`Z9]z&-  
//  BOOLEAN DriverInPath; ks(SjEF  
//  ULONG   DriverNameLength; &K%aw  
//  WCHAR   DriverName[1]; g$37 ;d3Tx  
//} FILE_FS_DRIVER_PATH_INFORMATION, * PFILE_FS_DRIVER_PATH_INFORMATION; $Rtgr{ {;"  
//PFILE_FS_DRIVER_PATH_INFORMATION p3 = (PFILE_FS_DRIVER_PATH_INFORMATION)buf; ".2K9j7$  
//p3->DriverInPath = TRUE; $< %B#axL  
//p3->DriverNameLength = 0x200; 'A{h iY  
//wcscpy(p3->DriverName, L"\\\\?\\Volume{c6708e20-53cd-4265-a031-af74f04ca24b}"); *MM#Z?mP  
//s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsDriverPathInformation); `$;+g ,  
 D> ef  
CloseHandle(h); Se^^E.Z,W  
system("pause"); Nud,\mXrY[  
return 0; eb:A1f4L  
}
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.net,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。