[转]【给游戏修改器制作爱好者】——一点游戏修改器制作的经验

 估计没玩过单机游戏的人现在只好去火星找了……

      恐怕很多人都用过游戏修改器,也有不少不少人写过,或者正在准备写,或者正在写但是遇到了一些小问题。在这里作为一个VB爱好者提供一些参考给大家,当然我写过的游戏修改器有不少,出于兴趣也写了好几年,在我CSDN的下载频道里面有一些,也有一些没有公布的,虽然这样,我也不是什么资深专家,这篇文章提到的很多知识也是我新学的,例如说我正在学OD(有点汗颜,有一段时间没摸了)。

      这篇文章早就写好了,也没有订正,错误之处请大家多多指正。由于图片比较多,写的时候用的WORD,又不能直接贴到这里,所以干脆截屏下来了。在这些图片之后,有一个简短的游戏修改器,有兴趣的可以参考一下,么有用以前封装的类,只是那天找到修改方法作为记录写了一会。看了代码也许一些正在困惑的同学们就豁然开朗了,原来就那么点玩意,非高深之学也!呵呵,不过有些游戏并不是简单的搜索搜索标记标记NOPNOP就能得到修改方法的。

 

以上就是一点经验了。下面贴一个游戏修改器的源码:

幻幻球无限球内存修改器:

 

Public Class Form1
    '将加-1(&HFFFFFFFF)修改为减-1
    Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Int32, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        Dim pros = Process.GetProcessesByName("Peggle")
        Dim code As Byte
        If pros.Length > 0 Then
            ReadProcessMemory(pros(0).Handle, &H4536FD, code)
            If code = &H3 OrElse code = &H2B Then
                If CheckBox1.Checked Then
                    WriteProcessMemory(pros(0).Handle, &H4536FD, &H2B)
                Else
                    WriteProcessMemory(pros(0).Handle, &H4536FD, &H3)
                End If
            Else
                MsgBox("发现Peggle.exe版本不符!(适用版本1.00)")
            End If
        Else
            MsgBox("未发现Peggle.exe")
        End If
    End Sub
End Class

 

这就是完整的代码了。只在窗体上加一个控件:CheckBox1即可。这个代码在测试的时候游戏界面显示的球个数是不变的,这一点要注意,当你把球打没了,还可以接着打——这就显示出效果了。。。不要看到数字没变就……谢谢观赏,再见。
posted @ 2010-03-17 18:53  NoRoadZH  阅读(388)  评论(0编辑  收藏  举报