简单的游戏修改 魔法门之英雄无敌3末日之刃

ContractedBlock.gif ExpandedBlockStart.gif Code
 Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As IntegerByVal lpAddress As IntegerByVal lpBuffer As Byte(), ByVal nSize As IntegerByVal lpNumberOfBytesWritten As IntegerAs Integer

    
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
Dim Ja As System.Diagnostics.Process() = Process.GetProcessesByName("Heroes3")
        
If Ja.Length > 0 Then
            
Dim A() As Byte = returnHexToByte(14)
            WriteProcessMemory(Ja(
0).Handle, &H16D0BEC, A, A.Length, 0)
        
End If
        
Me.Close()
    
End Sub


    
Public Function returnHexToByte(ByVal setNumer As IntegerByVal nSize As IntegerAs Byte()
        
Try
            
Dim ReturnByte() As Byte
            
ReDim ReturnByte(nSize)
            
'转换十六进制并如为奇数在左边补上0
            Dim HexNuner As String = Hex(setNumer)
            
If HexNuner.Length Mod 2 = 1 Then
                HexNuner 
= HexNuner.PadLeft(HexNuner.Length + 1"0")
            
End If

            
Dim A As Integer = HexNuner.Length / 2
            
Dim B As Integer = 0
            
Do While A > 0
                ReturnByte(B) 
= "&H" & Mid(HexNuner, A * 2 - 12)
                A 
-= 1
                B 
+= 1
                
If B > nSize Then
                    
Return Nothing '错误的字节 数太大了超出了字节范围
                End If
            
Loop
            
Return ReturnByte
        
Catch ex As Exception
            
MsgBox(ex.Message)
            
Return Nothing
        
End Try      
    

 

转载于:https://www.cnblogs.com/kingsunmax/archive/2009/03/17/1414130.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值