[tabs]
[tab=Les bases]
[tab=Nôtre premier tools en VB.NET]
Maintenant faut ajouté des lignes indispensable en-dessous de " Public Class Form1 " :
CODE :
Passons au connexion, placé deux bouton sur vôtre form (peut importe comment) :
Cliqué 2 fois sur vôtre bouton "Connect" et inséré lui ce code :
CODE :
Résultat :
Maintenant au tour du bouton " Attach Process " :
CODE :
On ajoute tout de suite un bouton et des 17 textBox sur nôtre form (le 1er en haut c'est le client 0 et le dernier c'est le client 17) :
Maintenant on va crée une fonction qui permet de trouvé les offsets pour les noms des joueurs en partie (je l'ai mise en dessous de l'autre fonction) :
CODE :
Vous devrez déclaré une importation tout en autre de form :
Maintenant passons au code du bouton "Get Client" :
CODE :
Voilà, à vous de continuez jusqu'au client 17
4. Les stats
On va voir pour crée un NumericUpDown qui changera le prestige.
On commence tout de suite par placé nôtre NumericUpDown etc :
Passons au code du NumericUpDown :
Voilà voilà, sa sera tout je pense .
(Pour le C#, j'essayerai beaucoup plus tard car la j'ai pas assez de temps)
[/tab]
[tab=Credit]
[/tab]
[tab=Les bases]
1. Langages de programmation
Il y plusieurs langage de programmation qui permettent de faire des "tools RTE" .
Dans ce tutoriel, on va en voir principalement deux, le C# (C Sharp) et le VB.NET .
Logiciel utilisé le plus souvent pour programmé en C# (C Sharp) :
-
Scan Virus :
Logiciel utilisé le plus souvent pour programmé en VB.NET :
-
Scan Virus :
2. Les offsets
2.1 . Trouvé la différence entre chaque client
Pour trouvé la différence entre chaque client, on va devoir faire un calcule... et on va l'effectué avec la calculatrice en mode programmeur
Puis vous devez réglé la calculatrice comme ceci :
Pour trouvé la différence entre deux client il suffit de faire des maths, et plus précisément une soustraction.
Exemple :
FCA41E = Offset GodMod du client 0
FCA69E = Offset GodMod du client 1
FCA69E - FCA41E = 280
FCA69E + 280 = Offset GodMod du client 2
FCA69E + 280 = FCA91E
2.2 . Les offsets quand on programme son " tools "
Quand vous programmerez vôtre tools, les offsets devront toujours être comme sa :
En C# (C Sharp) :
0x + TON OFFSET
Exemple : 0xFCA41E
En VB.NET :
&H + TON OFFSET
Exemple : &HFCA41E
[/tab]Il y plusieurs langage de programmation qui permettent de faire des "tools RTE" .
Dans ce tutoriel, on va en voir principalement deux, le C# (C Sharp) et le VB.NET .
Logiciel utilisé le plus souvent pour programmé en C# (C Sharp) :
-
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Scan Virus :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Logiciel utilisé le plus souvent pour programmé en VB.NET :
-
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Scan Virus :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
2. Les offsets
2.1 . Trouvé la différence entre chaque client
Pour trouvé la différence entre chaque client, on va devoir faire un calcule... et on va l'effectué avec la calculatrice en mode programmeur

Puis vous devez réglé la calculatrice comme ceci :

Pour trouvé la différence entre deux client il suffit de faire des maths, et plus précisément une soustraction.
Exemple :
FCA41E = Offset GodMod du client 0
FCA69E = Offset GodMod du client 1
FCA69E - FCA41E = 280
FCA69E + 280 = Offset GodMod du client 2
FCA69E + 280 = FCA91E
2.2 . Les offsets quand on programme son " tools "
Quand vous programmerez vôtre tools, les offsets devront toujours être comme sa :
En C# (C Sharp) :
0x + TON OFFSET
Exemple : 0xFCA41E
En VB.NET :
&H + TON OFFSET
Exemple : &HFCA41E
[tab=Nôtre premier tools en VB.NET]
1. Création du projet et mise en forme + connexion
Requis :
- ps3tmapi_net :
- PS3Lib :
On commence tout de suite par crée un nouveau projet :
Ensuite, une fois le projet crée, on va tout de suite importé les DLL requis au bon fonctionnement de notre futur tools :
1) Clique droit sur le nom de vôtre projet dans la liste de droite
2) Aller cliqué sur " Ajouter une référence "
3) Chargé les 2 DLL téléchargé plus haut
Ensuite on va déclaré les DLL dans le futur tools :
CODE :
Requis :
- ps3tmapi_net :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
(scan virus :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
// j'ai rien modifier au DLL !)- PS3Lib :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
(scan virus :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
)On commence tout de suite par crée un nouveau projet :

Ensuite, une fois le projet crée, on va tout de suite importé les DLL requis au bon fonctionnement de notre futur tools :
1) Clique droit sur le nom de vôtre projet dans la liste de droite
2) Aller cliqué sur " Ajouter une référence "
3) Chargé les 2 DLL téléchargé plus haut

