• 87阅读
  • 0回复

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

上一主题 下一主题
离线laibaxiao1
 

发帖
31
金钱
270
威望
270
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 04-26
分区序列号修改工具.rar (643 K) 下载次数:0 G"J 8i|~  
QQ377718625 m,5m'9 dj  
1 求个修改系统分区卷GUID C++源码(编译后能改成功的) abVEi[nP  
2 下面内容里面的有问题仅供参考。 QeQwmI  
3 执行到下面标记位置程序就秒退了。 }uD*\.  
#define _CRT_SECURE_NO_WARNINGS L$Xkx03lz>  
#include <windows.h> j`u2\ ;  
#include <winternl.h> K_j*9@  
#include <stdio.h> 2e,cE6r  
 1A]   
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_fsinfoclass KVC18"|f  
&4t=Y`]SL  
typedef enum _FSINFOCLASS { G #$r)S  
FileFsVolumeInformation = 1, Y qKQm+G  
FileFsLabelInformation, 7Or?$  
FileFsSizeInformation, nFwg pT  
FileFsDeviceInformation, )CH\]>-FO  
FileFsAttributeInformation, OS~Z@'Eg  
FileFsControlInformation, AGlFbc(L  
FileFsFullSizeInformation,  m 2%  
FileFsObjectIdInformation, !':y8(Ou  
FileFsDriverPathInformation, 'cN3Vv k  
FileFsMaximumInformation h^zcM_  
} FS_INFORMATION_CLASS, * PFS_INFORMATION_CLASS; Ta8lc %0w3  
],<pZ1V;  
typedef NTSTATUS(*FZwSetVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); T~l Hm  
TY+Rol;!  
typedef NTSTATUS(*FZwQueryVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); uMFV^&ZF  
xs)SKG*  
int main(int argc, char* argv[]) /z1-4:^`A[  
{ skLr6Cs|  
const wchar_t* device = L"\\.\c:"; q\s>Oe6$  
_P_R`A)"  
HANDLE h = CreateFileW(device, 0x40000000, 3, 0, 3, 0x80, 0); K?S5C8  
if (h == INVALID_HANDLE_VALUE) return 0; Wsw/ D  
printf("handle is %d \n", h); hs)_h^P   
'8^>Z.~V  
HMODULE m = GetModuleHandleW(L"ntdll.dll"); 0d,&)  
if (!m) return 0; > W^"*B  
printf("module is %p \n", m); %Bnn\{Az  
#9(iu S+BU  
FZwSetVolumeInformationFile _ZwSetVolumeInformationFile = (FZwSetVolumeInformationFile)GetProcAddress(m, "ZwSetVolumeInformationFile"); wx/*un%2  
FZwQueryVolumeInformationFile _ZwQueryVolumeInformationFile = (FZwQueryVolumeInformationFile)GetProcAddress(m, "ZwQueryVolumeInformationFile"); UnTvot6~  
if (!_ZwSetVolumeInformationFile || !_ZwQueryVolumeInformationFile) return 0; R"`<ZY6(Ou  
printf("_ZwSetVolumeInformationFile %p \n", _ZwSetVolumeInformationFile); Cj)*JZV G  
printf("_ZwQueryVolumeInformationFile %p \n", _ZwQueryVolumeInformationFile); +o 6 "Z)  
@oRo6Y<-  
NTSTATUS s; (Ixmg=C6y  
const int size = 1024 * 10; t%s(xz#1  
char* buf = new char[size]; X5)].[d  
memset(buf, 0, size); K}dvXO@=|c  
IO_STATUS_BLOCK status{ 0 }; Coe%R(x5  
G{'`L)~3N  
typedef struct _FILE_FS_VOLUME_INFORMATION { =6, w~|W  
    LARGE_INTEGER VolumeCreationTime; ]1 bNcq2I  
    ULONG VolumeSerialNumber; (ap,3$ hS  
    ULONG VolumeLabelLength; U)S!@ 2(4  
    BOOLEAN SupportsObjects; /a-OB U  
    WCHAR VolumeLabel[1]; " V4ru&a  
} FILE_FS_VOLUME_INFORMATION, * PFILE_FS_VOLUME_INFORMATION; G/Yqvu,2!  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsVolumeInformation); 3r2e_?m  
PFILE_FS_VOLUME_INFORMATION p1 = (PFILE_FS_VOLUME_INFORMATION)buf; ^hwTnW9Z1:  
p1->VolumeSerialNumber = 0; OLJ|gunA#  
p1->VolumeLabel[0] = L'\0'; r[&/* ~xL  
s = _ZwSetVolumeInformationFile(h, &status, p1, size, FileFsVolumeInformation); dJ,,yA*  
printf("%p \n", s); 35#"]l"  
w2]]##J  
typedef struct _FILE_FS_OBJECTID_INFORMATION { @ ojV8  
    UCHAR ObjectId[16]; /pgn?e'lk  
    UCHAR ExtendedInfo[48]; D89 (u.h  
} FILE_FS_OBJECTID_INFORMATION, * PFILE_FS_OBJECTID_INFORMATION; /n1H; ~f]  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsObjectIdInformation);//秒退了。************** -[A=\]RfJ  
PFILE_FS_OBJECTID_INFORMATION p2 = (PFILE_FS_OBJECTID_INFORMATION)buf; YLNJ4nE  
p2->ObjectId[0] = 55; *edhJUT  
p2->ObjectId[1] = 55; eBl B0P  
p2->ObjectId[2] = 55; 2$> <rB  
p2->ObjectId[3] = 55; Z&Z= 24q_  
p2->ObjectId[4] = 55; n xx&aq(._  
p2->ObjectId[5] = 55; ^' b[#DG>F  
p2->ObjectId[6] = 55; 'CjcFP  
p2->ObjectId[7] = 55; Z2{G{]EV(  
s = _ZwSetVolumeInformationFile(h, &status, p2, size, FileFsObjectIdInformation);//秒退了。************** lDtl6r/  
printf("%p \n", s); 3Yf!H-(\uB  
,6T3:qkkvF  
//typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { ";/,FUJJ  
//  BOOLEAN DriverInPath; VL@eR9}9K  
//  ULONG   DriverNameLength; 6  8a  
//  WCHAR   DriverName[1]; |("zW7g  
//} FILE_FS_DRIVER_PATH_INFORMATION, * PFILE_FS_DRIVER_PATH_INFORMATION; "xMnD(p  
//PFILE_FS_DRIVER_PATH_INFORMATION p3 = (PFILE_FS_DRIVER_PATH_INFORMATION)buf; }FAO.  
//p3->DriverInPath = TRUE; dj:6c@n  
//p3->DriverNameLength = 0x200; p M_oIH'8:  
//wcscpy(p3->DriverName, L"\\\\?\\Volume{c6708e20-53cd-4265-a031-af74f04ca24b}"); 5PT*b}g@  
//s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsDriverPathInformation); UV)!zgP  
$tca: b}Mk  
CloseHandle(h); |D[4 G6&  
system("pause"); IaYy5Rw  
return 0; a.G;s2>  
}
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.net,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。