零起点学VB做外挂(六)

来源:互联网 发布:粉笔直播课淘宝 编辑:程序博客网 时间:2024/05/19 01:59

CE查找基址的方法,大家也都学会了。那么在辅助所需的偏移量,我们就可以写出第一个小挂了。

写个什么呢...我想那就从人物名称和血量法量信息好了。

首先需要找到武林外传的窗口句柄,我们利用如下语句可以得到: 

hWndG = FindWindow(vbNullString, "Element Client")

再获取processID:     

GetWindowThreadProcessId hWndG, pid
此时我们就可以利用从CE中得到的基址和偏移量来进行数据读取了,下面就是人物资料的读取源代码:

hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
'下面的代码是为了获取人物状态-------------------------------------------------------------------------------------------------
        ReadProcessMemory hProcess, ByVal baseaddr, h, 4, 0&    '这个是存放基址的地址baseaddr=0x12F824
        ReadProcessMemory hProcess, ByVal (h + &H24), eax, 4, 0&'[base+&H24]
        
        ReadProcessMemory hProcess, ByVal (eax + &H24C), dengji, 4, 0&   '获得等级[[base+&H24]+&H24C]
        ReadProcessMemory hProcess, ByVal (eax + &H254), HP, 4, 0&       '当前红[[base+&H24]+&H254]
        ReadProcessMemory hProcess, ByVal (eax + &H26C), HPMAX, 4, 0&    '最大红
        ReadProcessMemory hProcess, ByVal (eax + &H258), MP, 4, 0&       '当前蓝
        ReadProcessMemory hProcess, ByVal (eax + &H270), MPMAX, 4, 0&    '最大蓝
        ReadProcessMemory hProcess, ByVal (eax + &H2D4), money, 4, 0&    '获得金钱数
        ReadProcessMemory hProcess, ByVal (eax + &H25C), exp, 4, 0&      '获得经验值
              
        ReadProcessMemory hProcess, ByVal (eax + &H3DC), renx, 4, 0&     '获得x地址
        ReadProcessMemory hProcess, ByVal (eax + &H3CC), reny, 4, 0&     '获得y地址
        ReadProcessMemory hProcess, ByVal (eax + &H240), manID, 4, 0&    '人物ID
        ReadProcessMemory hProcess, ByVal (eax + &H3A4), yundong, 1, 0&  '人物运动状态:跑动=1,跳起=4,停止=0
        ReadProcessMemory hProcess, ByVal (eax + &H408), zhandou, 1, 0&  '人物战斗状态:战斗=1
               
        ReadProcessMemory hProcess, ByVal (eax + &H390), namep, 4, 0&
        ReadProcessMemory hProcess, ByVal namep, renwuname(0), 32, 0&       '获得人物名称
'下面的代码是为了输出人物状态-------------------------------------------------------------------------------------------------

                Label2.Caption = "人 物 名 称  :" & CStr(renwuname)
                Label3.Caption = "当前/最大红:" & HP & "/" & HPMAX & "[" & CStr(HP * 100 / HPMAX) & "%]"
                Label4.Caption = "当前/最大蓝:" & MP & "/" & MPMAX & "[" & CStr(MP * 100 / MPMAX) & "%]"
                Label5.Caption = "人 物 等 级:" & dengji & "级"
                Label23.Caption = "等 级 经 验:" & exp & "/" & jibieexp & "[" & CStr(exp * 100 / jibieexp) & "%]"
                Label6.Caption = "人 物 坐 标  :" & "(" & CInt(renx) & "," & CInt(reny) & ")"
                Label1.Caption = "人 物 金 钱  :" & Int(money / 10000) & " 金 " & Int((money Mod 10000) / 100) & " 银 " & (money Mod 100) & " 铜 "
               
                If zhandou = 1 And yundong = 0 Then
                    If yundong = 0 Then
                        Label12.Caption = "战斗/运动状态: 战斗+静止"
                    ElseIf yundong = 1 Then
                        Label12.Caption = "战斗/运动状态: 战斗+跑动"
                    ElseIf yundong = 4 Then
                        Label12.Caption = "战斗/运动状态: 战斗+跳起"
                    End If
                Else
                    If yundong = 0 Then
                        Label12.Caption = "战斗/运动状态: 静止"
                    ElseIf yundong = 1 Then
                        Label12.Caption = "战斗/运动状态: 跑动"
                    ElseIf yundong = 4 Then
                        Label12.Caption = "战斗/运动状态: 跳起"
                    End If
                 End If
CloseHandle hProcess
'处理结束-----------------------------------------------------------------------------------------------------------

上面的代码就是我们读取人物信息并且显示出来。偏移量大部分是从网上查出来的,如果要自己找也行。只要利用上次所讲的CE就可以查出来的。

如果只是开软件的时候显示出人物信息,就放在form_load函数内,如果要实时显示就需要开一个timer了,将此代码放入timer内即可。

不知道我讲的明白不?如果还有问题请回帖,我会再给大家讲解的。

原创粉丝点击