易语言驱动级蛮力删除文件模块源码
系统结构:LoadMemLibrary,FreeMemLibrary,GetMemProcAddress,Asm_Call,Asm_取地址_字节集,SyserLoadDriver,SyserRemoveDriver,CTL_CODE,Control,转换Ascii转Unicode,加载驱动,蛮力删除文件,普通删除文件,EnumLockFile,GetPathByHandle,CloseRemoteHandleEx,GetFileType,Api_lstrcpyn,Api_CreateServiceA,Api_OpenServiceA,Api_StartServiceA,Api_CloseServiceHandle,Api_CreateFileA,Api_ControlService,Api_OpenSCManagerA,Api_DeviceIoControl,Api_DeleteService,Api_MultiByteToWideChar,Api_取指针_字节集,Api_取指针_整数,Api_lopen,Api_ZwQueryObject,Api_WToM,Api_lclose,Api_QueryDosDevice,Api_StrCmpNI,Api_ZwQuerySystemInformation,Api_RtlMoveMemory_整数,Api_RtlMoveMemory_Pro,Api_ZwOpenProcess,Api_DuplicateHandle,Api_ZwClose,Api_GetModuleHandleA,Api_GetProcAddress,Api_FreeLibrary,Api_CreateRemoteThread,Api_GetExitCodeThread,Api_WaitForSingleObject,Api_TerminateThread,CallWindowProc,CallWindowProc2,DragAcceptFiles,DragQueryFile,DragFinish,SetWindowLong,AutoClear,ClearSys,ClearPwd,ClearAddr,DLL命令1,OpenProcess,RtlAdjustPrivilege,DLL命令2,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======程序集2
| |
| |------ LoadMemLibrary
| |
| |------ FreeMemLibrary
| |
| |------ GetMemProcAddress
| |
| |------ Asm_Call
| |
| |------ Asm_取地址_字节集
| |
| |
======程序集4
| |
| |------ SyserLoadDriver
| |
| |------ SyserRemoveDriver
| |
| |------ CTL_CODE
| |
| |------ Control
| |
| |------ 转换Ascii转Unicode
| |
| |------ 加载驱动
| |
| |------ 蛮力删除文件
| |
| |------ 普通删除文件
| |
| |------ EnumLockFile
| |
| |------ GetPathByHandle
| |
| |------ CloseRemoteHandleEx
| |
| |------ GetFileType
| |
| |
======调用的Dll
| |
| |---[dll]------ Api_lstrcpyn
| |
| |---[dll]------ Api_CreateServiceA
| |
| |---[dll]------ Api_OpenServiceA
| |
| |---[dll]------ Api_StartServiceA
| |
| |---[dll]------ Api_CloseServiceHandle
| |
| |---[dll]------ Api_CreateFileA
| |
| |---[dll]------ Api_ControlService
| |
| |---[dll]------ Api_OpenSCManagerA
| |
| |---[dll]------ Api_DeviceIoControl
| |
| |---[dll]------ Api_DeleteService
| |
| |---[dll]------ Api_MultiByteToWideChar
| |
| |---[dll]------ Api_取指针_字节集
| |
| |---[dll]------ Api_取指针_整数
| |
| |---[dll]------ Api_lopen
| |
| |---[dll]------ Api_ZwQueryObject
| |
| |---[dll]------ Api_WToM
| |
| |---[dll]------ Api_lclose
| |
| |---[dll]------ Api_QueryDosDevice
| |
| |---[dll]------ Api_StrCmpNI
| |
| |---[dll]------ Api_ZwQuerySystemInformation
| |
| |---[dll]------ Api_RtlMoveMemory_整数
| |
| |---[dll]------ Api_RtlMoveMemory_Pro
| |
| |---[dll]------ Api_ZwOpenProcess
| |
| |---[dll]------ Api_DuplicateHandle
| |
| |---[dll]------ Api_ZwClose
| |
| |---[dll]------ Api_GetModuleHandleA
| |
| |---[dll]------ Api_GetProcAddress
| |
| |---[dll]------ Api_FreeLibrary
| |
| |---[dll]------ Api_CreateRemoteThread
| |
| |---[dll]------ Api_GetExitCodeThread
| |
| |---[dll]------ Api_WaitForSingleObject
| |
| |---[dll]------ Api_TerminateThread
| |
| |---[dll]------ CallWindowProc
| |
| |---[dll]------ CallWindowProc2
| |
| |---[dll]------ DragAcceptFiles
| |
| |---[dll]------ DragQueryFile
| |
| |---[dll]------ DragFinish
| |
| |---[dll]------ SetWindowLong
| |
| |---[dll]------ AutoClear
| |
| |---[dll]------ ClearSys
| |
| |---[dll]------ ClearPwd
| |
| |---[dll]------ ClearAddr
| |
| |---[dll]------ DLL命令1
| |
| |---[dll]------ _终止进程
| |
| |---[dll]------ _取自进程ID
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ RtlAdjustPrivilege
| |
| |---[dll]------ DLL命令2
调用的DLL命令:
.DLL命令 Api_lstrcpyn, 整数型, "kernel32.dll", "lstrcpynA"
.参数 lpString1, 字节集
.参数 lpString2, 整数型
.参数 iMaxLength, 整数型
.DLL命令 Api_CreateServiceA, 整数型, "advapi32.dll", "CreateServiceA", , 创建服务,创建服务
.参数 hSCManager, 整数型, , SCM句柄OpenSCManager返回值
.参数 lpServiceName, 文本型, , 指向一个以0字符结尾的表示服务名称的字符串,字符串的最大长度是256个字符字符串的最大长度是256个字符,名称中不允许使用/或者\字符(因为这些字符会和注册表的路径表示方式冲突),这个值和注册表中的键名是相对应的
.参数 lpDisplayName, 文本型, , 指向一个以0字符结尾表示服务名称的字符串,这个名称是供用户界面程序识别函数时使用的,同样,它的最大长度也是256个字符。这个值和注册表中的DisplayName键的值是相对应的
.参数 dwDesiredAccess, 整数型, , 指定需要访问服务的操作可以有以下取值:SERVICE_ALL_ACCESS--可以进行所有操作SERVICE_START--允许调用StartService函数来启动服SERVICE_STOP--允许调用ControlService函数来停止服务DELETE--允许调用DeleteService函数来删除服务
.参数 dwServiceType, 整数型, , 服务的类型我们的教程中只用得到SERVICE_KERNEL_DRIVER,这个值和注册表中的Type键的值是相对应的
.参数 dwStartType, 整数型, , 表示在什么时候启动服务,如果我们需要手动启动驱动的话,那么使用SERVICE_DEMAND_START参数,如果驱动程序需要在系统启动的时候就被启动,那么使用SERVICE_AUTO_START参数,这个取值和注册表中的Start键的取值是相对应的
.参数 dwErrorControl, 整数型, , 表示当驱动初始化的时候出错该如何处理,取值SERVICE_ERROR_IGNORE表示忽略错误,取值SERVICE_ERROR_NORMAL表示将错误记录到系统日志中去,这个取值和注册表中的ErrorControl键值是相对应的
.参数 lpBinaryPathName, 文本型, , 指向以0结尾的表示驱动程序文件名的字符串,这个值和注册表中的ImagePath的键值是相对应的
.参数 lpLoadOrderGroup, 整数型, , 指向以0结尾的表示组名称的字符串,表示该驱动属于哪个组,既然我们的例子程序不属于任何组,那么这里就用NULL好了
.参数 lpdwTagId, 整数型, , 指向一个32位的缓冲区,用来接收驱动在lpLoadOrderGroup参数指定的组中的唯一的标识,我们的例子中不需要用到这个表示,所以参数指定为NULL
.参数 lpDependencies, 整数型, , 对于驱动程序来说,这个参数没什么用途,设置为NULL好了
.参数 lpServiceStartName, 整数型, , 指向一个以0结尾的表示帐号名称的字符串,用于指定服务允许在哪个帐号下运行,如果服务类型是SERVICE_KERNEL_DRIVER的话,该帐号就是系统装入服务的模块名称,我们在这里使用NULL,表示由默认的模块装入
.参数 lpPassword, 整数型, , 对于驱动程序来说,这个参数没什么用途,设置为NULL好了
.DLL命令 Api_OpenServiceA, 整数型, "advapi32.dll", "OpenServiceA", , 打开服务,
.参数 hSCManager, 整数型, , 由CreateServiceA返回的句柄
.参数 lpServiceName, 文本型, , 服务名称
.参数 dwDesiredAccess, 整数型, , 983551指定需要访问服务的操作
.DLL命令 Api_StartServiceA, 整数型, "advapi32.dll", "StartServiceA", , 开始启动系统服务,开始运行服务
.参数 服务句柄, 整数型, , CreateService返回的驱动的句柄
.参数 dwNumServiceArgs, 整数型, , 0
.参数 lpServiceArgVectors, 整数型, , 0
.DLL命令 Api_CloseServiceHandle, 整数型, "advapi32.dll", "CloseServiceHandle", , 关闭SC服务管理句柄_,
.参数 SC对象句柄, 整数型, , 由OpenSCManagerA和CreateServiceA返回的句柄关闭时应关闭两个
.DLL命令 Api_CreateFileA, 整数型, "kernel32.dll", "CreateFileA", , 创建文件_,这是一个全功能的例程可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ——返回值:如执行成功则返回文件句柄.INVALID_HANDLE_VALUE表示出错会设置GetLastError.即使函数成功但若文件存在且指定了CREATE_ALWAYS 或 OPEN_ALWAYSGetLastError也会设为ERROR_ALREADY_EXISTS 例子:查看例程API程序自杀
.参数 打开文件名, 文本型, , lpFileName要打开的文件的名字
.参数 访问权限, 整数型, , dwDesiredAccess如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零表示只允许获取与一个设备有关的信息
.参数 共享方式, 整数型, , dwShareMode
.参数 security特性, 整数型, , lpSecurityAttributes是指向SECURITY_ATTRIBUTES结构的指针,指定了目录的security属性,但要求文件系统支持如NTFS的格式。Windows 98不支持此属性,在函数调用时应设置为NULL
.参数 创建方式, 整数型, , dwCreationDispositiondwCreationDisposition Long下述常数之一:
.参数 文件属性, 整数型, , dwFlagsAndAttributesdwFlagsAndAttributes Long一个或多个下述常数
.参数 从文件复制文件属性, 整数型, , hTemplateFile如果不为零则指定一个文件句柄.新文件将从这个文件中复制扩展属性
.DLL命令 Api_ControlService, 整数型, "advapi32.dll", "ControlService", , 停止系统服务_,用来停止系统服务
.参数 hService, 整数型, , 用 OpenService 返回的句柄
.参数 dwControl, 整数型, , 用于驱动程序的时候,这个参数总是设置为NULL
.参数 lpServiceStatus, SERVICE_STATUS, 传址, 同上,也为NULL
.DLL命令 Api_OpenSCManagerA, 整数型, "advapi32.dll", "OpenSCManagerA", , 打开SC管理服务_,建立服务首先应用此函数打开然后再用OpenServiceA打开服务获得服务控制管理器数据库的句柄
.参数 机器名称, 文本型, , lpMachineName用取本机名取得就是本机的名称指向需要打开的计算机名字符串,字符串以NULL结尾,如果参数指定为NULL,表示连接到本机上的SCM
.参数 数据库名, 文本型, , lpDatabaseName指向以NULL结尾的包含SCM数据库名称的字符串,字符串应该指定为"ServicesActive",如果参数指定为NULL,则默认打开"ServicesActive"
.参数 数据库, 整数型, , dwDesiredAccess指定访问SCM的权限,这个参数告诉SCM我们需要进行什么样的操作,常用的取值有三个:SC_MANAGER_CREATE_SERVICESC_MANAGER_CREATE_SERVICESC_MANAGER_ALL_ACCESS
.DLL命令 Api_DeviceIoControl, 逻辑型, "kernel32.dll", "DeviceIoControl", , 设备操作_,对设备执行指定的操作
.参数 驱动句柄, 整数型, , 加载驱动返回的句柄
.参数 驱动控制码, 整数型, , 与驱动程序通信的控制码,十进制
.参数 输入指针, 整数型, , 欲输入数据的指针,无用请写将此参数设置为0
.参数 输入指针长度, 整数型, , 无用请写将此参数设置为0
.参数 输出指针, 整数型, , 欲输出数据的指针,无用请写将此参数设置为0
.参数 输出指针长度, 整数型, , 无用请写将此参数设置为0
.参数 缓冲区字节数, 整数型, , lpBytesReturned实际装载到输出缓冲区的字节数量
.参数 OVERLAPPED结构地址, 整数型, , lpOverlappedOVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 Api_DeleteService, 整数型, "advapi32.dll", "DeleteService", , 删除服务,成功返回0失败返回非0
.参数 hService, 整数型, , OpenSCManager的数据库句柄
.DLL命令 Api_MultiByteToWideChar, 整数型, "kernel32.dll", "MultiByteToWideChar"
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpMultiByteStr, 文本型
.参数 cchMultiByte, 整数型
.参数 lpWideCharStr, 字节集
.参数 cchWideChar, 整数型
.DLL命令 Api_取指针_字节集, 整数型, "kernel32.dll", "lstrcpyn"
.参数 欲取其指针, 字节集, 传址
.参数 欲取其指针, 字节集, 传址
.参数 保留, 整数型, , 0
.DLL命令 Api_取指针_整数, 整数型, "kernel32.dll", "lstrcpyn", 公开
.参数 欲取其指针, 整数型, 传址
.参数 欲取其指针, 整数型, 传址
.参数 保留, 整数型, , 0
.DLL命令 Api_lopen, 整数型, "kernel32.dll", "_lopen"
.参数 lpPathName, 文本型
.参数 iReadWrite, 整数型
.DLL命令 Api_ZwQueryObject, 整数型, "ntdll.dll", "ZwQueryObject", , status = ZwQueryObject(handle, 1, namebuf, 2000, &ret);
.参数 ObjectHandle, 整数型
.参数 ObjectInformationClass, 整数型
.参数 ObjectInformation, OBJECT_NAME_INFORMATION, 传址
.参数 ObjectInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 Api_WToM, 整数型, "kernel32.dll", "WideCharToMultiByte"
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpWideCharStr, 字节型, 数组
.参数 cchWideChar, 整数型
.参数 lpMultiByteStr, 文本型
.参数 cchMultiByte, 整数型
.参数 lpDefaultChar, 整数型
.参数 lpUsedDefaultChar, 整数型
.DLL命令 Api_lclose, 整数型, "kernel32.dll", "_lclose"
.参数 hFile, 整数型
.DLL命令 Api_QueryDosDevice, 整数型, "kernel32.dll", "QueryDosDeviceA"
.参数 lpDeviceName, 文本型
.参数 lpTargetPath, 文本型
.参数 ucchMax, 整数型
.DLL命令 Api_StrCmpNI, 整数型, "shell32.dll", "StrCmpNIA"
.参数 lpStr1, 文本型
.参数 lpStr2, 文本型
.参数 nChar, 整数型
.DLL命令 Api_ZwQuerySystemInformation, 整数型, "ntdll.dll", "ZwQuerySystemInformation"
.参数 SystemInformationClass, 整数型
.参数 SystemInformation, 字节集, , any
.参数 SystemInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 Api_RtlMoveMemory_整数, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 dest, 整数型, 传址
.参数 Source, 整数型
.参数 len, 整数型
.DLL命令 Api_RtlMoveMemory_Pro, 整数型, "kernel32.dll", "RtlMoveMemory", , 常规API
.参数 dest, System_Handle_Table_Emtry_INFO
.参数 Source, 整数型
.参数 len, 整数型, , 284
.DLL命令 Api_ZwOpenProcess, 整数型, "ntdll.dll", "ZwOpenProcess"
.参数 hProcess, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 ObjectAttributes, Object_Attributes
.参数 ClientId, Client_ID
.DLL命令 Api_DuplicateHandle, 整数型, "kernel32.dll", "DuplicateHandle"
.参数 hSourceProcessHandle, 整数型
.参数 hSourceHandle, 整数型
.参数 hTargetProcessHandle, 整数型
.参数 lpTargetHandle, 整数型, 传址
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwOptions, 整数型
.DLL命令 Api_ZwClose, 整数型, "ntdll.dll", "ZwClose"
.参数 hnd
.DLL命令 Api_GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA"
.参数 lpModuleName, 文本型
.DLL命令 Api_GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress"
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 Api_FreeLibrary, 整数型, "kernel32.dll", "FreeLibrary"
.参数 hModule, 整数型
.DLL命令 Api_CreateRemoteThread, 整数型, "kernel32.dll", "CreateRemoteThread"
.参数 hProcess, 整数型
.参数 lpThreadAttributes, 整数型
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 整数型
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型, 传址
.DLL命令 Api_GetExitCodeThread, 整数型, "kernel32.dll", "GetExitCodeThread"
.参数 h, 整数型
.参数 ret, 整数型, 传址
.DLL命令 Api_WaitForSingleObject, 整数型, "kernel32.dll", "WaitForSingleObject"
.参数 hHandle, 整数型
.参数 dwMilliseconds, 整数型
.DLL命令 Api_TerminateThread, 整数型, "kernel32.dll", "TerminateThread"
.参数 a, 整数型
.参数 b, 整数型, , 0
.DLL命令 CallWindowProc, 整数型, "user32.dll", "CallWindowProcA"
.参数 lpPrevWndFunc, 子程序指针
.参数 hWnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 CallWindowProc2, 整数型, "user32.dll", "CallWindowProcA"
.参数 lpPrevWndFunc, 子程序指针
.参数 总文件数量, 整数型
.参数 当前是第几个文件, 整数型
.参数 当前文件名, 文本型
.参数 当前文件后缀, 文本型
.DLL命令 DragAcceptFiles, 整数型, "shell32.dll", "DragAcceptFiles"
.参数 hwnd, 整数型
.参数 fAccept, 整数型
.DLL命令 DragQueryFile, 整数型, "shell32.dll", "DragQueryFileA"
.参数 hDrop, 整数型
.参数 iFile, 整数型
.参数 lpszFile, 文本型
.参数 cch, 整数型
.DLL命令 DragFinish, 整数型, "shell32.dll", "DragFinish"
.参数 hDrop, 整数型
.DLL命令 SetWindowLong, 子程序指针, "user32.dll", "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 子程序指针
.DLL命令 AutoClear, , "KKClean.dll", , , AutoClear,ClearAddr,ClearPwd,ClearSys
.DLL命令 ClearSys, , "KKClean.dll"
.DLL命令 ClearPwd, , "KKClean.dll"
.DLL命令 ClearAddr, , "\KKClean.dll", "ClearAddr"
.DLL命令 DLL命令1
.DLL命令 _终止进程, 整数型, , "TerminateProcess"
.参数 id
.参数 a
.DLL命令 _取自进程ID, 整数型, "kernel32.dll", "GetCurrentProcessId"
.DLL命令 OpenProcess, 整数型
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 RtlAdjustPrivilege, 整数型, "ntdll.dll"
.参数 se_, 整数型
.参数 true_, 逻辑型
.参数 hprocess, 整数型
.参数 ret, 整数型, 传址
.DLL命令 DLL命令2
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...