zoukankan      html  css  js  c++  java
  • Win8下枚举任意进程的句柄表。。。(VB6 Code)

    添加一个Command1、一个List1,代码:

    Private Type PROCESS_HANDLE_TABLE_ENTRY_INFO
    HandleValue As Long
    HandleCount As Long
    PointerCount As Long
    GrantedAccess As Long
    ObjectTypeIndex As Long
    HandleAttributes As Long
    Reserved As Long
    End Type
    Private Type PROCESS_HANDLE_SNAPSHOT_INFORMATION
    NumberOfHandles As Long
    Reserved As Long
    'Handles(0) As PROCESS_HANDLE_TABLE_ENTRY_INFO
    End Type
    Private Const ProcessHandleInformation = 51
    Private Declare Function NtQueryInformationProcess& Lib "ntdll" (ByVal ProcessHandle&, ByVal ProcessInformationClass&, ByVal ProcessInformation&, ByVal ProcessInformationLength&, ByRef ReturnLength&)
    Private Declare Sub RtlMoveMemory Lib "ntdll" (ByVal Dst&, ByVal Src&, ByVal Length&)
    Private Sub Command1_Click()
    Dim i As PROCESS_HANDLE_SNAPSHOT_INFORMATION
    Me.Caption = Hex(NtQueryInformationProcess(-1, ProcessHandleInformation, VarPtr(i), 8, s)) '取缓冲区大小
    ReDim buf(s * 2) As Byte '句柄表变化很大,空间最好开多
    Me.Caption = Hex(NtQueryInformationProcess(-1, ProcessHandleInformation, VarPtr(buf(0)), s * 2, s))
    Dim p As PROCESS_HANDLE_TABLE_ENTRY_INFO
    Dim pp&, c&, j&
    RtlMoveMemory VarPtr(c), VarPtr(buf(0)), 4
    pp = VarPtr(buf(0)) + 8
    For j = pp To (pp + c * LenB(p)) - LenB(p) Step LenB(p)
    RtlMoveMemory VarPtr(p), j, LenB(p)
    List1.AddItem p.HandleValue
    Next
    End Sub

    这个代码是枚举自己进程的,可以OpenThread其他线程再枚举。。。

    PS:只能在Win8以上运行。。。Win8以下NtQuerySystemInformation或者读csrss进程。

  • 相关阅读:
    前端安全之XSS攻击
    从JavaScript执行上下文理解变量提升
    em、rem和px的区别
    纯CSS实现幻灯片效果
    小白在使用ISE编写verilog代码综合时犯得错误及我自己的解决办法
    结构体指针中的一点困惑
    xilinx fpga中块ram的使用——简单双端口ram的使用
    在模块中如何去写输出标志位的程序
    学习感悟
    xilinx fpga 生成3*3窗口
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3916508.html
Copyright © 2011-2022 走看看