是不是很期待今天的内容呢?上次我们已经可以在我们的小软件中显示人物的血量了,那真气值你是不是也会做了!

学习目的:
1.复习上次内容,显示人物名称
2.利用VB实现简单飞天功能

内容:

1.好,下面图片所示的内容你是否做到了,是不是人物名称不知道该怎么显示。


将上次代码中的Timer1_Timer()替换成以下内容
Private Sub Timer1_Timer()
Dim base As Long '存放人物基地址
Dim hp As Long '存储生命值
Dim hpmax As Long '存储生命最大值
Dim mp As Long '存储真气值
Dim mpmax As Long '存储真气最大值
Dim name(31) As Byte ’存放人名字符串
Dim name_temp As Long ‘存放人物值

hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If hProcess Then
   ReadProcessMemory hProcess, ByVal &H8C9E54, base, 4, 0&
   ReadProcessMemory hProcess, ByVal base + &H24, base, 4, 0& '得到为人物基地址,方便以后使用
   ReadProcessMemory hProcess, ByVal base + &H254, hp, 4, 0& '得到生命值
   ReadProcessMemory hProcess, ByVal base + &H26C, hpmax, 4, 0& '得到生命最大值
   ReadProcessMemory hProcess, ByVal base + &H258, mp, 4, 0& '得到真气值
   ReadProcessMemory hProcess, ByVal base + &H270, mpmax, 4, 0& '得到真气最大值
   ReadProcessMemory hProcess, ByVal base + &H390, name_temp, 4, 0& ‘得到人名的值
   ReadProcessMemory hProcess, ByVal name_temp, name(0), 32, 0& ‘转换字符串
  
   CloseHandle hProcess
End If
Label1.Caption = name ‘显示人名
Label2.Caption = "生命值:" & hp & "/" & hpmax '显示生命值
Label3.Caption = "真气值:" & mp & "/" & mpmax '显示真气值
End Sub

2.今天我们学习的重点是简单修改游戏,实现飞天功能。
我想你已经在论坛中看到过飞天修改的文章,没错就是
00459199    6A 0A      push 0A
这个地址,要飞天时需要把0A改01。那么你是否在CE中验证了这个功能呢?

2.1.我们开好CE和游戏,单击[查看内存]按钮


2.2.在[内存察看器]中,在(1)显示的位置上单击鼠标右健,选择[跳转到地址]命令


2.3.在对话框中输入地址:00459199


2.4.(1)显示的就是我们要找的地址,我们要把(2)的0A改为01


2.5.看结果,我们已经修改好啦!修改后:00459199    6A 0A      push 01,在游戏中一直按住空格,是不是很爽(找个人少的地方,小心被...)

3.接下来,我们要在用VB实现这一功能。首先我要做一个工作,还是利用上次内容中的代码加以改进。
模块添加新的声明:
'存储进程内存的函数
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

Timer1_Timer()中的内容:
Private Sub Timer1_Timer()
Dim h As Long
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If hProcess Then
   ReadProcessMemory hProcess, ByVal &H459199, h, 4, 0& ‘显示459199这个地址的值
   CloseHandle hProcess
End If

Label1.Caption = h ‘输出459199地址的值
End Sub


我们得到的值是:-846525846,这是人物不能飞天时的值

4.我们再来看看人物可以飞天时的值。首先用刚才的方法用CE修改达到飞天的功能,再次运行我们的程序,这时的值显示为:-846528150

5.好了,我们只要利用VB改变00459199内的值-846525846或-846528150就可以达到改变是否飞天的功能。我们要添加一个按钮,用来改变00459199内的值。以下是按钮Command的代码:
Private Sub Command1_Click()
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If hProcess Then
   WriteProcessMemory hProcess, ByVal &H459199, -846528150, 4, 0& ‘写入内存-846528150这个值实现飞天功能。
   CloseHandle hProcess
End If
End Sub

运行我们的程序,单击[飞天]按钮,00459199的值被改变了,游戏人物实现飞天功能,CE中的代码也改了,成功!

6.好了,我们实现了简单的飞天功能,但是并没有把这个功能做的更完善,比如飞天与正常的转换,因为我知道你是可以做到的。

