素颜内核驱动模块易语言源码
系统结构:字节集到内存,内存到字节集,十六到十,取进程ID,加载驱动_,卸载驱动_,CTL_CODE,驱动通信,卸载驱动,驱动初始化,卸载内核驱动,取驱动句柄,终止进程,打开进程,打开线程,读数据,写数据,读字节集,写字节集,读整数型,写整数型,读文本型,写文本型,读长整数型,写长整数型,读小数型,写小数型,读短整数型,写短整数型,读代码,写代码,搜索,DeleteService,OpenSCManagerA,CreateServiceA,StartServiceA,取指针_整数,CloseServiceHandle,OpenServiceA,CreateFileA,ControlService,DeviceIoControl,VirtualQueryEx,ReadProcessMemory_字节集,CloseHandle,TerminateProcess,CreateToolhelp32Snapshot,Process32First,Process32Next,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |------ __启动窗口_将被销毁
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 字节集到内存
| |
| |------ 内存到字节集
| |
| |------ 十六到十
| |
| |------ 取进程ID
| |
| |
======驱动操作类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 加载驱动_
| |
| |------ 卸载驱动_
| |
| |------ CTL_CODE
| |
| |------ 驱动通信
| |
| |------ 卸载驱动
| |
| |
======内核进程操作
| |
| |------ 驱动初始化
| |
| |------ 卸载内核驱动
| |
| |------ 取驱动句柄
| |
| |------ 终止进程
| |
| |------ 打开进程
| |
| |------ 打开线程
| |
| |------ 读数据
| |
| |------ 写数据
| |
| |------ 读字节集
| |
| |------ 写字节集
| |
| |------ 读整数型
| |
| |------ 写整数型
| |
| |------ 读文本型
| |
| |------ 写文本型
| |
| |------ 读长整数型
| |
| |------ 写长整数型
| |
| |------ 读小数型
| |
| |------ 写小数型
| |
| |------ 读短整数型
| |
| |------ 写短整数型
| |
| |------ 读代码
| |
| |------ 写代码
| |
| |------ 搜索
| |
| |
======调用的Dll
| |
| |---[dll]------ _DeviceIoControl
| |
| |---[dll]------ DeleteService
| |
| |---[dll]------ OpenSCManagerA
| |
| |---[dll]------ CreateServiceA
| |
| |---[dll]------ StartServiceA
| |
| |---[dll]------ 取指针_整数
| |
| |---[dll]------ CloseServiceHandle
| |
| |---[dll]------ OpenServiceA
| |
| |---[dll]------ CreateFileA
| |
| |---[dll]------ ControlService
| |
| |---[dll]------ DeviceIoControl
| |
| |---[dll]------ VirtualQueryEx
| |
| |---[dll]------ ReadProcessMemory_字节集
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ TerminateProcess
| |
| |---[dll]------ CreateToolhelp32Snapshot
| |
| |---[dll]------ Process32First
| |
| |---[dll]------ Process32Next
调用的DLL命令:
.DLL命令 _DeviceIoControl, 整数型, "kernel32.dll", "DeviceIoControl", , 设备操作_,对设备执行指定的操作
.参数 驱动句柄, 整数型, , hDevice设备句柄
.参数 驱动控制码, 整数型, , dwIoControlCode带有 FSCTL_ 前缀的常数.参考设备控制选项的部分列表设备控制选项的部分列表——参考DeviceIoControl函数
.参数 输入指针, 整数型, , lpInBuffer具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 输入指针长度, 整数型, , nInBufferSize输入缓冲区的长度
.参数 输出指针, 整数型, , lpOutBuffer Anyany型根据实际需要修改 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 输出指针长度, 整数型, , nOutBufferSize输出缓冲区的长度
.参数 缓冲区字节数, 整数型, 传址, lpBytesReturned实际装载到输出缓冲区的字节数量
.参数 OVERLAPPED结构地址, 整数型, , lpOverlappedOVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 DeleteService, 整数型, "advapi32.dll", "DeleteService", , 删除服务,成功返回0失败返回非0
.参数 hService, 整数型, , OpenSCManager的数据库句柄
.DLL命令 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命令 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命令 StartServiceA, 整数型, "advapi32.dll", "StartServiceA", , 开始启动系统服务,开始运行服务
.参数 服务句柄, 整数型, , CreateService返回的驱动的句柄
.参数 dwNumServiceArgs, 整数型, , 0
.参数 lpServiceArgVectors, 整数型, , 0
.DLL命令 取指针_整数, 整数型, , "lstrcpyn"
.参数 欲取其指针, 整数型, 传址
.参数 欲取其指针, 整数型, 传址
.参数 保留, 整数型
.DLL命令 CloseServiceHandle, 整数型, "advapi32.dll", "CloseServiceHandle", , 关闭SC服务管理句柄_,
.参数 SC对象句柄, 整数型, , 由OpenSCManagerA和CreateServiceA返回的句柄关闭时应关闭两个
.DLL命令 OpenServiceA, 整数型, "advapi32.dll", "OpenServiceA", , 打开服务,
.参数 hSCManager, 整数型, , 由CreateServiceA返回的句柄
.参数 lpServiceName, 文本型, , 服务名称
.参数 dwDesiredAccess, 整数型, , 983551指定需要访问服务的操作
.DLL命令 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命令 ControlService, 整数型, "advapi32.dll", "ControlService", , 停止系统服务_,用来停止系统服务
.参数 hService, 整数型, , 用 OpenService 返回的句柄
.参数 dwControl, 整数型, , 用于驱动程序的时候,这个参数总是设置为NULL
.参数 lpServiceStatus, SERVICE_STATUS, 传址, 同上,也为NULL
.DLL命令 DeviceIoControl, 整数型, "kernel32.dll", "DeviceIoControl", , 设备操作_,对设备执行指定的操作
.参数 设备句柄, 整数型, , hDevice设备句柄
.参数 控制参数, 整数型, , dwIoControlCode带有 FSCTL_ 前缀的常数.参考设备控制选项的部分列表设备控制选项的部分列表——参考DeviceIoControl函数
.参数 参数一, 整数型, , lpInBuffer具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数二, 整数型, , nInBufferSize输入缓冲区的长度
.参数 参数三, , , lpOutBuffer Anyany型根据实际需要修改 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 参数四, 整数型, , nOutBufferSize输出缓冲区的长度
.参数 缓冲区字节数, 整数型, , lpBytesReturned实际装载到输出缓冲区的字节数量
.参数 OVERLAPPED结构地址, 重叠操作_, , lpOverlappedOVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 VirtualQueryEx, 整数型, "kernel32.dll", "VirtualQueryEx", , 取内存属性,返回虚拟保护
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 lpBuffer, 内存属性
.参数 dwLength, 整数型
.DLL命令 ReadProcessMemory_字节集, 整数型, , "ReadProcessMemory", , 内存读字节集
.参数 hProcess, 整数型
.参数 内存地址, 整数型
.参数 数据指针, 字节集, 传址
.参数 数据长度, 整数型
.参数 读取的长度, 整数型, 传址
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle", , 关闭内核对象_,关闭一个内核对象.其中包括文件、文件映射、进程、线程、security和同步对象等.涉及文件处理时这个函数通常与vb的close命令相似.应尽可能的使用close因为它支持vb的差错控制.注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功零表示失败.会设置GetLastError ——注解:除非对内核对象的所有引用都已关闭否则该对象不会实际删除
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 TerminateProcess, 整数型, "kernel32.dll", "TerminateProcess"
.参数 hProcess, 整数型
.参数 Exit, 整数型
.DLL命令 CreateToolhelp32Snapshot, 整数型, "Kernel32.dll", "CreateToolhelp32Snapshot"
.参数 falg, 整数型
.参数 id, 整数型
.DLL命令 Process32First, 整数型, "Kernel32.dll", "Process32First"
.参数 h, 整数型
.参数 p, PROCESSENTRY32
.DLL命令 Process32Next, 整数型, "Kernel32.dll", "Process32Next"
.参数 h, 整数型
.参数 p, PROCESSENTRY32
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...