教程详情
- 教程名字:VB梦工厂【变态加速挂制作原理】视频+源码
- 教程大小:500.94 MB
- 作者:VB梦工厂
游戏类型:具有坐骑的网游(因为坐骑能改变人物速度)
使用工具:CE工具
编程工具:VB6.0中文企业版
外挂类型:属于变态修改内存
本次游戏目标:《天龙八部2》
思路和原理:请看如下
加速变态挂的制作原理:
首先要明白本地数据和服务器数据。
我们能用CE修改的数据叫做本地数据,不能CE修改的数据叫做服务器数据。
1.问:本度数据有哪些呢?
答:人物行走速度 ,人物里地面的高度(即Z坐标)只属于3D游戏里面的
2.问:游戏开发商把人物速度为啥放本地呢?干嘛不放服务器做验证呢?
答:游戏人物的行走速度是如果放服务器验证的话,人物就会延迟和掉线,导致流失玩家。
现在为止我们那些游戏已经改成功了呢?
举例:《天龙八部2》,《武神》,《神话风云》,《巨人》等有坐骑的游戏
视频看了练习一下:《天元》里面的加速,这款最新网游,上上手!加深体会!
3.问:为啥需要坐骑呢?
它能改变人物速度,方便我们用CE扫描速度地址(刷选地址)
-------------【CE方法篇】---以下为CE如何找速度地址----------------------------------------------------
速度是本地数据,只不过他一般是隐藏的,不会显示出来给你看
速度的数据类型----->CE数据类型:浮点
游戏默认的人物速度:3,4,5,6
CE数据类型:浮点
CE扫描的方式:两数之间,减少的数值,增加的数值,小于,大于
你人物骑上坐骑的时候 ,速度是增加的,我们就用CE工具找"增加的数值"!
你人物去掉坐骑的时候,速度是减少的,我们就用CE工具找"减少的数值'!
只要有坐骑的游戏 都可以加速!我们都可以修改加速的数值!
--------------【VB编程篇】-一下为VB代码编写篇----------------------------------------------------------------------------------
以下为FORM1窗体里面的旧版代码:
Dim A As Single
Dim hProcess As Long
Dim base As Long
hProcess = OpenProcess(&H1F0FFF, False, GetPid("Game.exe"))
ReadProcessMemory hProcess, ByVal &H6D3A14, base, 4, 0& '基础地址--简称基址--&H983C34
ReadProcessMemory hProcess, ByVal base + &H68, base, 4, 0& '一级偏移地址:一定要写上的,否则死都调试不出来的
ReadProcessMemory hProcess, ByVal base + &H1B0, base, 4, 0&
ReadProcessMemory hProcess, ByVal base + &H4, base, 4, 0&
WriteProcessMemory hProcess, ByVal base + &H50, a, 4, 0& '注意当精度浮点数的字节长度是4
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
以下为模块里面的代码(主要是API函数声明):
Declare Function ReadProcessMemory _
Lib "Kernel32.dll" (ByVal hProcess As Long, _
ByRef lpBaseAddress As Any, _
ByRef lpBuffer As Any, _
ByVal nSize As Long, _
ByRef lpNumberOfBytesWritten As Long) As Long
Declare Function WriteProcessMemory _
Lib "Kernel32.dll" (ByVal hProcess As Long, _
ByRef lpBaseAddress As Any, _
ByRef lpBuffer As Any, _
ByVal nSize As Long, _
ByRef lpNumberOfBytesWritten As Long) As Long
Declare Function OpenProcess _
Lib "Kernel32.dll" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Long) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public AA As String
Public bb As Long
'根据进程获取PID
Public Function GetPid(进程名 As String) As Long
Dim objWMIService, objProcess, colProcess
Dim strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess In colProcess
If objProcess.Name = 进程名 Then
GetPid = objProcess.ProcessID
Exit For
End If
Next
Set objWMIService = Nothing
Set colProcess = Nothing
End Function
教程截图
教程下载
原文链接:【教程宝盒网】 https://www.jc-box.com/471.html,转载请注明出处。
请先
!