一天一天学做外挂@第三天-实现人物飞天效果[武林外传]相关推荐

  1. 一天一天学做外挂@第二天-实现VB显示游戏数据[武林外传]

    学习目的:利用已知的地址,在VB中显示游戏中的相关数据. 内容: 1.建立一个新的标准EXE工程,我们就可以开始这次的学习了. 2.我们要建立一个模块,然后添加以下代码: Option Explici ...

  2. 一天一天学做外挂@第五天-物品清单我知道[武林外传]

    经过前四天的学习,我想很多朋友一定已经完成一个简单的挂机程序了,不过是不是觉得还不够智能,不够完善呢!如果我们能得到更多的数据,就能更好的控制流程. 学习目的: 1.第四天教程后续延伸 2.地面物品显 ...

  3. 一天一天学做外挂@第八天-门当户对分清楚[武林外传]

    如果你认真的学习过前七篇的内容,并且在原内容的基础上去延伸,你一定可以编写出一个不错的程序了.它可你帮助你实现诸如:显示信息.自动加血.自动选怪.自动攻击.自动状态.物品过滤.简单游戏修改等功能.当然 ...

  4. 一天一天学做外挂@第六天-去伪存真做筛选[武林外传]

    学习目的:1.实现物品过滤 2.过滤表制作 内容: 1.经过五天的学习我想我已经可以个把一些重复的代码省略掉主要解释核心内容.我想今天的内容很多人都很期待,因为我也曾经因为挂了一宿武林后满背包的配方所 ...

  5. 一天一天学做外挂@第四天-给自己找个贴心小护士[武林外传]

    学习目的:1.实现简单加血功能 内容: 1.首先我们要绘制一个界面,最先添加一个Frame控件.最少两个Label控件用于输出生命和真气值.两个Text控件用于输入数据还有两个Timer控件,分别改名 ...

  6. 一天一天学做外挂@第七天-背包里到底有什么[武林外传]

    原来显示背包物品的方法不是很完善,因为是游戏里鼠标移上去时候的提示,在没有打开物品窗口的时候是不能显示的.最后感谢gaiyue的强烈要求! 这次用了真正的物品显示方法,原理就是得到物品的ID然后用已知 ...

  7. 跟hoowa学做智能路由

    hoowa的新浪博客:http://blog.sina.com.cn/hoowasun 跟hoowa学做智能路由(一):我们来动手吧! http://www.leiphone.com/news/201 ...

  8. 学做三件事、三句话、三乐、三不要

    学做三件事 1 .学会关门 即学会关紧昨天和明天这两扇门,过好每一个今天,每一个今天过得好,就是一辈子过得好. 2.学会计算 即学会计算自己的幸福和计算自己做对的事情.计算幸福会使自己越计算越幸福,计 ...

  9. c#做外挂 step by step(更新至step3:注入)

    做外挂我也是现学的.可以说写的这个教程是现学现卖,希望对用C#的外挂爱好者能有点帮助. 本教程中有一些以" 废话 "字样标注的内容,赶时间的可以直接越过. 第一课:C#使用WIND ...

最新文章

  1. java数据结构库函数_Java8 内置函数(api)总结
  2. 执行 pip3 install selenium 时出现 fail to create process
  3. java lazy loading_java – Spring,@Transactional和Hibernate Lazy Loading
  4. 1060 Are They Equal
  5. python学习笔记二— 循环
  6. MySQL索引类型 btree索引和hash索引的区别
  7. .Net Core3.0使用gRPC
  8. python自动回复机器人手机版_GitHub - HZQHZA/wxpy: Python 写 微信聊天 根据 自动回复 接入机器人 等等.......
  9. java 等待提示 事件_Java,Jsp点击事件后,出现等沙漏,处理等待状态时,有提示在动,适合任何事件使用...
  10. 使用python搭配pandoc实现html批量转word
  11. Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
  12. 用极域课堂管理系统软件批量格式化D盘
  13. Linux - 搭建LDAP统一认证服务
  14. 耐克官网一直显示无法连接服务器,nikeapp无法连接服务器是什么原因 nikeapp怎么抢鞋子...
  15. Deepin常用命令、系统命令、Vi命令
  16. python判断互质_Python3 判断质数以及计算一个数字的质因数
  17. 一次培训机构的面试经历
  18. Redis容量预估工具
  19. HN2015集训 永远亭的竹笋采摘
  20. 容器化Docker原理和场景

热门文章

  1. Django 使用login函数登陆和注销
  2. AE2020 TypeMonkey V1.18脚本安装
  3. 什么都能播放的媒体播放器——Potplayer
  4. 市场上Web 应用防火墙哪家好?
  5. IOC容器(详细讲解)
  6. 世界第四代计算机是什么计算机时代,第四代个人计算机:一切都由摄像头追踪 并由投影仪增强...
  7. 河北工业大学计算机类绩点,河北工业大学平均学分绩点怎么算
  8. 写一篇2万字的大学生消费情况调查报告
  9. 在Mac的终端上使用命令行 cd pwd
  10. 戴文的Linux内核专题:03 驱动程序【转】