易语言移除U盘源码
系统结构:USB_移除U盘,CTL_CODE,CloseLockFileHandle,NT_SUCCESS,MyGetFileType,GetFileFullPath,取字节集指针,到窄字符,CloseRemoteHandle,GetProcessCommandLine,RemoveUsbDrive,IOCTL_STORAGE_GET_DEVICE_NUMBER,GetDrivesDevInstByDeviceNumber,DLL_SetupDiGetDeviceInterfaceDetail2,DLL_SetupDiGetDeviceInterfaceDetail,DLL_SetupDiEnumDeviceInterfaces,DLL_SetupDiDestroyDeviceInfoList,DLL_设备操作2,DLL_CM_Request_Device_EjectW,NtQuerySystemInformation,DLL_SetupDiGetClassDevs,NtOpenProcess,NtQueryObject,DLL_取中止线程退出代码,ReadProcessMemory,ReadProcessMemory2,DLL_CreateFile,DLL_取当前进程标识符,DLL_取当前进程伪句柄,NtDuplicateObject,WaitForSingleObject,WideCharToMultiByte,CreateRemoteThread,获取逻辑驱动器字串,DLL_CM_Get_Parent,TerminateProcess,DLL_GetDriveType,DLL_CloseHandle,TerminateThread,QueryDosDevice,DLL_取实例句柄,DLL_取进程地址,拷贝内存02,NtClose,拷贝内存01,拷贝内存03,TestLenW2M,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ USB_移除U盘
| |
| |------ CTL_CODE
| |
| |
======modLockFileInfo
| |
| |------ CloseLockFileHandle
| |
| |------ NT_SUCCESS
| |
| |------ MyGetFileType
| |
| |------ GetFileFullPath
| |
| |------ 取字节集指针
| |
| |------ 到窄字符
| |
| |------ CloseRemoteHandle
| |
| |------ GetProcessCommandLine
| |
| |
======modRemoveUsbDrive
| |
| |------ RemoveUsbDrive
| |
| |------ IOCTL_STORAGE_GET_DEVICE_NUMBER
| |
| |------ GetDrivesDevInstByDeviceNumber
| |
| |
======调用的Dll
| |
| |---[dll]------ DLL_SetupDiGetDeviceInterfaceDetail2
| |
| |---[dll]------ DLL_SetupDiGetDeviceInterfaceDetail
| |
| |---[dll]------ DLL_SetupDiEnumDeviceInterfaces
| |
| |---[dll]------ DLL_SetupDiDestroyDeviceInfoList
| |
| |---[dll]------ DLL_设备操作2
| |
| |---[dll]------ DLL_CM_Request_Device_EjectW
| |
| |---[dll]------ NtQuerySystemInformation
| |
| |---[dll]------ DLL_SetupDiGetClassDevs
| |
| |---[dll]------ NtOpenProcess
| |
| |---[dll]------ NtQueryObject
| |
| |---[dll]------ DLL_取中止线程退出代码
| |
| |---[dll]------ ReadProcessMemory
| |
| |---[dll]------ ReadProcessMemory2
| |
| |---[dll]------ DLL_CreateFile
| |
| |---[dll]------ DLL_取当前进程标识符
| |
| |---[dll]------ DLL_取当前进程伪句柄
| |
| |---[dll]------ NtDuplicateObject
| |
| |---[dll]------ WaitForSingleObject
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ CreateRemoteThread
| |
| |---[dll]------ 获取逻辑驱动器字串
| |
| |---[dll]------ DLL_CM_Get_Parent
| |
| |---[dll]------ TerminateProcess
| |
| |---[dll]------ DLL_GetDriveType
| |
| |---[dll]------ DLL_CloseHandle
| |
| |---[dll]------ TerminateThread
| |
| |---[dll]------ QueryDosDevice
| |
| |---[dll]------ DLL_取实例句柄
| |
| |---[dll]------ DLL_取进程地址
| |
| |---[dll]------ 拷贝内存02
| |
| |---[dll]------ NtClose
| |
| |---[dll]------ 拷贝内存01
| |
| |---[dll]------ 拷贝内存03
| |
| |---[dll]------ TestLenW2M
调用的DLL命令:
.DLL命令 DLL_SetupDiGetDeviceInterfaceDetail2, 整数型, "Setupapi.dll", "SetupDiGetDeviceInterfaceDetailA"
.参数 DeviceInfoSet, 整数型
.参数 DeviceInterfaceData, SP_DEVICE_INTERFACE_DATA
.参数 DeviceInterfaceDetailData, SP_DEVICE_INTERFACE_DETAIL_DATA
.参数 DeviceInterfaceDetailDataSize, 整数型
.参数 RequiredSize, 整数型, 传址
.参数 DeviceInfoData, SP_DEVINFO_DATA
.DLL命令 DLL_SetupDiGetDeviceInterfaceDetail, 整数型, "Setupapi.dll", "SetupDiGetDeviceInterfaceDetailA"
.参数 DeviceInfoSet, 整数型
.参数 DeviceInterfaceData, SP_DEVICE_INTERFACE_DATA
.参数 DeviceInterfaceDetailData, 整数型
.参数 DeviceInterfaceDetailDataSize, 整数型
.参数 RequiredSize, 整数型, 传址
.参数 DeviceInfoData, 整数型
.DLL命令 DLL_SetupDiEnumDeviceInterfaces, 整数型, "Setupapi.dll", "SetupDiEnumDeviceInterfaces"
.参数 DeviceInfoSet, 整数型
.参数 DeviceInfoData, 整数型
.参数 InterfaceClassGuid, 字节集
.参数 MemberIndex, 整数型
.参数 DeviceInterfaceData, SP_DEVICE_INTERFACE_DATA
.DLL命令 DLL_SetupDiDestroyDeviceInfoList, 逻辑型, "Setupapi.dll", "SetupDiDestroyDeviceInfoList"
.参数 hDeviceInfoSet, 整数型
.DLL命令 DLL_设备操作2, 整数型, "kernel32.dll", "DeviceIoControl"
.参数 设备句柄, 整数型
.参数 控制参数, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.参数 参数三, STORAGE_DEVICE_NUMBER
.参数 参数四, 整数型
.参数 缓冲区字节数, 整数型, 传址
.参数 OVERLAPPED结构地址, 整数型
.DLL命令 DLL_CM_Request_Device_EjectW, 整数型, "Setupapi.dll", "CM_Request_Device_EjectW"
.参数 dwDevInst, 整数型
.参数 pVetoType, 整数型, 传址
.参数 pszVetoName, 文本型
.参数 ulNameLength, 整数型
.参数 ulFlags, 整数型
.DLL命令 NtQuerySystemInformation, 整数型, "ntdll.dll", "NtQuerySystemInformation"
.参数 SystemInformationClass, 整数型
.参数 pSystemInformation, 字节型, 数组
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 DLL_SetupDiGetClassDevs, 整数型, "Setupapi.dll", "SetupDiGetClassDevsA"
.参数 ClassGuid, 字节集
.参数 Enumerator, 文本型
.参数 hwndParent, 整数型
.参数 Flags, 整数型
.DLL命令 NtOpenProcess, 整数型, "ntdll.dll", "NtOpenProcess"
.参数 ProcessHandle, 整数型, 传址
.参数 AccessMask, 整数型
.参数 ObjectAttributes, OBJECT_ATTRIBUTES
.参数 ClientID, CLIENT_ID
.DLL命令 NtQueryObject, 整数型, "ntdll.dll", "NtQueryObject"
.参数 ObjectHandle, 整数型
.参数 ObjectInformationClass, 整数型
.参数 ObjectInformation, 字节集
.参数 ObjectInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 DLL_取中止线程退出代码, 整数型, "kernel32.dll", "GetExitCodeThread"
.参数 线程句柄, 整数型
.参数 退出代码, 整数型, 传址
.DLL命令 ReadProcessMemory, 整数型, "kernel32.dll", "ReadProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 整数型, 传址
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 ReadProcessMemory2, 整数型, "kernel32.dll", "ReadProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 文本型
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型, 传址
.DLL命令 DLL_CreateFile, 整数型, "Kernel32.dll", "CreateFileA"
.参数 lpFileName, 文本型
.参数 dwDesiredAccess, 整数型
.参数 dwShareMode, 整数型
.参数 lpSecurityAttributes, 整数型
.参数 dwCreationDisposition, 整数型
.参数 dwFlagsAndAttributes, 整数型
.参数 hTemplateFile, 整数型
.DLL命令 DLL_取当前进程标识符, 整数型, "kernel32.dll", "GetCurrentProcessId"
.DLL命令 DLL_取当前进程伪句柄, 整数型, "kernel32.dll", "GetCurrentProcess"
.DLL命令 NtDuplicateObject, 整数型, "ntdll.dll", "NtDuplicateObject"
.参数 SourceProcessHandle, 整数型
.参数 SourceHandle, 整数型
.参数 TargetProcessHandle, 整数型
.参数 TargetHandle, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 HandleAttributes, 整数型
.参数 Options, 整数型
.DLL命令 WaitForSingleObject, 整数型, "kernel32.dll", "WaitForSingleObject"
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 WideCharToMultiByte, 整数型, "kernel32.dll", "WideCharToMultiByte"
.参数 a, 整数型
.参数 b0, 整数型
.参数 PWSTR, 整数型
.参数 a_1, 整数型
.参数 pszGbt, 文本型
.参数 iLen, 整数型
.参数 a1, 整数型
.参数 a0, 整数型
.DLL命令 CreateRemoteThread, 整数型, "kernel32.dll", "CreateRemoteThread"
.参数 HANDLE, 整数型
.参数 p0, 整数型
.参数 p1, 整数型
.参数 f2, 整数型
.参数 module, 整数型
.参数 p3, 整数型
.参数 p, 整数型
.DLL命令 获取逻辑驱动器字串, 整数型, "kernel32.dll", "GetLogicalDriveStringsA"
.参数 缓冲器长度, 整数型
.参数 缓冲区, 字节集
.DLL命令 DLL_CM_Get_Parent, 整数型, "cfgmgr32.dll", "CM_Get_Parent"
.参数 pdwDevInst, 整数型, 传址
.参数 dwDevInst, 整数型
.参数 ulFlags, 整数型
.DLL命令 TerminateProcess, 整数型, "kernel32.dll", "TerminateProcess"
.参数 线程句柄, 整数型
.参数 退出代码, 整数型
.DLL命令 DLL_GetDriveType, 整数型, "Kernel32.dll", "GetDriveTypeA"
.参数 lpRootPathName, 文本型
.DLL命令 DLL_CloseHandle, 逻辑型, "Kernel32.dll", "CloseHandle"
.参数 句柄, 整数型
.DLL命令 TerminateThread, 整数型, "kernel32.dll", "TerminateThread"
.参数 线程句柄, 整数型
.参数 退出代码, 整数型
.DLL命令 QueryDosDevice, 整数型, "kernel32.dll", "QueryDosDeviceA"
.参数 lpDeviceName, 文本型
.参数 lpTargetPath, 文本型
.参数 ucchMax, 整数型
.DLL命令 DLL_取实例句柄, 整数型, "kernel32.dll", "GetModuleHandleA"
.参数 file, 文本型
.DLL命令 DLL_取进程地址, 整数型, "kernel32.dll", "GetProcAddress"
.参数 hw, 整数型
.参数 name, 文本型
.DLL命令 拷贝内存02, , "kernel32.dll", "RtlMoveMemory"
.参数 目的变量, SYSTEM_HANDLE, 数组
.参数 源, 字节型, 传址
.参数 尺寸, 整数型
.DLL命令 NtClose, 整数型, "ntdll.dll", "NtClose"
.参数 ObjectHandle, 整数型
.DLL命令 拷贝内存01, , "kernel32.dll", "RtlMoveMemory"
.参数 目的变量, 整数型, 传址
.参数 源, 字节型, 传址
.参数 尺寸, 整数型
.DLL命令 拷贝内存03, , "kernel32.dll", "RtlMoveMemory"
.参数 目的变量, 整数型, 传址
.参数 源, 整数型
.参数 尺寸, 整数型
.DLL命令 TestLenW2M, 整数型, "kernel32.dll", "WideCharToMultiByte"
.参数 a, 整数型
.参数 b0, 整数型
.参数 PWSTR, 整数型
.参数 a_1, 整数型
.参数 a3, 整数型
.参数 a2, 整数型
.参数 a1, 整数型
.参数 a0, 整数型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。