• 86阅读
  • 0回复

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

上一主题 下一主题
离线laibaxiao1
 

发帖
31
金钱
270
威望
270
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 04-26
分区序列号修改工具.rar (643 K) 下载次数:0 :g=z}7!s  
QQ377718625 >gTrui{ ,  
1 求个修改系统分区卷GUID C++源码(编译后能改成功的) M `bEnu  
2 下面内容里面的有问题仅供参考。 &+V|Ldh  
3 执行到下面标记位置程序就秒退了。 vFGFFA/K}N  
#define _CRT_SECURE_NO_WARNINGS `O|PP3S  
#include <windows.h> 4V0j1 k&'  
#include <winternl.h> dzPwlCC%-  
#include <stdio.h> <xQHb^:  
Jri"Toz0  
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_fsinfoclass _,;|,  
^3  '7  
typedef enum _FSINFOCLASS { y9L:2f\  
FileFsVolumeInformation = 1, ^8r4tX  
FileFsLabelInformation, H {3A6fb<  
FileFsSizeInformation, :3Hr: ~  
FileFsDeviceInformation, } J&[Uc  
FileFsAttributeInformation, :TzHI    
FileFsControlInformation, 7'9~Kx&+  
FileFsFullSizeInformation, 6?v)Hb}J%d  
FileFsObjectIdInformation, C@i4[g){  
FileFsDriverPathInformation, }^ j"@{~  
FileFsMaximumInformation nWAx!0G  
} FS_INFORMATION_CLASS, * PFS_INFORMATION_CLASS; !mLY W  
i0-zGEMB.  
typedef NTSTATUS(*FZwSetVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); S+EC!;@Xg  
^}4=pkJ;s  
typedef NTSTATUS(*FZwQueryVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); ]OKs 65  
L5tSS=  
int main(int argc, char* argv[]) 7+vyN^XJ"5  
{ O7z -4r  
const wchar_t* device = L"\\.\c:"; _A%8oY S  
gLef6q{}  
HANDLE h = CreateFileW(device, 0x40000000, 3, 0, 3, 0x80, 0); G&/RJLX|w  
if (h == INVALID_HANDLE_VALUE) return 0; Cp 2$I<T  
printf("handle is %d \n", h); lIj2w;$v  
'rw nAr  
HMODULE m = GetModuleHandleW(L"ntdll.dll"); n/fMq,<8  
if (!m) return 0; P9aGDma  
printf("module is %p \n", m); I?mU_^no  
k6vY/)-S  
FZwSetVolumeInformationFile _ZwSetVolumeInformationFile = (FZwSetVolumeInformationFile)GetProcAddress(m, "ZwSetVolumeInformationFile"); Be( h x  
FZwQueryVolumeInformationFile _ZwQueryVolumeInformationFile = (FZwQueryVolumeInformationFile)GetProcAddress(m, "ZwQueryVolumeInformationFile"); FF"`F8-w>Z  
if (!_ZwSetVolumeInformationFile || !_ZwQueryVolumeInformationFile) return 0; y84= Q  
printf("_ZwSetVolumeInformationFile %p \n", _ZwSetVolumeInformationFile); J `8bh~7  
printf("_ZwQueryVolumeInformationFile %p \n", _ZwQueryVolumeInformationFile); `_{^&W WS  
."m2/Ks7  
NTSTATUS s; wZA(><\  
const int size = 1024 * 10; c`(]j w  
char* buf = new char[size]; \Q+<G-Kb.  
memset(buf, 0, size); ^Pk-<b4}  
IO_STATUS_BLOCK status{ 0 }; Htf|VpzMb  
b^Xq(q>5  
typedef struct _FILE_FS_VOLUME_INFORMATION {  v NJ!d  
    LARGE_INTEGER VolumeCreationTime; :3# t;  
    ULONG VolumeSerialNumber; *VF UC:  
    ULONG VolumeLabelLength; P+Ta|-  
    BOOLEAN SupportsObjects; qh)o44/ $  
    WCHAR VolumeLabel[1]; > ^b6\  
} FILE_FS_VOLUME_INFORMATION, * PFILE_FS_VOLUME_INFORMATION; {- ( B  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsVolumeInformation); 6R+m;'  
PFILE_FS_VOLUME_INFORMATION p1 = (PFILE_FS_VOLUME_INFORMATION)buf; Ol9'ZB|R  
p1->VolumeSerialNumber = 0; pZ,P_?  
p1->VolumeLabel[0] = L'\0'; gL+8fX2G6  
s = _ZwSetVolumeInformationFile(h, &status, p1, size, FileFsVolumeInformation); QDg\GA8|  
printf("%p \n", s); "&ElKy 7j  
$6a55~h|(  
typedef struct _FILE_FS_OBJECTID_INFORMATION { ]_yk,}88d  
    UCHAR ObjectId[16]; p9[J 9D3~  
    UCHAR ExtendedInfo[48]; (bk~,n_  
} FILE_FS_OBJECTID_INFORMATION, * PFILE_FS_OBJECTID_INFORMATION; \?_eQKiZ3  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsObjectIdInformation);//秒退了。************** H *gF>1  
PFILE_FS_OBJECTID_INFORMATION p2 = (PFILE_FS_OBJECTID_INFORMATION)buf; H"H&uA9"  
p2->ObjectId[0] = 55; :b&O{>M]Y  
p2->ObjectId[1] = 55; 4Y[uqn[  
p2->ObjectId[2] = 55; ~97T0{E3  
p2->ObjectId[3] = 55; mV0.9pxS  
p2->ObjectId[4] = 55; Ub8|x]ix  
p2->ObjectId[5] = 55; n)(E 0h  
p2->ObjectId[6] = 55; XO*62 >Ed  
p2->ObjectId[7] = 55; ZCZYgf@  
s = _ZwSetVolumeInformationFile(h, &status, p2, size, FileFsObjectIdInformation);//秒退了。************** ZS@Cd9*  
printf("%p \n", s); !dVth)UV  
4|*H0}HOm  
//typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { U!L<v!$  
//  BOOLEAN DriverInPath; 3sf+ uoV  
//  ULONG   DriverNameLength; >900O4  
//  WCHAR   DriverName[1]; !'()QtvC<  
//} FILE_FS_DRIVER_PATH_INFORMATION, * PFILE_FS_DRIVER_PATH_INFORMATION;  RSLMO8  
//PFILE_FS_DRIVER_PATH_INFORMATION p3 = (PFILE_FS_DRIVER_PATH_INFORMATION)buf; ~7tG %{t%  
//p3->DriverInPath = TRUE; $~<);dYu0  
//p3->DriverNameLength = 0x200; p xrd D7  
//wcscpy(p3->DriverName, L"\\\\?\\Volume{c6708e20-53cd-4265-a031-af74f04ca24b}"); -o\r]24  
//s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsDriverPathInformation); ;=IGl:  
{BBL`tg60  
CloseHandle(h); fD#VI   
system("pause"); [WDtr8L  
return 0; LB|FVNW/S  
}
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.net,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。