您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统安全实验及代码
操作系统系统安全实验实验一获取系统信息1.实验目的:了解API函数获取心态信息方法熟悉VC程序设计2.实验内容:利用API函数,获取系统软、硬件信息。主要包括硬件方面:处理机信息(架构、级别、数量、版本),内存信息(当前内存大小、可用内存大小、虚拟内存大小),磁盘信息(磁盘卷标、序列号、总空间、可用空间等);软件方面:操作系统信息(主版本号、次版本号、补丁版本号等),文件信息(文件系统类型、操作系统目录、可执行文件目录)。3.参见参考代码。①getmemInf.cpp#includewindows.h#includeiostreamusingnamespacestd;intmain(intargc,char**argv){MEMORYSTATUSmem;ZeroMemory(&mem,sizeof(mem));GlobalMemoryStatus(&mem);mem.dwLength=sizeof(mem);cout物理内存:mem.dwTotalPhys/1024/1024endl;cout剩余内存:mem.dwAvailPhys/1024/1024endl;cout虚拟内存:mem.dwTotalVirtual/1024/1024endl;cout剩余虚拟内存:mem.dwAvailVirtual/1024/1024endl;system(PAUSE);return0;}②getOSinf.cpp#includewindows.h#includeiostream#pragmawarning(disable:4996)usingnamespacestd;intmain(intargc,char**argv){OSVERSIONINFOEXos;boolret;os.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);ret=GetVersionEx((OSVERSIONINFO*)&os);//NotOSVERSIONINFOEXif(ret==false){coutGetVersionExerror.endl;return-1;}cout主版本号:os.dwMajorVersionendl;cout次版本号:os.dwMinorVersionendl;cout编译次数:os.dwBuildNumberendl;cout平台类型:os.dwPlatformIdendl;//ver_platform_*cout产品类型:os.wProductTypeendl;//ver_nt_*cout程序组掩码os.wSuiteMaskendl;//ver_suite_*cout补丁主版本:os.wServicePackMajorendl;cout补丁次版本:os.wServicePackMinorendl;system(PAUSE);}③getSysinf.cpp#includewindows.h#includeiostream#includebitsetusingnamespacestd;typedefstructMyVolumnInfo{TCHARdiskRootPath[256];TCHARvolNameBuf[256];DWORDvolSize;DWORDvolSerialNumber;DWORDmaxComponetLength;DWORDfileSystemFlag;TCHARfileSystemName[256];DWORDfileSystemNameSize;}MYVOLUMNINFO;intmain(intargc,char**argv){TCHARwinDir[256];TCHARsysDir[256];TCHARdiskName[256];//不可小于256TCHARdiskLogicName[256];DWORDdiskString;LPWSTRszDiskName;MYVOLUMNINFOvolInfo;UINT64diskAvail,diskTotal,diskFree;SYSTEM_INFOsysInf;ZeroMemory(winDir,sizeof(winDir));ZeroMemory(sysDir,sizeof(sysDir));ZeroMemory(diskName,sizeof(diskName));ZeroMemory(&volInfo,sizeof(volInfo));ZeroMemory(diskLogicName,sizeof(diskLogicName));ZeroMemory(&sysInf,sizeof(sysInf));GetSystemInfo(&sysInf);GetWindowsDirectory(winDir,sizeof(winDir));GetSystemDirectory(sysDir,sizeof(sysDir));wcout处理器架构:sysInf.wProcessorArchitectureendl;wcout处理器类型:sysInf.dwProcessorTypeendl;wcout处理器数量:sysInf.dwNumberOfProcessorsendl;wcout处理器级别:sysInf.wProcessorLevelendl;wcout处理器版本:sysInf.wProcessorRevisionendl;wcout处理器掩码:sysInf.dwActiveProcessorMaskendl;//3=11B,表示两个都用wcout页面大小:sysInf.dwPageSizeendl;wcout虚拟内存颗粒:sysInf.dwAllocationGranularityendl;wcout应用程序最小地址:sysInf.lpMinimumApplicationAddressendl;wcout应用程序最大地址:sysInf.lpMaximumApplicationAddressendl;wcoutWindows:winDirendl;wcoutSystem:sysDirendl;diskString=GetLogicalDrives();coutbitset32(diskString)endl;GetLogicalDriveStrings(sizeof(diskLogicName),diskLogicName);szDiskName=(LPWSTR)diskLogicName;while(*szDiskName!='\0\0'){wcoutszDiskNameendl;GetVolumeInformation(szDiskName,volInfo.volNameBuf,255,&volInfo.volSerialNumber,\&volInfo.maxComponetLength,&volInfo.fileSystemFlag,volInfo.fileSystemName,255);wcout卷标名称:volInfo.volNameBufendl;wcout磁盘序列号:volInfo.volSerialNumberendl;wcout最大文件名长度:volInfo.maxComponetLengthendl;wcout文件系统标志:volInfo.fileSystemFlagendl;wcout文件系统名称:volInfo.fileSystemNameendl;GetDiskFreeSpaceEx(szDiskName,(PULARGE_INTEGER)&diskAvail,(PULARGE_INTEGER)&diskTotal,\(PULARGE_INTEGER)&diskFree);wcout可用空间:diskAvail/1024/1024MBendl;wcout总空间:diskTotal/1024/1024MBendl;wcout剩余空间:diskFree/1024/1024MBendl;szDiskName=szDiskName+lstrlen(szDiskName)+1;ZeroMemory(&volInfo,sizeof(volInfo));}system(PAUSE);return0;}实验二系统注册表操作实验目的:了解注册表基本常识了解注册表项目含义利用API函数添加、删除、修改注册表实验内容1.编写代码,打开指定注册表项目,获得项目取值。2.编写代码,修改注册表项目取值。3.编写代码,为指定程序添加自启动功能。实验步骤:参见代码。regedit.cpp#includewindows.h#includeiostreamusingnamespacestd;intmain(intargc,char**argv){HKEYkeyRoot;HKEYkeyCur;TCHARcsPath[512]={0};LONGlRet;TCHARtsValue[128]={0};TCHARtsGetValue[128]={0};DWORDdwValueSize;lRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,NULL,0,KEY_ALL_ACCESS,&keyCur);if(lRet!=ERROR_SUCCESS){wcoutTEXT(RegOpenKeyExerror.)endl;wcoutGetLastError()endl;system(PAUSE);exit(0);}wcoutkeyCurendl;lRet=RegCreateKey(keyCur,//创建的起始键值TEXT(software\\AddSubKey),//路径表示的添加子键名&keyCur);if(lRet!=ERROR_SUCCESS){wcoutTEXT(RegCreateKeyExerror.)endl;wcoutGetLastError()endl;system(PAUSE);exit(0);}lstrcpy(tsValue,TEXT(D:\\test\\test.txt));//项目取值lRet=RegSetValueEx(keyCur,//添加项目的键路径TEXT(PATH),//添加的子键项目NULL,//保留值REG_SZ,//数据类型(LPBYTE)tsValue,//项目取值sizeof(tsValue));//取值大小if(lRet!=ERROR_SUCCESS){wcoutTEXT(RegSetValueExerror.)endl;wcoutGetLastError()endl;system(PAUSE);exit(0);}wcoutkeyCurendl;system(PAUSE);lRet=RegGetValue(keyCur,NULL,TEXT(PATH),RRF_RT_ANY,NULL,(LPBYTE)tsGetValue,&dwValueSize);if(lRet!=ERROR_SUCCESS){wcoutTEXT(RegGetValueerror.)endl;wcoutGetLastError()endl;system(PAUSE);exit(0);}wcouttsGetValueendl;lRet=RegDeleteKeyValue(keyCur,//删除键NULL,//键扩展路径TEXT(PATH));//项目名称wcoutkeyCur
本文标题:操作系统安全实验及代码
链接地址:https://www.777doc.com/doc-2381181 .html