为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

驱动读写相关源码

三叶资源网 2020-08-27 16:44:25 易语言例程 1877 ℃ 0 评论
.版本 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, #长整数型, ))

@meng9934

文件下载


来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
限制未授权U盘监听wifi信号强度kktv网易clientTokenSQLite3易语言5.11HOOK拦截变现Vmprotect自动同意进群ETCP工具箱QQ群发插件源码快手自动发布图文监视热键POST调试工具IP地址定位易语言直尺工具源码软件JsDroid2模块
最新评论