驱动读写相关源码

.版本 2 .程序集 NuanF, , 公开 .程序集变量 M_Path, 文本型 .程序集变量 M_Name, 文本型 .程序集变量 M_hDevice, 整数型 .子程序 _初始化 .子程序 _销毁 .子程序 安装驱动, 逻辑型, 公开 置入代码 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP保护开始标志 目录 = “C:\windows\” 驱动名 = 动态名称 () M_Path = 目录 + 驱动名 + “.sys” M_Name = DriveControl.GetDriverName (#SYS) M_hDevice = DriveControl.GetDriveHandle (M_Name) ' 判断是否加载过了,如果加载过了,就不加载驱动,直接尝试获取设备句柄 .如果真 (M_hDevice ≤ 0) ' M_hDevice小于或等于0则表示驱动未加载 写到文件 (M_Path, #SYS) 置文件属性 (M_Path, #隐藏文件 + #系统文件) M_hDevice = DriveControl.LoadDrive (M_Path, M_Name, M_Name, M_Name) .如果真结束 .如果真 (M_hDevice ≤ 0) DriveControl.UninstallDrive (M_Name, 真) 返回 (假) .如果真结束 删除文件 (M_Path) 返回 (真) 置入代码 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP保护结束标志 .子程序 卸载驱动, 逻辑型, 公开 置入代码 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP保护开始标志 CloseHandle (M_hDevice) ' 关闭掉驱动设备句柄才能卸载掉驱动 DriveControl.UninstallDrive (M_Name, 真) 删除文件 (M_Path) 返回 (真) 置入代码 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP保护结束标志 .子程序 读字节集, 字节集, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Size, 整数型 .局部变量 Src, 字节集 .局部变量 dwCount, 整数型 .局部变量 RWInfo, READ_WRITE_INFO RWInfo.uPid = Pid RWInfo.Dst = Address RWInfo.uSize = Size Src = 取空白字节集 (Size) DeviceIoControl (M_hDevice, 2236428, asm_strcpyn_READ_WRITE_INFO (RWInfo), 24, asm_strcpyn_Bin (Src), Size, asm_strcpyn_Int (dwCount), 0) 返回 (Src) .子程序 写字节集, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Src, 字节集 .局部变量 dwSize, 整数型 .局部变量 dwCount, 整数型 .局部变量 Buff, 字节集 .局部变量 pBuff, 整数型 dwSize = 取字节集长度 (Src) Buff = 取空白字节集 (24 + dwSize) pBuff = asm_strcpyn_Bin (Buff) asm_CopyMemory (pBuff, asm_strcpyn_Ulong (Pid), 8) asm_CopyMemory (pBuff + 8, asm_strcpyn_Ulong (Address), 8) asm_CopyMemory (pBuff + 16, asm_strcpyn_Ulong (dwSize), 8) asm_CopyMemory (pBuff + 24, asm_strcpyn_Bin (Src), dwSize) DeviceIoControl (M_hDevice, 2236432, pBuff, 24 + dwSize, 0, 0, asm_strcpyn_Int (dwCount), 0) 返回 (真) .子程序 读整数型, 整数型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 4), #整数型, )) .子程序 写整数型, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 整数型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 读字节型, 字节型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 1), #字节型, )) .子程序 写字节型, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 字节型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 读长整数, 长整数型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 8), #长整数型, )) .子程序 写长整数, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 长整数型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 读短整数, 短整数型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 2), #短整数型, )) .子程序 写短整数, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 短整数型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 读小数型, 小数型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 4), #小数型, )) .子程序 写小数型, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 小数型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 读双精度小数型, 双精度小数型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 返回 (取字节集数据 (读字节集 (Pid, Address, 8), #双精度小数型, )) .子程序 写双精度小数型, 逻辑型, 公开 .参数 Pid, 整数型 .参数 Address, 长整数型 .参数 Buffer, 双精度小数型 返回 (写字节集 (Pid, Address, 到字节集 (Buffer))) .子程序 申请内存, 长整数型, 公开 .参数 Pid, 整数型 .参数 Size, 整数型 .局部变量 Src, 字节集 .局部变量 dwCount, 整数型 .局部变量 RWInfo, READ_WRITE_INFO RWInfo.uPid = Pid RWInfo.uSize = Size Src = 取空白字节集 (8) DeviceIoControl (M_hDevice, 2236444, asm_strcpyn_READ_WRITE_INFO (RWInfo), 24, asm_strcpyn_Bin (Src), 8, asm_strcpyn_Int (dwCount), 0) 返回 (取字节集数据 (Src, #长整数型, )) .子程序 取模块地址, 长整数型, 公开 .参数 Pid, 整数型 .参数 Modules, 文本型 .局部变量 Src, 字节集 .局部变量 dwCount, 整数型 .局部变量 Module, READ_WRITE_INFO Src = 取空白字节集 (8) Module.uPid = Pid Module.Dst = asm_strcpyn_String (Modules) DeviceIoControl (M_hDevice, 2236436, asm_strcpyn_READ_WRITE_INFO (Module), 24, asm_strcpyn_Bin (Src), 8, asm_strcpyn_Int (dwCount), 0) 返回 (取字节集数据 (Src, #长整数型, ))
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注