下你所需,载你所想!
汇集开发技术源码资料

驱动操作反OD附加调试防破解模块源码

:22.078KB :1 :2019-12-11 08:11:36

部分简介

.子程序 驱动操作_加载驱动程序, 逻辑型, , 加载驱动程序,成功返回真(SCM的连接)
.参数 目录, 文本型, , 填写驱动文件路径及名称
.参数 驱动服务名, 文本型, , 这里对应驱动填写服务名称
.局部变量 hService, 整数型
.局部变量 hSCManager, 整数型

' SC_MANAGER_CREATE_SERVICE=0x2
hSCManager = API_OpenSCManager (0, 0, 2)
API_CreateService (hSCManager, 驱动服务名, 驱动服务名, 位或 (16, 32, 65536), 1, 3, 0, 目录, 0, 0, 0, 0, 0)
hService = API_OpenService (hSCManager, 驱动服务名, 位或 (16, 32, 65536))
.如果 (API_StartService (hService, 0, 0) ≠ 0)
    返回 (真)
.否则
    返回 (假)
.如果结束
API_CloseServiceHandle (hService)

.子程序 驱动操作_IOCTL操作代码, 整数型, , IOCTL请求操作代码  %(((DeviceType) SHL 16) OR ((Access) SHL 14) OR ((Function) SHL 2) OR (Method))
.参数 DeviceType, 整数型, , E语言里使用需转换为十进制
.参数 Function, 整数型
.参数 Method, 整数型
.参数 Access, 整数型

返回 (位或 (左移 (DeviceType, 16), 左移 (Access, 14), 左移 (Function, 2), Method))

.子程序 驱动操作_卸载驱动程序, 逻辑型, , 卸载驱动程序,成功返回真(SCM的连接)
.参数 服务名, 文本型, , 这里提供驱动服务的名称 例如:“\\.\a1641242”
.局部变量 stsat, SERVICE_STATUS
.局部变量 hService, 整数型
.局部变量 hSCManager, 整数型

hSCManager = API_OpenSCManager (0, 0, 2)
hService = API_OpenService (hSCManager, 服务名, 位或 (16, 32, 65536))
API_ControlService (hService, 1, stsat)
' SERVICE_CONTROL_STOP=1
.如果 (API_DeleteService (hService))
    返回 (真)
.否则
    返回 (假)
.如果结束
API_CloseServiceHandle (hService)

.子程序 驱动操作_与驱动自动通信, 逻辑型, , 直接与驱动建立通信,这里为自动操作
.参数 IO控制码, 整数型, , 这里提供IOCTL请求操作代码
.参数 服务名称, 文本型, , 这里提供驱动服务的名称 例如:“a1641242”
.参数 输入驱动代码, 整数型, , 提供与驱动通信内容
.参数 输入驱动代码长度, 整数型, , 与驱动通信内容长度
.参数 输出驱动代码, 整数型, , 提供与驱动通信内容
.参数 输出驱动代码长度, 整数型, , 与驱动通信内容长度
.局部变量 驱动句柄, 整数型
.局部变量 是否成功, 整数型

驱动句柄 = API_创建文件 (服务名称, 位或 (2147483648, 1073741824), 0, 0, 3, 128, 0)
是否成功 = 驱动操作_与驱动手动通信 (驱动句柄, IO控制码, 输入驱动代码, 输入驱动代码长度, 输出驱动代码, 输出驱动代码长度)
CloseHandle (驱动句柄)
.如果 (是否成功 = 1)
    返回 (真)
.否则
    返回 (假)
.如果结束


.子程序 驱动操作_与驱动手动通信, 整数型, , 操作驱动程序,成功返回1,这里为手动
.参数 驱动句柄, 整数型, , 加载驱动返回的句柄
.参数 驱动控制码, 整数型, , 与驱动程序通信的控制码,十进制
.参数 输入指针, 整数型, , 欲输入数据的指针,无用请写将此参数设置为0
.参数 输入指针长度, 整数型, , 无用请写将此参数设置为0
.参数 输出指针, 整数型, , 欲输出数据的指针,无用请写将此参数设置为0
.参数 输出指针长度, 整数型, , 无用请写将此参数设置为0
.局部变量 返回值, 整数型
.局部变量 重叠操作_, 重叠操作_

返回值 = DeviceIoControl (驱动句柄, 驱动控制码, 输入指针, 输入指针长度, 输出指针, 输出指针长度, 0, 重叠操作_)
返回 (返回值)

驱动操作反OD附加调试防破解模块源码

热门推荐

相关文章