如何用vb制作传奇单机版修改器游戏的修改器,我几乎不会

怎么做游戏修改器
怎么做游戏修改器 100
我对这个一点也不懂 求高手教教我、要用什么软件或者什么东西都说一下 还有要懂什么知识也告诉我
求你们了、我很想自己做一个 单机的 我知道网络的更复杂
先让我入个门吧 可以把网站贴过来我自己去看也行
告诉你个最基础的吧.单机游戏的 基本通用了,就是金山游侠.(相同功能的软件有很多比如OD&/CE/ AE/ ZE后面这3个其实是一个软件)
举个例子.修改钱吧. 首先让这些软件 随便一个,附加到你游戏的进程当中.这些软件都有一个功能就是遍历你游戏进程所分配的内存地址里的值.可以搜索出你想要搜的东西.&& 首先你要纪录下你游戏中钱的数量比如1000吧. 然后用软件搜索一下1000& 你会搜出 很多地址. 然后在游戏里 让你的钱减少 或者增加.比如减少了100吧 剩9900 然后你再到软件上次搜索出的结果中搜索9900 这样就又减少了一些地址. 反复这样操作几次得出你钱数的内存地址,然后修改这个地址里面的数值.想让钱数不变 软件有个锁定内存值的功能.总之大概是这样(只对单机游戏有用)& 如果想自己写一个作弊程序的话需要你会搜索和修改内存中的数值外,最好掌握一门编程语言.最好是WINFORM的 比如VB(用这个写作弊程序比较方便)/ C# /C++(主要是VC的MFC编程)
还有就是易语言(中文编程的感觉没多少用,写作弊程序还是不错,实说不是十分了解)&& DEPHI也不错(我是不会)
金山那种我会用、 我想自己做 就是后面你说的那个什么易语言那些 哪里学啊
编程。网上有很多论坛。比外挂海。是一个论坛。上面也有不少其他的频道。 视频嘛。ENET,也有不少成套的视频教程。学学VB吧。可能现在说来学完了很少有公司用。但是编写外挂,病毒。控制软件什么的还是VB比较强吧
提问者 的感言:难 满意答案
编写这类程序一般用C语言,而追踪数据,就必须要求高强的汇编和反汇编知识了.需要工具的问题几乎不存在,关键是知识.看来你一定是喜欢搞怪之人了.不过说句打击你的话.你从现在开始苦心研究,只要能坚持一年,还是有可能成功的.
C语言是什么— —
编写程序的语言....我的上帝啊.
如果真想自己做的话,要学很多东西.很困难.很专业大学生都没有办法做.我估计就是死钻一年.兄弟,不是我看不起你,你要知道你准备干的实际上是工作中最难的一种.但如果你执意要学,前面就是我给你指的路.
在哪学的啊
你问我吗?我的。如果你想自学的话,说实话很困难。
提问者 的感言:算了放弃了
其他回答 (1)
编写游戏修改器需要掌握的知识:
1.单机游戏
& 精通一门语言(最好是C),钩子编程,内存知识。
2.网络游戏
& 1的全部再加 精通TCP/IP(分析游戏协议),内核驱动编程(过游戏保护),逆向知识(还是为了过保护和免杀)。
相关知识等待您来回答
编程领域专家主题:【游戏修改器制作】_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
39页免费8页免费2页免费16页免费13页免费 52页免费5页免费9页免费4页免费4页免费
喜欢此文档的还喜欢16页免费20页1下载券5页免费9页免费13页免费
主题:【游戏修改器制作】|游​戏​修​改
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢VB做个简单的内存修改器《求教》_百度知道
VB做个简单的内存修改器《求教》
最近玩起了单机游戏
想做个WG玩下
就是个简单的内存修改
内存地址不会变 写了 好几次
已经能成功找到游戏窗口了
就是不能编辑内存内的 数值那位老大会就麻烦您动下您的 金手
帮忙写个例子吧
顺便讲解下
我有更好的答案
按默认排序
VB读写内存
一些背景知识
不象C语音,VB不会自动包括普通的API函数的声明,因此我们必须把他们加入我们的项目文件。在几乎所有的修改器中会使用到6个主要的函数,讨论如下:
1. FindWindow(ClassName, WindowTitle) - FindWindow 返回符合指定的类名( ClassName
)和窗口名( WindowTitle )的窗口句柄。对我们来说,可以让 ClassName 为空( Null ),只给出游戏的
WindowTitle。函数应该这样声明: Declare Function FindWindow Lib &user32& Alias
&FindWindowA& (ByVal lpClassName As String, ByVal lpWindowName As String)
2. GetWindowThreadProcessId(WindowHandle, ProcessId) - 在这里我们把 FindWindow
函数中得到的句柄作为参数,来获得进程标识符(ProcessId )。声明如下: Declare Function
GetWindowThreadProcessId Lib &user32& (ByVal hwnd As Long, lpdwProcessId
As Long) As Long
3. OpenProcess(DesiredAccess, Inherit, ProcessId) -
这个函数将返回一个我们目标进程的句柄,可以用来对目标进行读写操作。 DesiredAccess
参数的值决定了句柄对进程的存取权利,对我们来说,要使用 PROCESS_ALL_ACCESS (完全存取权限)。Inherit 应该总是
False。 ProcessId 是从 GetWindowThreadProcessId 函数中取得的。 Declare Function
OpenProcess Lib &kernel32& (ByVal dwDesiredAccess As Long, ByVal
bInheritHandle As Long, ByVal dwProcessId As Long) As Long
4. CloseHandle(ProcessHandle) - 每一个打开的句柄必须呼叫这个函数来关闭。 Declare Function
CloseHandle Lib &kernel32& (ByVal hObject As Long) As Long
5. WriteProcessMemory(ProcessHandle, Address, value, Sizeofvalue,
BytesWritten) - 把指定的值 value 写入由 Address 指定的目标地址。 Declare Function
WriteProcessMemory Lib &kernel32& (ByVal hProcess As Long, ByVal
lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long,
lpNumberOfBytesWritten As Long) As Long
6. ReadProcessMemory(ProcessHandle, Address, value, Sizeofvalue,
BytesWritten) - 把 Address 指定的目标地址的值存入 value 位置的变量中。 Declare Function
WriteProcessMemory Lib &kernel32& (ByVal hProcess As Long, ByVal
lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long,
lpNumberOfBytesWritten As Long) As Long
这些函数一环扣一环,缺一不可。更详细的内容可以参考VB的帮助文件。
一个简单的修改器范例
如何使上面介绍的这些函数一起工作,制作出我们需要的修改器呢?下面是一个为Windows的计算器程序制作修改器的例子。这个修改器将读出计算器窗口中显示的数值,并在点击一个按钮后在计算器窗口中显示我们的名字。
首先我们需要找到计算器显示窗口中显示值的地址。本教程不是关于如何进行内存搜索,因而我将只作简单的说明:
· 在计算器窗口中输入123456
· 使用你喜欢的任何一种内存地址搜索程序寻找字串123456
· 使用另一个值重复上面的过程直到只返回1个地址
那是制作我们的修改器需要的唯一一个地址。在我的计算器程序里这个地址是40B181 hex, 4239745 dec。用你找到的地址替代在下面的代码里使用的这个地址。
现在让我们开始设计修改器的界面:
· 在VB中新建一个项目,加入一个文本框( Textbox )、一个按钮和一个计时器( timer
)。文本框用来显示从计算器窗口取得的字串,按钮用来把我们的名字传到计算器窗口
· 把表单( form )的标题( Caption )属性设为 Calculator Trainer
· 把文本框改名为 txtDisplay 并清除 Text 属性
· 把计时器改名为 ReadTimer 并把间隔( interval )设为500
· 把按钮的标题改为 Display Name,按钮的名字改为 btnPasteName
在这个修改器中我们将使用所有6个函数,ReadProcessMemory、WriteProcessMemory、OpenProcess、GetWindowThreadProcessId、FindWindow
和 CloseHandle。在项目中插入一个新的模块,增加下列代码。(下面的一些行自动换行了,在你的模块中每一句必须在一行里,或使用延长符_)
Declare Function FindWindow Lib &user32& Alias &FindWindowA& (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowThreadProcessId Lib &user32& (ByVal hwnd As
Long, lpdwProcessId As Long) As Long
Declare Function OpenProcess Lib &kernel32& (ByVal dwDesiredAccess As
Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function WriteProcessMemory Lib &kernel32& (ByVal hProcess As
Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As
Long, lpNumberOfBytesWritten As Long) As Long
Declare Function ReadProcessMemory Lib &kernel32& (ByVal hProcess As Long,
ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long,
lpNumberOfBytesWritten As Long) As Long
Declare Function CloseHandle Lib &kernel32& (ByVal hObject As Long) As Long
下面我们要开始写在计时器窗口中显示我们名字的代码了。首先我们使用 FindWindow函数取得目标窗口的句柄。把这个返回值保存在一个变量中,并检查它的值是否出错来确保计时器程序正在运行。(FindWindow函数出错时返回0)
Dim hwnd As Long
hwnd = FindWindow(vbNullString, &Calculator&)
If (hwnd = 0) Then
MsgBox &Window not found!&
注意在这里我们传递了一个 Null 值给 FindWindow 函数,而不是 ClassName。因此任何名为 Calculator的窗口都符合条件。如果知道计算器程序窗口的 ClassName,你可以传给它,但这不是必须的。
现在使用得到的窗口句柄来取得进程标识符( ProcessId )。注意 pid 是作为参数传递给函数的,而不是被赋以函数返回值。
Dim pid As Long
GetWindowThreadProcessId hwnd, pid
再利用变量pid得到计算器程序的进程句柄。再次检查函数的返回值,如果是非法数据则退出程序。
Dim pHandle As Long
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox &Couldn’t get a process handle!&
在我们的修改器中 WriteProcessMemory 函数是最重要的部分,而且非常容易出错。不妨让我们再仔细讨论一下它的参数。
WriteProcessMemory (ByVal hProcess As Long, ByVal lpBaseAddress As Any,
ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As)
hProcess 是目标进程的句柄,从上面的 OpenProcess 函数中取得的。
lpBaseAddress 是在计算器程序的虚拟内存中将要被修改的地址,也就是使用内存搜索程序找到的那个地址。(在我的程序里是&H40B181)lpBuffer 是将要写如上述地址的数据,可以是一个数值、数组、字符串或其他任何数据类型。
nSize 是希望写入 lpBaseAddress 的字节数。这个位置应该与你的数据类型相符。如果写入的是一个长整数( long),这里应该是4。如果写入的是一个字符串,那么这里应该是字符串的长度。
lpNumberOfBytesWritten 是函数执行返回后,写入目标地址的实际字节数。它能被用来确认函数实际的执行情况。
把我们的数据放到函数中,得到 WriteProcessMemory pHandle, &H40B181, &Beans&, 5, 0&。我把0传递到lpNumberOfBytesWritten 位置是因为不需要检查两次实际写入的字节数。
最后通过传递进程句柄给 CloseHandle() 函数来关闭由 OpenProcess 打开的句柄。
CloseHandle hProcess
现在将所有的代码输入我们的编辑器中。双击按钮,显示它的代码编辑窗口。代码应该加到名为 btnPasteName 的 Click事件中。(不必输入注释)
Private Sub btnPasteName_Click()
’ 声明一些需要的变量
Dim hwnd As Long ’ 储存 FindWindow 函数返回的句柄
Dim pid As Long ’ 储存进程标识符( Process Id )
Dim pHandle As Long ’ 储存进程句柄
’ 首先取得目标窗口的句柄
hwnd = FindWindow(vbNullString, &Calculator&)
If (hwnd = 0) Then
MsgBox &Window not found!&
’ 取得进程标识符
GetWindowThreadProcessId hwnd, pid
’ 使用进程标识符取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
MsgBox &Couldn’t get a process handle!&
’ 在内存地址中写入名字
WriteProcessMemory pHandle, &H40B181, &Beans&, 5, 0&
’ 关闭进程句柄
CloseHandle hProcess
完毕。现在单击按钮将使计算器窗口文本变为我们键如的名字。(可能需要最小化计算器程序,再还原,以便程序更新显示)
下面将给我们的修改器增加一个新功能。我们将检测计算器程序的窗口显示数据,并在修改器中显示。双击计时器,显示它的代码编辑窗口,然后输入以下代码:
Private Sub ReadTimer_Timer()
’ 声明变量
Dim hwnd As Long ’ 储存 FindWindow 函数返回的句柄
Dim pid As Long ’ 储存进程标识符
Dim pHandle As Long ’ 储存进程句柄
Dim str As String * 20 ’ 存储显示文本
’ 取得目标窗口的句柄
hwnd = FindWindow(vbNullString, &Calculator&)
If (hwnd = 0) Then Exit Sub
’ 取得进程标识符
GetWindowThreadProcessId hwnd, pid
’ 取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then Exit Sub
’ 读取内存数据
ReadProcessMemory pHandle, &H40B181, str, 20, 0&
’ 在文本框显示
txtDisplay = str
’ 关闭进程句柄
CloseHandle hProcess
在这里出现的新东西是 ReadProcessMemory 函数。从 &H40B181 地址中读出的数据被存入变量 str 中,然后显示在名为txtDisplay 的文本框中
其他类似问题
内存的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁更新时间:这个是真三国无双7猛将传的修改器,可以获得无限生命、一击必杀、无限时间、无限无双技、超级速度和无限经验的效果,作者小幸姐,有需要的玩家可以下载试试。更新时间:这个是真三国无双7的存档修改器0909,可以查看和修改存档,支持各版本游戏,作者vbvan,有需要的玩家可以下载试试。更新时间:这是一个真三国无双7存档修改器Editor1.00Build0829下载,一款功能非常多非常实用的修改器,支持战场信息、无双天赋修改,推荐给玩家下载使用。更新时间:这个是真三国无双7的子弹时间修改器,可以放慢游戏画面,附带HP上限最大,防止低级被秒,由玩家elzee花了900元定制的,有需要的玩家可以下载试试。更新时间:这个是真三国无双7猛将传的修改器,可以获得HP锁定、战场三宝时间无限、能量值满、加速升级等13项效果,作者,有需要的玩家可以下载试试。更新时间:这个是真三国无双7猛将传的修改器,可以获得获得无限血、无限能量、无限怒气、技能状态时间无限、武器材料、宝石等十五项效果,作者鸦鸦鸦鸦,有需要的玩家可以下载试试。更新时间:这个是真三国无双7的全功能修改器,有超多实用修改功能,支持:英文、汉化、繁中版游戏,作者凉宫,有需要的玩家可以下载试试。更新时间:这是一个真三国无双7武器攻击力属性等级修改CT文件下载,玩家制作并且分享的一个懒人CT修改文件,可以修改秘武的武器攻击力属性等级等各种,非常实用的一个文件,推荐给玩家下载使用。更新时间:这是一个真三国无双7八项CE修改CT文件下载,玩家从国外论坛找到的一个CT修改文件,可以修改游戏中的8项属性,功能比较多而齐全,但是是英文版的,懂的玩家可以拿去试试。更新时间:这是一个真三国无双7五项CE修改文件下载,基于基址的CE修改表,3.0汉化版可用5项功能,可以修改游戏中的无双条数等五个属性,玩家亲测可用,很实用的一个修改文件,需要的玩家千万不要错过。更新时间:这是一个真三国无双十项修改器下载(15号更新新增2个功能),由游侠技术组出品,使用之后可以修改游戏中的无限血和一击必杀等八项属性,功能丰富而实用的修改器,推荐给玩家下载使用。更新时间:真三国无双7五项修改器具有修改游戏中无限生命,无限愤怒值等五项实用功能,对应版本V1.00使用。跑跑车为您提供下载服务和使用说明。我最近需要制作一个单机游戏的VB修改器,希望高手赐教!
[问题点数:20分]
我最近需要制作一个单机游戏的VB修改器,希望高手赐教!
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 传奇单机版修改器 的文章

 

随机推荐