#include "Http.hpp" #include #include #include #include #include #include #include #include #pragma comment(lib, "urlmon.lib") //http://www.sym101.com/Symbols/QueryModuleStruct?ModuleName=ntkrnlmp.pdb&Guid=F55005B80C686C739E763E6CF2559D9F&Agent=1&StructName=_EPROCESS&FildName=ActiveProcessLinks #include "_helper.h" using namespace std; /*预定义缓存的文件列表*/ auto syspath = { "C:\\Windows\\System32\\hidclass.sys", "C:\\Windows\\System32\\hidparse.sys", "C:\\Windows\\System32\\hidusb.sys", "C:\\Windows\\System32\\win32k.sys", "C:\\Windows\\System32\\win32kbase.sys", "C:\\Windows\\System32\\win32kfull.sys", "C:\\Windows\\System32\\win32kns.sys", "C:\\Windows\\System32\\drivers\\1394ohci.sys", "C:\\Windows\\System32\\drivers\\3ware.sys", "C:\\Windows\\System32\\drivers\\acpi.sys", "C:\\Windows\\System32\\drivers\\AcpiDev.sys", "C:\\Windows\\System32\\drivers\\acpiex.sys", "C:\\Windows\\System32\\drivers\\acpipagr.sys", "C:\\Windows\\System32\\drivers\\acpipmi.sys", "C:\\Windows\\System32\\drivers\\acpitime.sys", "C:\\Windows\\System32\\drivers\\Acx01000.sys", "C:\\Windows\\System32\\drivers\\adp80xx.sys", "C:\\Windows\\System32\\drivers\\afd.sys", "C:\\Windows\\System32\\drivers\\afunix.sys", "C:\\Windows\\System32\\drivers\\agilevpn.sys", "C:\\Windows\\System32\\drivers\\ahcache.sys", "C:\\Windows\\System32\\drivers\\amdgpio2.sys", "C:\\Windows\\System32\\drivers\\amdi2c.sys", "C:\\Windows\\System32\\drivers\\amdk8.sys", "C:\\Windows\\System32\\drivers\\amdppm.sys", "C:\\Windows\\System32\\drivers\\amdsata.sys", "C:\\Windows\\System32\\drivers\\amdsbs.sys", "C:\\Windows\\System32\\drivers\\amdxata.sys", "C:\\Windows\\System32\\drivers\\appid.sys", "C:\\Windows\\System32\\drivers\\AppleSSD.sys", "C:\\Windows\\System32\\drivers\\applockerfltr.sys", "C:\\Windows\\System32\\drivers\\arcsas.sys", "C:\\Windows\\System32\\drivers\\asyncmac.sys", "C:\\Windows\\System32\\drivers\\atapi.sys", "C:\\Windows\\System32\\drivers\\ataport.sys", "C:\\Windows\\System32\\drivers\\bam.sys", "C:\\Windows\\System32\\drivers\\battc.sys", "C:\\Windows\\System32\\drivers\\bcmfn2.sys", "C:\\Windows\\System32\\drivers\\beep.sys", "C:\\Windows\\System32\\drivers\\bindflt.sys", "C:\\Windows\\System32\\drivers\\bowser.sys", "C:\\Windows\\System32\\drivers\\bridge.sys", "C:\\Windows\\System32\\drivers\\BtaMPM.sys", "C:\\Windows\\System32\\drivers\\BthA2dp.sys", "C:\\Windows\\System32\\drivers\\bthenum.sys", "C:\\Windows\\System32\\drivers\\BthHfAud.sys", "C:\\Windows\\System32\\drivers\\BthHfEnum.sys", "C:\\Windows\\System32\\drivers\\BthMini.SYS", "C:\\Windows\\System32\\drivers\\bthmodem.sys", "C:\\Windows\\System32\\drivers\\bthpan.sys", "C:\\Windows\\System32\\drivers\\bthport.sys", "C:\\Windows\\System32\\drivers\\BTHUSB.SYS", "C:\\Windows\\System32\\drivers\\bttflt.sys", "C:\\Windows\\System32\\drivers\\buttonconverter.sys", "C:\\Windows\\System32\\drivers\\bxvbda.sys", "C:\\Windows\\System32\\drivers\\CAD.sys", "C:\\Windows\\System32\\drivers\\cdfs.sys", "C:\\Windows\\System32\\drivers\\cdrom.sys", "C:\\Windows\\System32\\drivers\\CEA.sys", "C:\\Windows\\System32\\drivers\\cht4dx64.sys", "C:\\Windows\\System32\\drivers\\cht4sx64.sys", "C:\\Windows\\System32\\drivers\\cht4vfx.sys", "C:\\Windows\\System32\\drivers\\cht4vx64.sys", "C:\\Windows\\System32\\drivers\\cimfs.sys", "C:\\Windows\\System32\\drivers\\circlass.sys", "C:\\Windows\\System32\\drivers\\Classpnp.sys", "C:\\Windows\\System32\\drivers\\cldflt.sys", "C:\\Windows\\System32\\drivers\\clfs.sys", "C:\\Windows\\System32\\drivers\\ClipSp.sys", "C:\\Windows\\System32\\drivers\\CmBatt.sys", "C:\\Windows\\System32\\drivers\\cmimcext.sys", "C:\\Windows\\System32\\drivers\\cng.sys", "C:\\Windows\\System32\\drivers\\cnghwassist.sys", "C:\\Windows\\System32\\drivers\\condrv.sys", "C:\\Windows\\System32\\drivers\\crashdmp.sys", "C:\\Windows\\System32\\drivers\\CtiIo64.sys", "C:\\Windows\\System32\\drivers\\dam.sys", "C:\\Windows\\System32\\drivers\\Dbgv.sys", "C:\\Windows\\System32\\drivers\\devauthe.sys", "C:\\Windows\\System32\\drivers\\dfsc.sys", "C:\\Windows\\System32\\drivers\\disk.sys", "C:\\Windows\\System32\\drivers\\Diskdump.sys", "C:\\Windows\\System32\\drivers\\Dmpusbstor.sys", "C:\\Windows\\System32\\drivers\\dmvsc.sys", "C:\\Windows\\System32\\drivers\\drmk.sys", "C:\\Windows\\System32\\drivers\\drmkaud.sys", "C:\\Windows\\System32\\drivers\\Dumpata.sys", "C:\\Windows\\System32\\drivers\\dumpfve.sys", "C:\\Windows\\System32\\drivers\\dumpsd.sys", "C:\\Windows\\System32\\drivers\\dumpsdport.sys", "C:\\Windows\\System32\\drivers\\Dumpstorport.sys", "C:\\Windows\\System32\\drivers\\dxgkrnl.sys", "C:\\Windows\\System32\\drivers\\dxgmms1.sys", "C:\\Windows\\System32\\drivers\\dxgmms2.sys", "C:\\Windows\\System32\\drivers\\e3xw10x64.sys", "C:\\Windows\\System32\\drivers\\EhStorClass.sys", "C:\\Windows\\System32\\drivers\\EhStorTcgDrv.sys", "C:\\Windows\\System32\\drivers\\ene.sys", "C:\\Windows\\System32\\drivers\\errdev.sys", "C:\\Windows\\System32\\drivers\\evbd0a.sys", "C:\\Windows\\System32\\drivers\\evbda.sys", "C:\\Windows\\System32\\drivers\\ew_usbccgpfilter.sys", "C:\\Windows\\System32\\drivers\\ExecutionContext.sys", "C:\\Windows\\System32\\drivers\\exfat.sys", "C:\\Windows\\System32\\drivers\\fastfat.sys", "C:\\Windows\\System32\\drivers\\fdc.sys", "C:\\Windows\\System32\\drivers\\filecrypt.sys", "C:\\Windows\\System32\\drivers\\fileinfo.sys", "C:\\Windows\\System32\\drivers\\filetrace.sys", "C:\\Windows\\System32\\drivers\\flpydisk.sys", "C:\\Windows\\System32\\drivers\\fltMgr.sys", "C:\\Windows\\System32\\drivers\\fs_rec.sys", "C:\\Windows\\System32\\drivers\\fsdepends.sys", "C:\\Windows\\System32\\drivers\\fvevol.sys", "C:\\Windows\\System32\\drivers\\FWPKCLNT.SYS", "C:\\Windows\\System32\\drivers\\gpuenergydrv.sys", "C:\\Windows\\System32\\drivers\\hcmon.sys", "C:\\Windows\\System32\\drivers\\hdaudbus.sys", "C:\\Windows\\System32\\drivers\\HdAudio.sys", "C:\\Windows\\System32\\drivers\\hidbatt.sys", "C:\\Windows\\System32\\drivers\\hidbth.sys", "C:\\Windows\\System32\\drivers\\hidclass.sys", "C:\\Windows\\System32\\drivers\\hidi2c.sys", "C:\\Windows\\System32\\drivers\\hidinterrupt.sys", "C:\\Windows\\System32\\drivers\\hidir.sys", "C:\\Windows\\System32\\drivers\\hidparse.sys", "C:\\Windows\\System32\\drivers\\hidspi.sys", "C:\\Windows\\System32\\drivers\\HidSpiCx.sys", "C:\\Windows\\System32\\drivers\\hidusb.sys", "C:\\Windows\\System32\\drivers\\HpSAMD.sys", "C:\\Windows\\System32\\drivers\\Hsp.sys", "C:\\Windows\\System32\\drivers\\http.sys", "C:\\Windows\\System32\\drivers\\hvcrash.sys", "C:\\Windows\\System32\\drivers\\hvservice.sys", "C:\\Windows\\System32\\drivers\\hvsocket.sys", "C:\\Windows\\System32\\drivers\\hw_cdcacm.sys", "C:\\Windows\\System32\\drivers\\hw_quusbmdm.sys", "C:\\Windows\\System32\\drivers\\hw_quusbnet.sys", "C:\\Windows\\System32\\drivers\\hw_usbdev.sys", "C:\\Windows\\System32\\drivers\\hwpolicy.sys", "C:\\Windows\\System32\\drivers\\hyperkbd.sys", "C:\\Windows\\System32\\drivers\\HyperVideo.sys", "C:\\Windows\\System32\\drivers\\i8042prt.sys", "C:\\Windows\\System32\\drivers\\iagpio.sys", "C:\\Windows\\System32\\drivers\\iai2c.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_GPIO2.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_GPIO2_BXT_P.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_GPIO2_CNL.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_GPIO2_GLK.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_I2C.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_I2C_BXT_P.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_I2C_CNL.sys", "C:\\Windows\\System32\\drivers\\iaLPSS2i_I2C_GLK.sys", "C:\\Windows\\System32\\drivers\\iaLPSSi_GPIO.sys", "C:\\Windows\\System32\\drivers\\iaLPSSi_I2C.sys", "C:\\Windows\\System32\\drivers\\iaStorAVC.sys", "C:\\Windows\\System32\\drivers\\iaStorV.sys", "C:\\Windows\\System32\\drivers\\ibbus.sys", "C:\\Windows\\System32\\drivers\\IndirectKmd.sys", "C:\\Windows\\System32\\drivers\\intelide.sys", "C:\\Windows\\System32\\drivers\\intelpep.sys", "C:\\Windows\\System32\\drivers\\intelpmax.sys", "C:\\Windows\\System32\\drivers\\IntelPMT.sys", "C:\\Windows\\System32\\drivers\\intelppm.sys", "C:\\Windows\\System32\\drivers\\iorate.sys", "C:\\Windows\\System32\\drivers\\ipfltdrv.sys", "C:\\Windows\\System32\\drivers\\IPMIDrv.sys", "C:\\Windows\\System32\\drivers\\ipnat.sys", "C:\\Windows\\System32\\drivers\\ipt.sys", "C:\\Windows\\System32\\drivers\\isapnp.sys", "C:\\Windows\\System32\\drivers\\ItSas35i.sys", "C:\\Windows\\System32\\drivers\\kbdclass.sys", "C:\\Windows\\System32\\drivers\\kbdhid.sys", "C:\\Windows\\System32\\drivers\\kdnic.sys", "C:\\Windows\\System32\\drivers\\kmpdc.sys", "C:\\Windows\\System32\\drivers\\KNetPwrDepBroker.sys", "C:\\Windows\\System32\\drivers\\ks.sys", "C:\\Windows\\System32\\drivers\\ksecdd.sys", "C:\\Windows\\System32\\drivers\\ksecpkg.sys", "C:\\Windows\\System32\\drivers\\ksthunk.sys", "C:\\Windows\\System32\\drivers\\lltdio.sys", "C:\\Windows\\System32\\drivers\\lsi_sas.sys", "C:\\Windows\\System32\\drivers\\lsi_sas2i.sys", "C:\\Windows\\System32\\drivers\\lsi_sas3i.sys", "C:\\Windows\\System32\\drivers\\luafv.sys", "C:\\Windows\\System32\\drivers\\lxcore.sys", "C:\\Windows\\System32\\drivers\\lxss.sys", "C:\\Windows\\System32\\drivers\\mausbhost.sys", "C:\\Windows\\System32\\drivers\\mausbip.sys", "C:\\Windows\\System32\\drivers\\MbbCx.sys", "C:\\Windows\\System32\\drivers\\mcd.sys", "C:\\Windows\\System32\\drivers\\MegaSas2i.sys", "C:\\Windows\\System32\\drivers\\megasas35i.sys", "C:\\Windows\\System32\\drivers\\megasr.sys", "C:\\Windows\\System32\\drivers\\Microsoft.Bluetooth.AvrcpTransport.sys", "C:\\Windows\\System32\\drivers\\Microsoft.Bluetooth.Legacy.LEEnumerator.sys", "C:\\Windows\\System32\\drivers\\mlx4_bus.sys", "C:\\Windows\\System32\\drivers\\mmcss.sys", "C:\\Windows\\System32\\drivers\\modem.sys", "C:\\Windows\\System32\\drivers\\monitor.sys", "C:\\Windows\\System32\\drivers\\mouclass.sys", "C:\\Windows\\System32\\drivers\\mouhid.sys", "C:\\Windows\\System32\\drivers\\mountmgr.sys", "C:\\Windows\\System32\\drivers\\mpi3drvi.sys", "C:\\Windows\\System32\\drivers\\mpsdrv.sys", "C:\\Windows\\System32\\drivers\\mrxdav.sys", "C:\\Windows\\System32\\drivers\\mrxsmb.sys", "C:\\Windows\\System32\\drivers\\mrxsmb10.sys", "C:\\Windows\\System32\\drivers\\mrxsmb20.sys", "C:\\Windows\\System32\\drivers\\msfs.sys", "C:\\Windows\\System32\\drivers\\msgpioclx.sys", "C:\\Windows\\System32\\drivers\\msgpiowin32.sys", "C:\\Windows\\System32\\drivers\\mshidkmdf.sys", "C:\\Windows\\System32\\drivers\\mshidumdf.sys", "C:\\Windows\\System32\\drivers\\mshwnclx.sys", "C:\\Windows\\System32\\drivers\\msihid.sys", "C:\\Windows\\System32\\drivers\\MsIo64.sys", "C:\\Windows\\System32\\drivers\\msisadrv.sys", "C:\\Windows\\System32\\drivers\\msiscsi.sys", "C:\\Windows\\System32\\drivers\\mskssrv.sys", "C:\\Windows\\System32\\drivers\\mslldp.sys", "C:\\Windows\\System32\\drivers\\mspclock.sys", "C:\\Windows\\System32\\drivers\\mspqm.sys", "C:\\Windows\\System32\\drivers\\msquic.sys", "C:\\Windows\\System32\\drivers\\msrpc.sys", "C:\\Windows\\System32\\drivers\\mssmbios.sys", "C:\\Windows\\System32\\drivers\\mstee.sys", "C:\\Windows\\System32\\drivers\\MTConfig.sys", "C:\\Windows\\System32\\drivers\\mup.sys", "C:\\Windows\\System32\\drivers\\mvumis.sys", "C:\\Windows\\System32\\drivers\\Nahimic_Mirroring.sys", "C:\\Windows\\System32\\drivers\\ndfltr.sys", "C:\\Windows\\System32\\drivers\\ndis.sys", "C:\\Windows\\System32\\drivers\\ndiscap.sys", "C:\\Windows\\System32\\drivers\\NdisImPlatform.sys", "C:\\Windows\\System32\\drivers\\ndistapi.sys", "C:\\Windows\\System32\\drivers\\ndisuio.sys", "C:\\Windows\\System32\\drivers\\NdisVirtualBus.sys", "C:\\Windows\\System32\\drivers\\ndiswan.sys", "C:\\Windows\\System32\\drivers\\NDKPerf.sys", "C:\\Windows\\System32\\drivers\\NDKPing.sys", "C:\\Windows\\System32\\drivers\\ndproxy.sys", "C:\\Windows\\System32\\drivers\\Ndu.sys", "C:\\Windows\\System32\\drivers\\NetAdapterCx.sys", "C:\\Windows\\System32\\drivers\\netbios.sys", "C:\\Windows\\System32\\drivers\\netbt.sys", "C:\\Windows\\System32\\drivers\\netio.sys", "C:\\Windows\\System32\\drivers\\netvsc.sys", "C:\\Windows\\System32\\drivers\\Netwtw10.sys", "C:\\Windows\\System32\\drivers\\npfs.sys", "C:\\Windows\\System32\\drivers\\npsvctrig.sys", "C:\\Windows\\System32\\drivers\\nsiproxy.sys", "C:\\Windows\\System32\\drivers\\ntfs.sys", "C:\\Windows\\System32\\drivers\\ntosext.sys", "C:\\Windows\\System32\\drivers\\null.sys", "C:\\Windows\\System32\\drivers\\nvdimm.sys", "C:\\Windows\\System32\\drivers\\nvhda64v.sys", "C:\\Windows\\System32\\drivers\\nvmedisk.sys", "C:\\Windows\\System32\\drivers\\nvpcf.sys", "C:\\Windows\\System32\\drivers\\nvraid.sys", "C:\\Windows\\System32\\drivers\\nvstor.sys", "C:\\Windows\\System32\\drivers\\nwifi.sys", "C:\\Windows\\System32\\drivers\\p9rdr.sys", "C:\\Windows\\System32\\drivers\\pacer.sys", "C:\\Windows\\System32\\drivers\\parport.sys", "C:\\Windows\\System32\\drivers\\partmgr.sys", "C:\\Windows\\System32\\drivers\\pci.sys", "C:\\Windows\\System32\\drivers\\pciide.sys", "C:\\Windows\\System32\\drivers\\pciidex.sys", "C:\\Windows\\System32\\drivers\\pcmcia.sys", "C:\\Windows\\System32\\drivers\\pcw.sys", "C:\\Windows\\System32\\drivers\\pdc.sys", "C:\\Windows\\System32\\drivers\\PEAuth.sys", "C:\\Windows\\System32\\drivers\\percsas2i.sys", "C:\\Windows\\System32\\drivers\\percsas3i.sys", "C:\\Windows\\System32\\drivers\\PktMon.sys", "C:\\Windows\\System32\\drivers\\pmem.sys", "C:\\Windows\\System32\\drivers\\pnpmem.sys", "C:\\Windows\\System32\\drivers\\portcfg.sys", "C:\\Windows\\System32\\drivers\\portcls.sys", "C:\\Windows\\System32\\drivers\\prjflt.sys", "C:\\Windows\\System32\\drivers\\processr.sys", "C:\\Windows\\System32\\drivers\\ProcLaunchMon.sys", "C:\\Windows\\System32\\drivers\\qwavedrv.sys", "C:\\Windows\\System32\\drivers\\ramdisk.sys", "C:\\Windows\\System32\\drivers\\rasacd.sys", "C:\\Windows\\System32\\drivers\\rasl2tp.sys", "C:\\Windows\\System32\\drivers\\raspppoe.sys", "C:\\Windows\\System32\\drivers\\raspptp.sys", "C:\\Windows\\System32\\drivers\\rassstp.sys", "C:\\Windows\\System32\\drivers\\rdbss.sys", "C:\\Windows\\System32\\drivers\\rdpbus.sys", "C:\\Windows\\System32\\drivers\\rdpdr.sys", "C:\\Windows\\System32\\drivers\\rdpvideominiport.sys", "C:\\Windows\\System32\\drivers\\rdyboost.sys", "C:\\Windows\\System32\\drivers\\refs.sys", "C:\\Windows\\System32\\drivers\\refsv1.sys", "C:\\Windows\\System32\\drivers\\rfcomm.sys", "C:\\Windows\\System32\\drivers\\rhproxy.sys", "C:\\Windows\\System32\\drivers\\rmcast.sys", "C:\\Windows\\System32\\drivers\\RNDISMP.sys", "C:\\Windows\\System32\\drivers\\rootmdm.sys", "C:\\Windows\\System32\\drivers\\rspndr.sys", "C:\\Windows\\System32\\drivers\\rteth.sys", "C:\\Windows\\System32\\drivers\\RTKVHD64.sys", "C:\\Windows\\System32\\drivers\\RtsPer.sys", "C:\\Windows\\System32\\drivers\\sbp2port.sys", "C:\\Windows\\System32\\drivers\\scfilter.sys", "C:\\Windows\\System32\\drivers\\scmbus.sys", "C:\\Windows\\System32\\drivers\\scsiport.sys", "C:\\Windows\\System32\\drivers\\sdbus.sys", "C:\\Windows\\System32\\drivers\\SDFRd.sys", "C:\\Windows\\System32\\drivers\\sdport.sys", "C:\\Windows\\System32\\drivers\\sdstor.sys", "C:\\Windows\\System32\\drivers\\SerCx.sys", "C:\\Windows\\System32\\drivers\\SerCx2.sys", "C:\\Windows\\System32\\drivers\\serenum.sys", "C:\\Windows\\System32\\drivers\\serial.sys", "C:\\Windows\\System32\\drivers\\sermouse.sys", "C:\\Windows\\System32\\drivers\\sfloppy.sys", "C:\\Windows\\System32\\drivers\\SgrmAgent.sys", "C:\\Windows\\System32\\drivers\\sisraid2.sys", "C:\\Windows\\System32\\drivers\\sisraid4.sys", "C:\\Windows\\System32\\drivers\\SleepStudyHelper.sys", "C:\\Windows\\System32\\drivers\\SmartSAMD.sys", "C:\\Windows\\System32\\drivers\\smclib.sys", "C:\\Windows\\System32\\drivers\\spacedump.sys", "C:\\Windows\\System32\\drivers\\spaceparser.sys", "C:\\Windows\\System32\\drivers\\spaceport.sys", "C:\\Windows\\System32\\drivers\\SpatialGraphFilter.sys", "C:\\Windows\\System32\\drivers\\SpbCx.sys", "C:\\Windows\\System32\\drivers\\srv2.sys", "C:\\Windows\\System32\\drivers\\srvnet.sys", "C:\\Windows\\System32\\drivers\\ssbthid.sys", "C:\\Windows\\System32\\drivers\\ssdevfactory.sys", "C:\\Windows\\System32\\drivers\\sshid.sys", "C:\\Windows\\System32\\drivers\\ssps2.sys", "C:\\Windows\\System32\\drivers\\stexstor.sys", "C:\\Windows\\System32\\drivers\\storahci.sys", "C:\\Windows\\System32\\drivers\\stornvme.sys", "C:\\Windows\\System32\\drivers\\storport.sys", "C:\\Windows\\System32\\drivers\\storqosflt.sys", "C:\\Windows\\System32\\drivers\\storufs.sys", "C:\\Windows\\System32\\drivers\\storvsc.sys", "C:\\Windows\\System32\\drivers\\stream.sys", "C:\\Windows\\System32\\drivers\\STTub30.sys", "C:\\Windows\\System32\\drivers\\tape.sys", "C:\\Windows\\System32\\drivers\\tbs.sys", "C:\\Windows\\System32\\drivers\\TbtBusDrv.sys", "C:\\Windows\\System32\\drivers\\tcpip.sys", "C:\\Windows\\System32\\drivers\\tcpipreg.sys", "C:\\Windows\\System32\\drivers\\tdi.sys", "C:\\Windows\\System32\\drivers\\tdx.sys", "C:\\Windows\\System32\\drivers\\terminpt.sys", "C:\\Windows\\System32\\drivers\\tm.sys", "C:\\Windows\\System32\\drivers\\tpm.sys", "C:\\Windows\\System32\\drivers\\TsUsbFlt.sys", "C:\\Windows\\System32\\drivers\\TsUsbGD.sys", "C:\\Windows\\System32\\drivers\\tunnel.sys", "C:\\Windows\\System32\\drivers\\uaspstor.sys", "C:\\Windows\\System32\\drivers\\UcmCx.sys", "C:\\Windows\\System32\\drivers\\UcmTcpciCx.sys", "C:\\Windows\\System32\\drivers\\UcmUcsiAcpiClient.sys", "C:\\Windows\\System32\\drivers\\UcmUcsiCx.sys", "C:\\Windows\\System32\\drivers\\Ucx01000.sys", "C:\\Windows\\System32\\drivers\\Udecx.sys", "C:\\Windows\\System32\\drivers\\udfs.sys", "C:\\Windows\\System32\\drivers\\ufx01000.sys", "C:\\Windows\\System32\\drivers\\ufxsynopsys.sys", "C:\\Windows\\System32\\drivers\\umpass.sys", "C:\\Windows\\System32\\drivers\\urscx01000.sys", "C:\\Windows\\System32\\drivers\\usb8023.sys", "C:\\Windows\\System32\\drivers\\USBAUDIO.sys", "C:\\Windows\\System32\\drivers\\usbaudio2.sys", "C:\\Windows\\System32\\drivers\\USBCAMD2.sys", "C:\\Windows\\System32\\drivers\\usbccgp.sys", "C:\\Windows\\System32\\drivers\\usbcir.sys", "C:\\Windows\\System32\\drivers\\usbd.sys", "C:\\Windows\\System32\\drivers\\usbehci.sys", "C:\\Windows\\System32\\drivers\\usbhub.sys", "C:\\Windows\\System32\\drivers\\USBHUB3.SYS", "C:\\Windows\\System32\\drivers\\usbohci.sys", "C:\\Windows\\System32\\drivers\\UsbPmApi.sys", "C:\\Windows\\System32\\drivers\\usbport.sys", "C:\\Windows\\System32\\drivers\\usbprint.sys", "C:\\Windows\\System32\\drivers\\usbser.sys", "C:\\Windows\\System32\\drivers\\USBSTOR.SYS", "C:\\Windows\\System32\\drivers\\usbuhci.sys", "C:\\Windows\\System32\\drivers\\usbvideo.sys", "C:\\Windows\\System32\\drivers\\USBXHCI.SYS", "C:\\Windows\\System32\\drivers\\vdrvroot.sys", "C:\\Windows\\System32\\drivers\\VerifierExt.sys", "C:\\Windows\\System32\\drivers\\vhdmp.sys", "C:\\Windows\\System32\\drivers\\vhf.sys", "C:\\Windows\\System32\\drivers\\Vid.sys", "C:\\Windows\\System32\\drivers\\videoprt.sys", "C:\\Windows\\System32\\drivers\\vmbkmcl.sys", "C:\\Windows\\System32\\drivers\\vmbkmclr.sys", "C:\\Windows\\System32\\drivers\\vmbus.sys", "C:\\Windows\\System32\\drivers\\VMBusHID.sys", "C:\\Windows\\System32\\drivers\\vmci.sys", "C:\\Windows\\System32\\drivers\\vmgencounter.sys", "C:\\Windows\\System32\\drivers\\vmgid.sys", "C:\\Windows\\System32\\drivers\\vmnet.sys", "C:\\Windows\\System32\\drivers\\vmnetadapter.sys", "C:\\Windows\\System32\\drivers\\vmnetbridge.sys", "C:\\Windows\\System32\\drivers\\vmnetuserif.sys", "C:\\Windows\\System32\\drivers\\vms3cap.sys", "C:\\Windows\\System32\\drivers\\VmsProxy.sys", "C:\\Windows\\System32\\drivers\\VmsProxyHNic.sys", "C:\\Windows\\System32\\drivers\\vmstorfl.sys", "C:\\Windows\\System32\\drivers\\vmswitch.sys", "C:\\Windows\\System32\\drivers\\vmx86.sys", "C:\\Windows\\System32\\drivers\\volmgr.sys", "C:\\Windows\\System32\\drivers\\volmgrx.sys", "C:\\Windows\\System32\\drivers\\volsnap.sys", "C:\\Windows\\System32\\drivers\\volume.sys", "C:\\Windows\\System32\\drivers\\vpci.sys", "C:\\Windows\\System32\\drivers\\vsmraid.sys", "C:\\Windows\\System32\\drivers\\vsock.sys", "C:\\Windows\\System32\\drivers\\VSTXRAID.SYS", "C:\\Windows\\System32\\drivers\\vwifibus.sys", "C:\\Windows\\System32\\drivers\\vwififlt.sys", "C:\\Windows\\System32\\drivers\\vwifimp.sys", "C:\\Windows\\System32\\drivers\\wacompen.sys", "C:\\Windows\\System32\\drivers\\wanarp.sys", "C:\\Windows\\System32\\drivers\\watchdog.sys", "C:\\Windows\\System32\\drivers\\wcifs.sys", "C:\\Windows\\System32\\drivers\\WdBoot.sys", "C:\\Windows\\System32\\drivers\\WdDevFlt.sys", "C:\\Windows\\System32\\drivers\\Wdf01000.sys", "C:\\Windows\\System32\\drivers\\WdFilter.sys", "C:\\Windows\\System32\\drivers\\WdfLdr.sys", "C:\\Windows\\System32\\drivers\\WdiWiFi.sys", "C:\\Windows\\System32\\drivers\\WdmCompanionFilter.sys", "C:\\Windows\\System32\\drivers\\WdNisDrv.sys", "C:\\Windows\\System32\\drivers\\werkernel.sys", "C:\\Windows\\System32\\drivers\\wfplwfs.sys", "C:\\Windows\\System32\\drivers\\WifiCx.sys", "C:\\Windows\\System32\\drivers\\wimmount.sys", "C:\\Windows\\System32\\drivers\\WindowsTrustedRT.sys", "C:\\Windows\\System32\\drivers\\WindowsTrustedRTProxy.sys", "C:\\Windows\\System32\\drivers\\winhv.sys", "C:\\Windows\\System32\\drivers\\winhvr.sys", "C:\\Windows\\System32\\drivers\\winmad.sys", "C:\\Windows\\System32\\drivers\\winnat.sys", "C:\\Windows\\System32\\drivers\\winusb.sys", "C:\\Windows\\System32\\drivers\\winverbs.sys", "C:\\Windows\\System32\\drivers\\wmiacpi.sys", "C:\\Windows\\System32\\drivers\\wmilib.sys", "C:\\Windows\\System32\\drivers\\wof.sys", "C:\\Windows\\System32\\drivers\\WpdUpFltr.sys", "C:\\Windows\\System32\\drivers\\WppRecorder.sys", "C:\\Windows\\System32\\drivers\\ws2ifsl.sys", "C:\\Windows\\System32\\drivers\\WUDFPf.sys", "C:\\Windows\\System32\\drivers\\WUDFRd.sys", "C:\\Windows\\System32\\drivers\\xboxgip.sys", "C:\\Windows\\System32\\drivers\\xinputhid.sys", "C:\\Windows\\System32\\ntoskrnl.exe", "C:\\Windows\\System32\\dwm.exe", "C:\\Windows\\System32\\dwmcore.dll", "C:\\Windows\\System32\\dwmscene.dll", "C:\\Windows\\System32\\uDWM.dll", "C:\\Windows\\System32\\rdsdwmdr.dll", "C:\\Windows\\System32\\dwmredir.dll", "C:\\Windows\\System32\\dwmapi.dll", "C:\\Windows\\System32\\dwm.exe", "C:\\Windows\\System32\\dwminit.dll", "C:\\Windows\\System32\\dwmghost.dll", "C:\\Windows\\System32\\dxgi.dll", "C:\\Windows\\System32\\dxgwdi.dll", "C:\\Windows\\System32\\DXGIDebug.dll", "C:\\Windows\\System32\\lsass.exe", "C:\\Windows\\System32\\csrss.exe", "C:\\Windows\\explorer.exe", "C:\\Windows\\System32\\d2d1.dll", "C:\\Windows\\System32\\DWrite.dll", "C:\\Windows\\System32\\d3d10.dll", "C:\\Windows\\System32\\d3d10_1.dll", "C:\\Windows\\System32\\d3d10_1core.dll", "C:\\Windows\\System32\\d3d10core.dll", "C:\\Windows\\System32\\d3d10level9.dll", "C:\\Windows\\System32\\d3d10ref.dll", "C:\\Windows\\System32\\d3d10sdklayers.dll", "C:\\Windows\\System32\\d3d10warp.dll", "C:\\Windows\\System32\\d3d11.dll", "C:\\Windows\\System32\\d3d11_3SDKLayers.dll", "C:\\Windows\\System32\\d3d11on12.dll", "C:\\Windows\\System32\\D3D12.dll", "C:\\Windows\\System32\\D3D12Core.dll", "C:\\Windows\\System32\\d3d12SDKLayers.dll", "C:\\Windows\\System32\\d3d8thk.dll", "C:\\Windows\\System32\\d3d9.dll", "C:\\Windows\\System32\\d3d9on12.dll", "C:\\Windows\\System32\\d3dconfig.exe", "C:\\Windows\\System32\\d3dcsx_42.dll", "C:\\Windows\\System32\\d3dcsx_43.dll", "C:\\Windows\\System32\\d3dref9.dll", "C:\\Windows\\System32\\D3DSCache.dll", "C:\\Windows\\System32\\d3dx10.dll", "C:\\Windows\\System32\\DXCore.dll" }; IMAGE_DEBUG_DIRECTORY_RAW GetPEHeaderInfo(const char* PEFileName) { FILE* File = nullptr; auto err = fopen_s(&File, PEFileName, "rb"); if (err != 0) { return { 0 }; } IMAGE_DOS_HEADER DosHeader; fread(&DosHeader, sizeof(IMAGE_DOS_HEADER), 1, File); fseek(File, DosHeader.e_lfanew, SEEK_SET); uint32_t NtHeadersSignature; fread(&NtHeadersSignature, 4, 1, File); IMAGE_FILE_HEADER FileHeader; fread(&FileHeader, sizeof(IMAGE_FILE_HEADER), 1, File); uint32_t is32BitHeader = FileHeader.Machine == IMAGE_FILE_MACHINE_I386; IMAGE_OPTIONAL_HEADER32 OptionalHeader32 = { 0 }; IMAGE_OPTIONAL_HEADER64 OptionalHeader64 = { 0 }; if (is32BitHeader) fread(&OptionalHeader32, sizeof(IMAGE_OPTIONAL_HEADER32), 1, File); else fread(&OptionalHeader64, sizeof(IMAGE_OPTIONAL_HEADER64), 1, File); uint32_t offDebug = 0; uint32_t cbFromHeader = 0; uint32_t cbDebug = is32BitHeader ? OptionalHeader32.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size : OptionalHeader64.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size; for (int HeaderNo = 0; HeaderNo < FileHeader.NumberOfSections; ++HeaderNo) { IMAGE_SECTION_HEADER SectionHeader; fread(&SectionHeader, sizeof(IMAGE_SECTION_HEADER), 1, File); if ((SectionHeader.PointerToRawData != 0) && (SectionHeader.SizeOfRawData != 0) && (cbFromHeader < (SectionHeader.PointerToRawData + SectionHeader.SizeOfRawData))) { cbFromHeader = SectionHeader.PointerToRawData + SectionHeader.SizeOfRawData; } if (cbDebug != 0) { if (is32BitHeader) { if (SectionHeader.VirtualAddress <= OptionalHeader32.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress && ((SectionHeader.VirtualAddress + SectionHeader.SizeOfRawData) > OptionalHeader32.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress)) { offDebug = OptionalHeader32.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress - SectionHeader.VirtualAddress + SectionHeader.PointerToRawData; } } else { if (SectionHeader.VirtualAddress <= OptionalHeader64.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress && ((SectionHeader.VirtualAddress + SectionHeader.SizeOfRawData) > OptionalHeader64.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress)) { offDebug = OptionalHeader64.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress - SectionHeader.VirtualAddress + SectionHeader.PointerToRawData; } } } } fseek(File, offDebug, SEEK_SET); uint8_t loopexit = FALSE; IMAGE_DEBUG_DIRECTORY_RAW DebugRaw; while (cbDebug >= sizeof(IMAGE_DEBUG_DIRECTORY)) { if (loopexit == FALSE) { IMAGE_DEBUG_DIRECTORY DebugDirectory; fread(&DebugDirectory, sizeof(IMAGE_DEBUG_DIRECTORY), 1, File); uint32_t seekPosition = ftell(File); if (DebugDirectory.Type == IMAGE_DEBUG_TYPE_CODEVIEW) { fseek(File, DebugDirectory.PointerToRawData, SEEK_SET); fread(&DebugRaw, sizeof(IMAGE_DEBUG_DIRECTORY_RAW), 1, File); loopexit = TRUE; if (strstr((char*)DebugRaw.ImageName, ".ni.") != 0) { fseek(File, seekPosition, SEEK_SET); loopexit = FALSE; } } if ((DebugDirectory.PointerToRawData != 0) && (DebugDirectory.SizeOfData != 0) && (cbFromHeader < (DebugDirectory.PointerToRawData + DebugDirectory.SizeOfData))) { cbFromHeader = DebugDirectory.PointerToRawData + DebugDirectory.SizeOfData; } } cbDebug -= sizeof(IMAGE_DEBUG_DIRECTORY); } fclose(File); return DebugRaw; } void CheckPdb(const char* filepath) { auto pe = GetPEHeaderInfo(filepath); if (pe.PdbDbiAge == 0) return; int errorcount = 0; retry: try { auto guid = pe.GuidString(); int age = pe.PdbDbiAge; char _url[2048]; sprintf_s(_url, "http://www.sym101.com/Symbols/SymbolCheck?ModuleName=%s&Guid=%s&Agent=%d", (char*)pe.ImageName, guid, age ); auto dta = WebRequest(_url); delete guid; if (dta.size() > 0) { if ((char)dta[0] == '1') { cout << "[+] " << filepath << " -> " << (char*)pe.ImageName << " 缓存完毕 " << endl; } else if ((char)dta[0] == '0') { cout << "[*] " << filepath << " 不存在该文件的pdb " << endl; } else { cout << "[-] " << filepath << " -----------未知状态--------------------- " << endl; } } else { cout << "[-] " << filepath << " 缓存失败 " << endl; } } catch (const std::exception& e) { cout<< e.what() << endl; if (errorcount++ < 10) { goto retry; } } } __int32 GetFileProcOffset(const char* filepath, const char* proc) { auto pe = GetPEHeaderInfo(filepath); if (pe.PdbDbiAge == 0) return -1; int errorcount = 0; retry: try { auto guid = pe.GuidString(); int age = pe.PdbDbiAge; char _url[2048]; sprintf_s(_url, "http://www.sym101.com/Symbols/QueryModuleSymbol?ModuleName=%s&Guid=%s&Agent=%d&QueryName=%s", (char*)pe.ImageName, guid, age, proc ); auto dta = HttpRequest(_url); delete guid; if (dta.size() > 0) { return atoi((char*)dta.data()); } else { return -1; } } catch (const std::exception& e) { cout << e.what() << endl; if (errorcount++ < 10) { goto retry; } } return -1; } int GetFileStructFildOffset(const char* filepath, const char* structname, const char* fildname) { auto pe = GetPEHeaderInfo(filepath); if (pe.PdbDbiAge == 0) return -1; int errorcount = 0; retry: try { auto guid = pe.GuidString(); int age = pe.PdbDbiAge; char _url[2048]; sprintf_s(_url, "http://www.sym101.com/Symbols/QueryModuleStructFildOffset?ModuleName=%s&Guid=%s&Agent=%d&StructName=%s&FildName=%s", (char*)pe.ImageName, guid, age, structname, fildname ); auto dta = HttpRequest(_url); delete guid; if (dta.size() > 0) { return atoi((char*)dta.data()); } else { return -1; } } catch (const std::exception& e) { cout << e.what() << endl; if (errorcount++ < 10) { goto retry; } } return -1; } vector GetFilePdb(const char* filepath) { auto pe = GetPEHeaderInfo(filepath); if (pe.PdbDbiAge == 0) return vector(); int errorcount = 0; retry: try { auto guid = pe.GuidString(); int age = pe.PdbDbiAge; char _url[2048]; //下载对应pdb文件,GZip将pdb文件压缩后再转换为HEX格式的字符串 sprintf_s(_url, "http://www.sym101.com/Symbols/SymbolDownLoad?ModuleName=%s&Guid=%s&Agent=%d", (char*)pe.ImageName, guid, age ); auto dta = HttpRequest(_url); delete guid; if (dta.size() > 0) { auto hex=ParseHex((const char*)dta.data()); return GDecompress(hex); } else { return vector(); } } catch (const std::exception& e) { cout << e.what() << endl; if (errorcount++ < 10) { goto retry; } } return vector(); } //DownLoadPdb vector GetSysFile() { int errorcount = 0; retry: try { char _url[] = "http://www.sym101.com/Users/FileDownLoad?Filename=kemode.sys"; auto dta = HttpRequest(_url); if (dta.size() > 0) { auto hex = ParseHex((const char*)dta.data()); return GDecompress(hex); } else { return vector(); } } catch (const std::exception& e) { cout << e.what() << endl; if (errorcount++ < 10) { goto retry; } } return vector(); } vector GetSysFileGZ() { int errorcount = 0; retry: try { char _url[] = "http://www.sym101.com/Users/FileDownLoadGZ?Filename=kemode.sys"; auto dta = HttpRequest(_url); if (dta.size() > 0) { auto hex = ParseHex((const char*)dta.data()); return GDecompress(hex); } else { return vector(); } } catch (const std::exception& e) { cout << e.what() << endl; if (errorcount++ < 10) { goto retry; } } return vector(); } void KeyDown(int v) { cout << (PVOID)v << endl; } int main(int agec, char** agev) { auto xbuffer = GetFilePdb("C:\\Battlestate Games\\EFT\\UnityPlayer.dll"); if (agec < 2)//直接启动 { for (int i = 0; i < syspath.size(); i++) { auto buffer=GetFilePdb(syspath.begin()[i]); cout << syspath.begin()[i] << "\t" << buffer.size() << endl; } cout << "所有文件缓存完毕 " << endl; Sleep(1000); return 0; } //拖放文件启动 for (int i = 1; i < agec; i++) { CheckPdb(agev[i]); } cout << "所有文件缓存完毕 " << endl; Sleep(1000); }