• 81阅读
  • 0回复

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

上一主题 下一主题
离线laibaxiao1
 

发帖
31
金钱
270
威望
270
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 04-26
分区序列号修改工具.rar (643 K) 下载次数:0 #;<Y[hR{P  
QQ377718625 KSL`W2}  
1 求个修改系统分区卷GUID C++源码(编译后能改成功的) }\LQ3y"[  
2 下面内容里面的有问题仅供参考。 F!do~Z  
3 执行到下面标记位置程序就秒退了。 W>LR\]Ti@  
#define _CRT_SECURE_NO_WARNINGS ,0k;!YK  
#include <windows.h> E'8;10s  
#include <winternl.h> /O9EQPm(  
#include <stdio.h> = / 8cp  
3a|\dav%  
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_fsinfoclass cnLro  
4I7>f]=)  
typedef enum _FSINFOCLASS { W8<%[-r  
FileFsVolumeInformation = 1, nP$9CA  
FileFsLabelInformation, g=rbPbu  
FileFsSizeInformation, 54/=G(F   
FileFsDeviceInformation, ~5g~;f[4  
FileFsAttributeInformation, saAF+H/=  
FileFsControlInformation, <uJ@:oWG7  
FileFsFullSizeInformation, ])!*_  
FileFsObjectIdInformation, 7 d vnupLh  
FileFsDriverPathInformation, wS*E(IAl  
FileFsMaximumInformation #Dac~>a'  
} FS_INFORMATION_CLASS, * PFS_INFORMATION_CLASS;  @8 6f  
(#'>(t(4  
typedef NTSTATUS(*FZwSetVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); <}LC~B!  
5X+A"X ;C  
typedef NTSTATUS(*FZwQueryVolumeInformationFile)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FS_INFORMATION_CLASS); *`U~?q}  
9VT;ep  
int main(int argc, char* argv[]) Je{ykL?N  
{ o}!PQ#`M  
const wchar_t* device = L"\\.\c:"; a9G8q>h]O  
Xeaj xcop#  
HANDLE h = CreateFileW(device, 0x40000000, 3, 0, 3, 0x80, 0); Ls%MGs9PI  
if (h == INVALID_HANDLE_VALUE) return 0; T;uX4,|(  
printf("handle is %d \n", h); F5Va+z,jg  
u4j5w  
HMODULE m = GetModuleHandleW(L"ntdll.dll"); B1STGL`nK  
if (!m) return 0; 7Ix973^  
printf("module is %p \n", m); 6wxs1G  
f5r0\7y0  
FZwSetVolumeInformationFile _ZwSetVolumeInformationFile = (FZwSetVolumeInformationFile)GetProcAddress(m, "ZwSetVolumeInformationFile"); Z}QB. $&  
FZwQueryVolumeInformationFile _ZwQueryVolumeInformationFile = (FZwQueryVolumeInformationFile)GetProcAddress(m, "ZwQueryVolumeInformationFile"); :Sma`U&  
if (!_ZwSetVolumeInformationFile || !_ZwQueryVolumeInformationFile) return 0; >V~E]P%@  
printf("_ZwSetVolumeInformationFile %p \n", _ZwSetVolumeInformationFile); |^aKs#va  
printf("_ZwQueryVolumeInformationFile %p \n", _ZwQueryVolumeInformationFile); AR=]=8  
z:;CX@)*  
NTSTATUS s; $^ P0F9~0  
const int size = 1024 * 10; VE24ToI?W"  
char* buf = new char[size]; MJvp6n  
memset(buf, 0, size); c|%6e(g"L  
IO_STATUS_BLOCK status{ 0 }; ^s=8!=A(  
C]#,+q*  
typedef struct _FILE_FS_VOLUME_INFORMATION { RZ7@cQY  
    LARGE_INTEGER VolumeCreationTime; >/|*DI-HJ  
    ULONG VolumeSerialNumber; :r[`.`  
    ULONG VolumeLabelLength; OY d !v`<  
    BOOLEAN SupportsObjects; ]oxZ77ciL  
    WCHAR VolumeLabel[1]; putrSSL}  
} FILE_FS_VOLUME_INFORMATION, * PFILE_FS_VOLUME_INFORMATION; :>*7=q=  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsVolumeInformation); r,udO,Yi=c  
PFILE_FS_VOLUME_INFORMATION p1 = (PFILE_FS_VOLUME_INFORMATION)buf; ;fJ.8C  
p1->VolumeSerialNumber = 0; /NlGFO*Z  
p1->VolumeLabel[0] = L'\0'; q7!{?\T%  
s = _ZwSetVolumeInformationFile(h, &status, p1, size, FileFsVolumeInformation); OH88n69  
printf("%p \n", s); Z7#+pPt!  
N0lC0 N?_J  
typedef struct _FILE_FS_OBJECTID_INFORMATION { Zh,71Umz  
    UCHAR ObjectId[16]; ,'+kBZOv  
    UCHAR ExtendedInfo[48]; : 'c&,oLY  
} FILE_FS_OBJECTID_INFORMATION, * PFILE_FS_OBJECTID_INFORMATION; xmG<]WF>E  
s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsObjectIdInformation);//秒退了。************** T |p"0b A  
PFILE_FS_OBJECTID_INFORMATION p2 = (PFILE_FS_OBJECTID_INFORMATION)buf; ]q.0!lh+WL  
p2->ObjectId[0] = 55; ~`/V(r;o  
p2->ObjectId[1] = 55; s>en  
p2->ObjectId[2] = 55; xmX 4qtAL  
p2->ObjectId[3] = 55; p[-O( 3Y  
p2->ObjectId[4] = 55; g*Phv|kI  
p2->ObjectId[5] = 55; K8~d^G  
p2->ObjectId[6] = 55; zTp"AuNHN  
p2->ObjectId[7] = 55; OPi0~s  
s = _ZwSetVolumeInformationFile(h, &status, p2, size, FileFsObjectIdInformation);//秒退了。************** K P"+e:a%  
printf("%p \n", s); j6YOKJX  
;,TFr}p`  
//typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { 74u&%Rj  
//  BOOLEAN DriverInPath; Si7*& dw=  
//  ULONG   DriverNameLength; nEfK53i_  
//  WCHAR   DriverName[1]; H[gWGbPq7  
//} FILE_FS_DRIVER_PATH_INFORMATION, * PFILE_FS_DRIVER_PATH_INFORMATION; rUl+  
//PFILE_FS_DRIVER_PATH_INFORMATION p3 = (PFILE_FS_DRIVER_PATH_INFORMATION)buf; U(Zq= M  
//p3->DriverInPath = TRUE; 9z0p5)]n>  
//p3->DriverNameLength = 0x200; =I4lL] >  
//wcscpy(p3->DriverName, L"\\\\?\\Volume{c6708e20-53cd-4265-a031-af74f04ca24b}"); y2v^-q3  
//s = _ZwQueryVolumeInformationFile(h, &status, buf, size, FileFsDriverPathInformation); 4JEpl'5^Q  
pJ=#zsE0  
CloseHandle(h); nNm`Hfi  
system("pause"); #QPjk R|\  
return 0; ,bd_:  
}
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.net,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。