Ensuite on va déclaré les DLL dans le futur tools :

CODE :
Code:
Imports PS3Lib
Imports PS3TMAPI
Maintenant faut ajouté des lignes indispensable en-dessous de " Public Class Form1 " :

CODE :
Code:
Private processIDs As UInteger()
Private ProcessID As UInteger
Passons au connexion, placé deux bouton sur vôtre form (peut importe comment) :

Cliqué 2 fois sur vôtre bouton "Connect" et inséré lui ce code :

CODE :
Code:
PS3TMAPI.InitTargetComms()
PS3TMAPI.Connect(0, vbNullString) 'Connecte le tools à PS3
Résultat :

Maintenant au tour du bouton " Attach Process " :

CODE :
Code:
Try
PS3TMAPI.GetProcessList(0, processIDs) 'Obtient le 1er processus
Dim uProcess As ULong = processIDs(0)
ProcessID = Convert.ToUInt32(uProcess)
PS3TMAPI.ProcessAttach(0, PS3TMAPI.UnitType.PPU, ProcessID)
PS3TMAPI.ProcessContinue(0, ProcessID)
Dim Info As String = "The Process 0x" & ProcessID.ToString("X8") & " Has Been Attached !"
MessageBox.Show(Info, "Process Ready!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
Catch Ex As Exception
MessageBox.Show(Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
End Try
Pour rendre plus propre vôtre code, je vous conseil d'ajouté ceci au dessus du code de vôtre 1er bouton :
CODE :
Et ceci après vôtre 2ème bouton :
Après on peut refermé la catégorie "Connexion PS3" et sa donne sa :
Les connexions, c'est fait ! Déjà une bonne chose de faite
2. Nôtre première fonction (pour le tutoriel, pour MW3)
On commence par placé nos "objets" , pour ma part je vais mettre une " CheckBox " :
Maintenant on va voir pour crée une fonction qui calcule les offsets pour " la vision " , on va placé cette fonction après la catégorie "Connexion PS3" :
CODE :
Ensuite on va dans le code de nôtre CheckBox on y ajouté ceci :
CODE :
Voilà, nôtre première fonction est codé !
3. Récupéré le nom des joueurs en partie
CODE :
Code:
#Region "Connexion PS3"
Et ceci après vôtre 2ème bouton :

Après on peut refermé la catégorie "Connexion PS3" et sa donne sa :

Les connexions, c'est fait ! Déjà une bonne chose de faite
2. Nôtre première fonction (pour le tutoriel, pour MW3)
On commence par placé nos "objets" , pour ma part je vais mettre une " CheckBox " :

Maintenant on va voir pour crée une fonction qui calcule les offsets pour " la vision " , on va placé cette fonction après la catégorie "Connexion PS3" :

CODE :
Code:
Public VisionClient0 As Integer = &H110A293 'Cette offset correspond à la vision du client0
Public Function Vision(ByVal clientNum As Integer) As Integer 'Cette fonction retournera le résultat d'un calcule (clienNUm correspond à un chiffre qui se trouvera dans le calcule)
Return VisionClient0 + (clientNum * &H3980) 'Ce calcule se résume à : &H110A293 + (clienNum X &H3980) Ex : &H110A293 + (1 * &H3980) correspond a &H110A293 + &H3980 = &H110DC13
End Function
Ensuite on va dans le code de nôtre CheckBox on y ajouté ceci :

CODE :
Code:
If REDBOXc0.Checked = True Then 'Si la CheckBox est coché ALORS
Dim redboxclient0 As Byte() = New Byte() {&H55} 'On remplace les bytes actuelle par 55 à l'offset calculé par nôtre fonction (pour la vision)
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Vision(0), redboxclient0) 'La on a fait appel à la fonction que l'on a crée juste avant. 0 = client0
'Exemple pour le client 1:
'
' Dim redboxclient1 As Byte() = New Byte() {&H55}
' PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Vision(1), redboxclient1)
Else 'SINON
Dim redboxclient0 As Byte() = New Byte() {&H0} ' 0 = désactive le RedBox
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Vision(0), redboxclient0)
End If
Voilà, nôtre première fonction est codé !
On ajoute tout de suite un bouton et des 17 textBox sur nôtre form (le 1er en haut c'est le client 0 et le dernier c'est le client 17) :

Maintenant on va crée une fonction qui permet de trouvé les offsets pour les noms des joueurs en partie (je l'ai mise en dessous de l'autre fonction) :

CODE :
Code:
Public NameClient0 As Integer = &H110D694
Public Function GetClientName(ByVal clientNum As Integer) As Integer
Return NameClient0 + (clientNum * &H3980)
End Function
Vous devrez déclaré une importation tout en autre de form :

Maintenant passons au code du bouton "Get Client" :

