.版本 2
.子程序 取进程EProcess, 长整数型
.参数 pid, 整数型
.局部变量 ret
.局部变量 信息块, 字节集
.局部变量 retlen
.局部变量 temp, SYSTEM_HANDLE_INFORMATION
.局部变量 信息块指针偏移
.局部变量 number
.局部变量 结果, 长整数型
retlen = 1
.循环判断首 ()
信息块 = 取空白字节集 (retlen)
ret = ZwQuerySystemInformation (#SystemHandleInformation, 信息块, retlen, 0)
.如果 (ret = #STATUS_INFO_LENGTH_MISMATCH)
retlen = retlen × 2
信息块 = 取空白字节集 (retlen)
.否则
跳出循环 ()
.如果结束
.循环判断尾 (ret = #STATUS_INFO_LENGTH_MISMATCH)
信息块指针偏移 = _取指针_字节集 (信息块, 信息块, 0)
_写内存3 (number, 信息块指针偏移, 4)
信息块指针偏移 = 信息块指针偏移 + 4
.计次循环首 (number, )
_写内存2 (temp, 信息块指针偏移, 16)
.如果真 (pid = temp.a 且 temp.b = 5)
返回 (十六文本至长整数 (取十六进制文本 (temp.e)))
.如果真结束
信息块指针偏移 = 信息块指针偏移 + 16
.计次循环尾 ()
返回 (0)
.版本 2
.数据类型 SYSTEM_HANDLE_INFORMATION
.成员 a, 整数型
.成员 b, 字节型
.成员 c, 字节型
.成员 d, 短整数型
.成员 e, 整数型
.成员 f, 整数型
.版本 2
.DLL命令 _写内存3, 整数型, , "RtlMoveMemory"
.参数 dest, 整数型, 传址
.参数 Source, 整数型
.参数 len, 整数型, , 4
.DLL命令 _写内存2, 整数型, , "RtlMoveMemory"
.参数 dest, SYSTEM_HANDLE_INFORMATION
.参数 Source, 整数型
.参数 len, , , 284
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课