=(News )==( Fichiers )==( Tutoriaux et Astuces )==( Liens )=

 Adresses memoire 

 

 

 

 

 


Adresses mémoires en 1.25 ( Par Freddyp )

Adresse Taille Commentaire
591E94 4 Bytes Position du mode de parlage (1=CC, 2=Whisp, 3=Proxy)
5AB782 4 Bytes Version du Client (Built) 2700 = 1.23x 2800=1.24x 2900=1.25x
5DC6B0 1 Byte Gama Correction
5DC6F8 4 Bytes Mode d'affichage (0 = Full scren, 1 = bordures, 2 = bordure du bas seulement)
613998 256 Bytes Ligne de commande (-uid= …)
638710 256 Bytes Buffer F9
69B6B8 4 BYTES Position X du curseur (en pixel 640x480)
69B6BC 4 BYTES Position Y du curseur (en pixel 640x480)
69B900 4 BYTES Position X du curseur (en case 30x21)
69B904 4 BYTES Position Y du curseur (en case 30x21)
69B914 8 BYTES Monstre qui est dans le Lock Target (un item ne peut y etre)
890994 4 BYTES ID du personnage (parlage en Proxy, centrage d'ecran)
89099A 2 BYTES Position en X du personnage sur la Map
89099C 2 BYTES Position en Y du personnage sur la Map
8909E9 256 BYTES Nom du personnage
890AE9 256 BYTES Nom du Compte
890BE9 256 BYTES Mot de passe du compte (si valeur ASCII > 127, enlever 128 pour la decrypter)
890CEA 1 BYTE Position World du personnage 0:Althea 1:dongeon 2:caverne
890CFD 256 BYTES Language de la version
890E00 4 BYTES Force (pure)
890E04 4 BYTES Endurance (pure)
890E08 4 BYTES Intelligence (pure)
890E10 4 BYTES Sagesse (pure)
890E1C 4 BYTES Dexterité (pure)
890E20 4 BYTES Level (niveau du personnage)
890E24 4 BYTES Quantité d'or sur le perso
890E28 4 BYTES Classe d'armure (CA) pure
890E2C 4 BYTES Force (booste)
890E30 4 BYTES Endurance (booste)
890E34 4 BYTES Intelligence (booste)
890E3C 4 BYTES Sagesse (booste)
890E48 4 BYTES Dexterité (booste)
890E4C 4 BYTES Classe d'armure (CA) booste
890E50 4 BYTES Point de Vie Total (pure)
890E58 8 BYTES Quantite d'experience total actuel (XP TOTAL)
890E60 8 BYTES Quantite de point d'experience pour atteindre le prochain LV (next Level at …)
890E68 8 BYTES Quantite de point d'experience pour level précédent
890E70 2 BYTES Nombre de Point de Caracteristique non utilisé
890E72 2 BYTES Nombre de Point de Competence non utilisé
890E74 4 BYTES Nombre de Point de vie restant (PV)
890E78 4 BYTES Nombre de Point de mana restant
890E7C 4 BYTES Nombre de Point de Vie (Booste)
890E80 4 BYTES Nombre de Point de mana Total (PM TOTAL)
890E8C 2 BYTES Encombrement actuel
890E8E 2 BYTES Encombrement Total Possible
890F88 1 Byte !Run (1=actif , 0=Inactif)
893530 8 Bytes OnClic, donne le ID de l'Item/monstre sur lequel on a cliqué
8BB4A0 8 Bytes Onmouse, donne le ID du perso, du monstre ou de l'objet (PNJ) unique.
Type de l'objet (< 65768 = Joueur, Entre 65765 et 1070000 = PNF ou objet Fixe) >1070000 = Monstre ou objet generé sequentiellement




Utiliser les adresses mémoires avec Visual basic ( Par Un Type )

Private Const PROCESS_ALL_ACCESS = &H1F0FFF 

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
Private Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

Private Sub Command1_Click()
Dim value As Byte
Call ReadAByte("The 4th Coming", &H890E8E, value)
MsgBox value
End Sub

Private Function WriteAByte(gamewindowtext As String, address As Long, value As Byte)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "Lancez le jeu d'abord", vbCritical, "Error"
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Impossible d'obtenir le ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 1, 0&
CloseHandle hProcess
End Function

Private Function WriteAnInt(gamewindowtext As String, address As Long, value As Integer)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "Lancez le jeu d'abord", vbCritical, "Error"
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Impossible d'obtenir le ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 2, 0&
CloseHandle hProcess
End Function

Private Function WriteALong(gamewindowtext As String, address As Long, value As Long)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "Lancez le jeu d'abord", vbCritical, "Error"
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Impossible d'obtenir le ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 4, 0&
CloseHandle hProcess
End Function

Private Function ReadAByte(gamewindowtext As String, address As Long, valbuffer As Byte)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "Lancez le jeu d'abord", vbCritical, "Error"
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Impossible d'obtenir le ProcessId", vbCritical, "Error"
Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 1, 0&
CloseHandle hProcess
End Function

Private Function ReadAnInt(gamewindowtext As String, address As Long, valbuffer As Integer)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then

Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)

If (phandle = 0) Then 

Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 2, 0&
CloseHandle hProcess
End Function

Private Function ReadALong(gamewindowtext As String, address As Long, valbuffer As Long)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "Lancez le jeu d'abord", vbCritical, "Error"
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Impossible d'obtenir le ProcessId", vbCritical, "Error"
Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 4, 0&
CloseHandle hProcess
End Function