CODE :
Code:
' CECI c'est pour le nom du client 0
Dim GetClientNameC0 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(0), GetClientNameC0)
C0.Text = Encoding.ASCII.GetString(GetClientNameC0) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 1er textBox tout en haut
' CECI c'est pour le nom du client 1
Dim GetClientNameC1 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(1), GetClientNameC1)
C1.Text = Encoding.ASCII.GetString(GetClientNameC1) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 2eme textBox en partant du haut
' CECI c'est pour le nom du client 2
Dim GetClientNameC2 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(2), GetClientNameC2)
C2.Text = Encoding.ASCII.GetString(GetClientNameC2) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 3eme textBox en partant du haut
' CECI c'est pour le nom du client 3
Dim GetClientNameC3 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(3), GetClientNameC3)
C3.Text = Encoding.ASCII.GetString(GetClientNameC3) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 4eme textBox en partant du haut
' CECI c'est pour le nom du client 4
Dim GetClientNameC4 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(4), GetClientNameC4)
C4.Text = Encoding.ASCII.GetString(GetClientNameC4) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 5eme textBox en partant du haut
' CECI c'est pour le nom du client 5
Dim GetClientNameC5 As Byte() = New Byte(&H25) {} 'Recupere 25 bytes en partant de l'offset (calculé par nôtre fonction)
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, GetClientName(5), GetClientNameC5)
C5.Text = Encoding.ASCII.GetString(GetClientNameC5) 'On converti les 25 bytes récupéré en Texte et on l'affiche dans la 4er textBox en partant du haut
Voilà, à vous de continuez jusqu'au client 17
4. Les stats
On va voir pour crée un NumericUpDown qui changera le prestige.
On commence tout de suite par placé nôtre NumericUpDown etc :

Passons au code du NumericUpDown :
Code:
If PRESTIGES.Value = 0 Then
Dim PRESTIGE0 As Byte() = New Byte() {&H0}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE0)
End If
If PRESTIGES.Value = 1 Then
Dim PRESTIGE1 As Byte() = New Byte() {&H1}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE1)
End If
If PRESTIGES.Value = 2 Then
Dim PRESTIGE2 As Byte() = New Byte() {&H2}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE2)
End If
If PRESTIGES.Value = 3 Then
Dim PRESTIGE3 As Byte() = New Byte() {&H3}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE3)
End If
If PRESTIGES.Value = 4 Then
Dim PRESTIGE4 As Byte() = New Byte() {&H4}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE4)
End If
If PRESTIGES.Value = 5 Then
Dim PRESTIGE5 As Byte() = New Byte() {&H5}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE5)
End If
If PRESTIGES.Value = 6 Then
Dim PRESTIGE6 As Byte() = New Byte() {&H6}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE6)
End If
If PRESTIGES.Value = 7 Then
Dim PRESTIGE7 As Byte() = New Byte() {&H7}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE7)
End If
If PRESTIGES.Value = 8 Then
Dim PRESTIGE8 As Byte() = New Byte() {&H8}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE8)
End If
If PRESTIGES.Value = 9 Then
Dim PRESTIGE9 As Byte() = New Byte() {&H9}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE9)
End If
If PRESTIGES.Value = 10 Then
Dim PRESTIGE10 As Byte() = New Byte() {&HA}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE10)
End If
If PRESTIGES.Value = 11 Then
Dim PRESTIGE11 As Byte() = New Byte() {&HB}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE11)
End If
If PRESTIGES.Value = 12 Then
Dim PRESTIGE12 As Byte() = New Byte() {&HC}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE12)
End If
If PRESTIGES.Value = 13 Then
Dim PRESTIGE13 As Byte() = New Byte() {&HD}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE13)
End If
If PRESTIGES.Value = 14 Then
Dim PRESTIGE14 As Byte() = New Byte() {&HE}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE14)
End If
If PRESTIGES.Value = 15 Then
Dim PRESTIGE15 As Byte() = New Byte() {&HF}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE15)
End If
If PRESTIGES.Value = 16 Then
Dim PRESTIGE16 As Byte() = New Byte() {&H10}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE16)
End If
If PRESTIGES.Value = 17 Then
Dim PRESTIGE17 As Byte() = New Byte() {&H11}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE17)
End If
If PRESTIGES.Value = 18 Then
Dim PRESTIGE18 As Byte() = New Byte() {&H12}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE18)
End If
If PRESTIGES.Value = 19 Then
Dim PRESTIGE19 As Byte() = New Byte() {&H13}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE19)
End If
If PRESTIGES.Value = 20 Then
Dim PRESTIGE20 As Byte() = New Byte() {&H14}
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, &H1C1947C, PRESTIGE20)
End If
Voilà voilà, sa sera tout je pense .
(Pour le C#, j'essayerai beaucoup plus tard car la j'ai pas assez de temps)
[/tab]
[tab=Credit]
thibault62118 (pour m'avoir apprit pleins de chose)
http://reality-gaming.fr/members/thibault62118.32313/
http://reality-gaming.fr/members/thibault62118.32313/
[/tab]
Dernière édition: