首页
社区
课程
招聘
[求助]遍历进程模块时有GPK护驾的游戏进程 module32first失效
发表于: 2012-3-8 21:04 6989

[求助]遍历进程模块时有GPK护驾的游戏进程 module32first失效

2012-3-8 21:04
6989
遍历进程模块时有GPK护驾的游戏进程 module32first失效
该如何处理?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 253
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我不会 大虾们能否赐教 delphi版本的
2012-3-9 00:09
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ZwQueryVirtualMemory
2012-3-9 09:57
0
雪    币: 69
活跃值: (157)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
干掉gpk 就可以了,钩子很容易绕过~
2012-3-10 00:37
0
雪    币: 253
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
使用ZwQueryVirtualMemory枚举进程模块
Public Sub PrintProcessModules(ByVal dwProcessId As Long)
    Dim ntStatus As Long
    Dim objCid As CLIENT_ID
    Dim objOa As OBJECT_ATTRIBUTES
    Dim hProcess As Long
    Dim dwVirtualAddr As Long
    Dim pName As UNICODE_STRING1
    Dim dwRet As Long
    Dim intRet As Integer
    Dim strModuleName As String
    Dim pDosHeader As IMAGE_DOS_HEADER
    Dim pNtHeaders As IMAGE_NT_HEADERS
    Dim dwImageSize As Long
    Dim MemoryBase As MEMORY_BASIC_INFORMATION
    objOa.Length = Len(objOa)
    objCid.UniqueProcess = dwProcessId
    ntStatus = NtOpenProcess(hProcess, PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, objOa, objCid)
    If hProcess = 0 Then
        hProcess = GetHandleByProcessId(dwProcessId)
        If hProcess = 0 Then
            Exit Sub
        End If
    End If
    dwVirtualAddr = &H1000
    Do While dwVirtualAddr <> &H7FFF0000
        ntStatus = ZwQueryVirtualMemory(hProcess, dwVirtualAddr, 0, VarPtr(MemoryBase), LenB(MemoryBase), dwRet)
        If NT_SUCCESS(ntStatus) Then
            If MemoryBase.AllocationBase = 0 Then
                dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize
                dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize Mod &H1000
                GoTo NextLoop
            Else
                ntStatus = ZwQueryVirtualMemory(hProcess, dwVirtualAddr, 2, VarPtr(pName), LenB(pName), dwRet)
                If NT_SUCCESS(ntStatus) Then
                    ReadProcessMemory hProcess, ByVal MemoryBase.AllocationBase, pDosHeader, LenB(pDosHeader), ByVal 0&
                    If pDosHeader.Magic <> &H5A4D Then
                        dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize
                        dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize Mod &H1000
                        GoTo NextLoop
                    End If
                    ReadProcessMemory hProcess, ByVal MemoryBase.AllocationBase + pDosHeader.lfanew, pNtHeaders, LenB(pNtHeaders), ByVal 0&
                    If pNtHeaders.Signature <> IMAGE_NT_SIGNATURE Then
                        dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize
                        dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize Mod &H1000
                        GoTo NextLoop
                    End If
                    strModuleName = Left(pName.pBuffer, InStr(pName.pBuffer, vbNullChar) - 1)
                    'Debug.Print strModuleName; MemoryBase.AllocationBase; pNtHeaders.OptionalHeader.ImageSize
                    If MemoryBase.Type = &H1000000 Then
                        Form1.List1.AddItem strModuleName & ";" & Hex(MemoryBase.AllocationBase) & ";" & Hex(pNtHeaders.OptionalHeader.ImageSize) & ";State:" & Hex(MemoryBase.State) & ";Type:" & Hex(MemoryBase.Type) & ";AllocationProtect:" & Hex(MemoryBase.AllocationProtect) & ";Protect:" & Hex(MemoryBase.Protect)
                    End If
                    'dwVirtualAddr = dwVirtualAddr + pNtHeaders.OptionalHeader.ImageSize
                    dwVirtualAddr = MemoryBase.AllocationBase + pNtHeaders.OptionalHeader.ImageSize
                    dwVirtualAddr = dwVirtualAddr + pNtHeaders.OptionalHeader.ImageSize Mod &H1000
                Else
                    dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize
                    dwVirtualAddr = dwVirtualAddr + MemoryBase.RegionSize Mod &H1000
                End If
            End If
        Else
            dwVirtualAddr = dwVirtualAddr + &H1000
        End If
NextLoop:
    Loop
    NtClose hProcess
End Sub
2012-3-10 14:04
0
雪    币: 253
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
改下vb代码成功,tks
2012-3-10 14:05
0
游客
登录 | 注册 方可回帖
返回
//