Salve a tutti. Apro questo tutorial per spiegare come creare semplici hack metin2.
L'occorrente è Visual basic 2008 express edition o VB.net
Apriamo VB, nuovo progetto, windows form. Andiamo su project->add->module, e lo chiamiamo module1.vb
Adesso copiamo nel modulo la dichiarazione delle WinApi
Codice:
Module Module1
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Public MetinProcesso As Process() = Process.GetProcessesByName("metin2.bin") 'processo da aprire ( ovvero controllare )
Public addr As Long = 0
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
Public processHandle As IntPtr
End Module
Adesso clicchiamo due volte sul form e inseriamo il seguente codice:
Codice:
If MetinProcesso.Length = 0 Then
MsgBox("Devi prima aprire il gioco", MsgBoxStyle.Critical, "ERRORE")
End
End If
processHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, MetinProcesso(0).Id) 'setto processHandle
If processHandle = IntPtr.Zero Then
MsgBox("Impossibile aprire il Processo O.o")
End
End If
Inseriamo un nuovo timer e lo lasciamo in Timer1
Inseriamo due bottoni, uno ON e l'altro OFF, e una textBox.
Il bottone ON lo rinominiamo in btnON e il bottone OFF in btnOff
la textBox rimarrà textBox1
Adesso clicchiamo su ON e scriviamoo il seguente codice:
Codice:
Timer1.Enabled = True
Adesso clicchiamo due volte su OFF e inseriamo il seguente codice:
Codice:
Timer1.enabled = false
Dim pointer As Integer
pointer = &H5F29BC
Dim buffer(2) As Integer
Dim addr(2) As Double
Dim off(2) As Integer
off(0) = &H10 'offset1
off(1) = &H5BA 'offset2
ReadProcessMemory(processHandle, pointer, buffer(0), 4, Nothing)
addr(0) = buffer(0) + off(0)
ReadProcessMemory(processHandle, addr(0), buffer(1), 4, Nothing)
addr(1) = buffer(1) + off(1)
WriteProcessMemory(processHandle, addr(1), 16256, 2, Nothing)
Adesso clicchiamo sul timer1 e inseriamo il seguente codice:
Codice:
Dim pointer As Integer
pointer = &H5F29BC
Dim buffer(2) As Integer
Dim addr(2) As Double
Dim off(2) As Integer
off(0) = &H10 'offset1
off(1) = &H5B6 'offset2
ReadProcessMemory(processHandle, pointer, buffer(0), 4, Nothing)
addr(0) = buffer(0) + off(0)
ReadProcessMemory(processHandle, addr(0), buffer(1), 4, Nothing)
addr(1) = buffer(1) + off(1)
WriteProcessMemory(processHandle, addr(1), TextBox1.Text, 2, Nothing)
Adesso metto la mano sul fuoco che funziona XD
Questo è un esempio di speed hack, e usa gli offset 10 e 5b6.
Adesso vi posto la lista pointer già messa in Metin2
Nota di lettura: Se i numeri sono preceduti da '0x' indica numero esadecimale, senza lo '0x' sono numeri decimali.
POINTER GENERALE:
0x005F29BC
SpeedMovHack:
Offset 1°: 16
Offset 2°: 0x5b6
value massimo: 16675
Se e maggiore si blocca il pg sul posto
SpeedAtkHack:
Offset 1°: 16
Offset 2°: 1466
value massimo: 16675
Se e maggiore non attacca
AttackMode:
Offset 1°: 16
Offset 2°: 1088
Nota: Il value di AtkMode puo essere:
1 = Pugni
2=Spada
3=Lancia
5=Freccie
ZoomHack:
Lo ZoomHack e uno static
Static: 0x5D5FA6
Piu e alto il value, meno sara lo Zoom, con value di 19999 potrete vedere tutta la mappa vista dall'alto.
Per gli static si usa direttamente WriteProcessMemory sull address static.
NoFog:
Anche il NoFog e uno static
STATIC: 0x5D84E2
Attenzione: Piu e alto il value e migliore sara la visibilita. Con value di 19999 potrete vedere ovunque; se si combina con ZoomHack e possibile vedere tutta la mappa dall'alto senza nebbia!
Combo:
Offset 1°: 16
Offset 2°: 1332
Nota: Il value di Combo puo essere:
1 = Aggiunge un attacco
2 = Aggiunge due attacchi
Maggiore di 2 non attacca proprio. lol
AttackRangeHack:
Offset 1°: 16
Offset 2°: 1458
16500 di value per un attacco a raggio ampio (clientside)
HIT:
Offset 1°: 16
Offset 2°: 1300
Il value varia da 1 a 3.
Teleporter:
Coordinata X (Orizzontale):
Offset 1°: 16
Offset 2°: 1412
Coordinata Y (Verticale):
Offset 1°: 16
Offset 2°: 1416
Nota: Per creare un teleporter hack bisogna fare un doppio WriteProcessMemory, uno per la coordinata X e l'altro per la Y.
I value delle coordinate saranno moolto piu alti di quelli che si trovano sulla mappa di metin2. Sara necessario effettuare una proporzione:
Vi ricordate quelle che si studiavano in seconda media?
X:6=4:5 ( per esempio )
Poi per calcolare X (ovvero la coordinata esatta), fate la proprieta fondamentale:
X = (4*6)/5.
Questo lavoro va fatto sia con X che con Y.
L'occorrente è Visual basic 2008 express edition o VB.net
Apriamo VB, nuovo progetto, windows form. Andiamo su project->add->module, e lo chiamiamo module1.vb
Adesso copiamo nel modulo la dichiarazione delle WinApi
Codice:
Module Module1
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Public MetinProcesso As Process() = Process.GetProcessesByName("metin2.bin") 'processo da aprire ( ovvero controllare )
Public addr As Long = 0
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
Public processHandle As IntPtr
End Module
Adesso clicchiamo due volte sul form e inseriamo il seguente codice:
Codice:
If MetinProcesso.Length = 0 Then
MsgBox("Devi prima aprire il gioco", MsgBoxStyle.Critical, "ERRORE")
End
End If
processHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, MetinProcesso(0).Id) 'setto processHandle
If processHandle = IntPtr.Zero Then
MsgBox("Impossibile aprire il Processo O.o")
End
End If
Inseriamo un nuovo timer e lo lasciamo in Timer1
Inseriamo due bottoni, uno ON e l'altro OFF, e una textBox.
Il bottone ON lo rinominiamo in btnON e il bottone OFF in btnOff
la textBox rimarrà textBox1
Adesso clicchiamo su ON e scriviamoo il seguente codice:
Codice:
Timer1.Enabled = True
Adesso clicchiamo due volte su OFF e inseriamo il seguente codice:
Codice:
Timer1.enabled = false
Dim pointer As Integer
pointer = &H5F29BC
Dim buffer(2) As Integer
Dim addr(2) As Double
Dim off(2) As Integer
off(0) = &H10 'offset1
off(1) = &H5BA 'offset2
ReadProcessMemory(processHandle, pointer, buffer(0), 4, Nothing)
addr(0) = buffer(0) + off(0)
ReadProcessMemory(processHandle, addr(0), buffer(1), 4, Nothing)
addr(1) = buffer(1) + off(1)
WriteProcessMemory(processHandle, addr(1), 16256, 2, Nothing)
Adesso clicchiamo sul timer1 e inseriamo il seguente codice:
Codice:
Dim pointer As Integer
pointer = &H5F29BC
Dim buffer(2) As Integer
Dim addr(2) As Double
Dim off(2) As Integer
off(0) = &H10 'offset1
off(1) = &H5B6 'offset2
ReadProcessMemory(processHandle, pointer, buffer(0), 4, Nothing)
addr(0) = buffer(0) + off(0)
ReadProcessMemory(processHandle, addr(0), buffer(1), 4, Nothing)
addr(1) = buffer(1) + off(1)
WriteProcessMemory(processHandle, addr(1), TextBox1.Text, 2, Nothing)
Adesso metto la mano sul fuoco che funziona XD
Questo è un esempio di speed hack, e usa gli offset 10 e 5b6.
Adesso vi posto la lista pointer già messa in Metin2
Nota di lettura: Se i numeri sono preceduti da '0x' indica numero esadecimale, senza lo '0x' sono numeri decimali.
POINTER GENERALE:
0x005F29BC
SpeedMovHack:
Offset 1°: 16
Offset 2°: 0x5b6
value massimo: 16675
Se e maggiore si blocca il pg sul posto
SpeedAtkHack:
Offset 1°: 16
Offset 2°: 1466
value massimo: 16675
Se e maggiore non attacca
AttackMode:
Offset 1°: 16
Offset 2°: 1088
Nota: Il value di AtkMode puo essere:
1 = Pugni
2=Spada
3=Lancia
5=Freccie
ZoomHack:
Lo ZoomHack e uno static
Static: 0x5D5FA6
Piu e alto il value, meno sara lo Zoom, con value di 19999 potrete vedere tutta la mappa vista dall'alto.
Per gli static si usa direttamente WriteProcessMemory sull address static.
NoFog:
Anche il NoFog e uno static
STATIC: 0x5D84E2
Attenzione: Piu e alto il value e migliore sara la visibilita. Con value di 19999 potrete vedere ovunque; se si combina con ZoomHack e possibile vedere tutta la mappa dall'alto senza nebbia!
Combo:
Offset 1°: 16
Offset 2°: 1332
Nota: Il value di Combo puo essere:
1 = Aggiunge un attacco
2 = Aggiunge due attacchi
Maggiore di 2 non attacca proprio. lol
AttackRangeHack:
Offset 1°: 16
Offset 2°: 1458
16500 di value per un attacco a raggio ampio (clientside)
HIT:
Offset 1°: 16
Offset 2°: 1300
Il value varia da 1 a 3.
Teleporter:
Coordinata X (Orizzontale):
Offset 1°: 16
Offset 2°: 1412
Coordinata Y (Verticale):
Offset 1°: 16
Offset 2°: 1416
Nota: Per creare un teleporter hack bisogna fare un doppio WriteProcessMemory, uno per la coordinata X e l'altro per la Y.
I value delle coordinate saranno moolto piu alti di quelli che si trovano sulla mappa di metin2. Sara necessario effettuare una proporzione:
Vi ricordate quelle che si studiavano in seconda media?
X:6=4:5 ( per esempio )
Poi per calcolare X (ovvero la coordinata esatta), fate la proprieta fondamentale:
X = (4*6)/5.
Questo lavoro va fatto sia con X che con Y.