1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

[RELEASE]Devellopement Application Ps3TMAPI_NET.DLL

Discussion dans 'Hacks & Mods' créé par FFM | iMoDzRGFR, 23 Février 2013.

Statut de la discussion:
N'est pas ouverte pour d'autres réponses.
  1. FFM | iMoDzRGFR

    FFM | iMoDzRGFR Lobby MW3 [ON] ( Pas Gratuit ) Premium

    Inscrit:
    8 Janvier 2013
    Messages:
    4 120
    Appréciations:
    1 030
    Points:
    3 283
    [​IMG]
    Script VB.Net Ajouté !

    Comme vous avez vu les titre du topic, ce topic va vous expliquez comment lié votre Application C++/C# a votre PS3.
    Avec ceci , vous pouvez envoyé au joueurs en partie en jeu vos mods trés facilement , et commencé a developpé votre propre application.

    J'ai travaillé 2 semaine avec ENZO-F , l'administrateur de NGU pour un projet NGU Elite & FMT Elite. Moi pour faire l'application et lui pour amélioré leur sécurité ELITE. Mais j'ai vu que quelques personne ont release leur pitoyable tool (Trahisons pour BuC & Moi) ce projet est donc mort , il est bon a jetter a la poubelle 1 semaine de codage sur une application.

    D'abord je voudrais remercier :

    - BuC-ShoTz pour son aide InitTargetComms() & la méthode Out ProcessID.
    - FM|T Enstone pour avoir contribué au topic avec la partie C++.

    Comment utilisé cette méthode ?:

    - C'est avec l'API du Target Manager , Tout est dans un dll , le ps3tmapi_net.dll est dans un dossier C:\Program Files (x86)\SN Systems\PS3\bin , vous devrez trouvé ceci vous même je partage pas ce DLL ici.

    La Partie C# :

    Connectique :

    Code:

    PS3TMAPI.InitTargetComms();
    PS3TMAPI.Connect(0, null);


    Avec ces codes , le dll sera initialisé avec votre application , et être prêt a utilisé les fonctions SN System.

    Obtenir et Attacher le Process :
    Code:

    PS3TMAPI.GetProcessList(0, out processIDs);
    ulong uProcess = processIDs[0];
    ProcessID = Convert.ToUInt32(uProcess);
    PS3TMAPI.ProcessAttach(0, PS3TMAPI.UnitType.PPU, ProcessID);
    PS3TMAPI.ProcessContinue(0, ProcessID);


    Avec ces codes , votre application va trouvé et attacher le Process automatiquement.

    Set Memory :
    Code:

    PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, bytes);


    Cette fonction va écrire les octets dans la mémoire du jeu , Remplacez Address & Bytes par vos propres valeur. Exemple :

    Code:

    byte[] iMCSx = new byte[] { 0x69, 0x4D, 0x43, 0x53, 0x78, 0x00 };
    PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, 0x01BBBC2C, iMCSx);


    Get Memory :
    Code:

    byte[] iMCSx = new byte[0x20];
    PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, ref iMCSx);


    Cette fonction va obtenir tout les octets en partant de l'adresse indiqué. Dans ce cas , tout les octets stocké seront dans byte[] iMCSx. le 0x20 entre parenthèse et la longueur max que votre byte[] contiendras.


    La Partie Visual Basic :

    C'est Pareille que le C# sauf que le language change , il faut ajouté le dll en réference ect ect. Voici mes lignes convertie fonctionnelle :

    Connection :
    Code:

    PS3TMAPI.InitTargetComms()
    PS3TMAPI.Connect(0, vbNullString)



    Obtenir et Attacher le Process :
    Code:

    Try
    PS3TMAPI.GetProcessList(0, processIDs)
    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



    Et en en-tête de la form , déclarez les uint & ulong comme ceci :

    Code:

    Private processIDs As UInteger()
    Private ProcessID As UInteger



    Set Memory :
    Code:

    Dim Test As Byte() = New Byte() {&H5} // it's 0x05 in byte C#
    PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address (Example &H00FCA280, iMCSx)



    Les offsets doivent être également convertie , exemple 0x3980 devient &H3980 :

    Code:

    Private Function MW3ClientState(clientNum As UInteger) As UInteger
    Return (&H110A280 + (clientNum * &H3980))
    End Function



    Exemple d'utilisation des scripts du PS3Lib en VB :
    Code:

    PS3.SetMemory(Address, Byte)


    La partie C++ :

    Etape 1 :

    Premièrement , si vous êtes un developper vous devez chargé le ps3tmapi_net.dll dans votre code comme ceci :
    Code:

    const WCHAR * dllName = L"ps3tmapi.dll";
    HINSTANCE hlib = LoadLibrary(dllName);


    Le dll doit être dans le même repertoire que votre exécutable.

    Etape 2 :

    Vous devriez utilisé quelque typedef pour simplifier les fonctions , comme ceci :
    Code:

    typedef int (__cdecl *InitTargetCommsFunction)(void);
    typedef int (__cdecl *ConnectFunction)(int,LPWSTR);
    typedef int (__cdecl *ProcessListFunction)(int, UINT32*, UINT32*);
    typedef int (__cdecl *ProcessAttachFunction)(int, UINT32 ,UINT32);
    typedef int (__cdecl *ProcessContinueFunction) (int, UINT32);
    typedef int (__cdecl *ProcessInfoFunction)(int, UINT32 ,UINT32*,SNPS3PROCESSINFO*);
    typedef int (__cdecl *ProcessSetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);
    typedef int (__cdecl *ProcessGetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);


    Vous avez besoin de toutes ces fonctions pour démarré toute edition de mémoire avec votre soft. Ne pas oublié de crée la fonction la structure pour le SNPS3PROCESSINFO*.

    Etape 3:

    Maintenant c'est important de localisé les fonctions dans le dll , Nous allons utilisé le fameux "GetProcAddress" :
    Code:

    InitTargetCommsFunction InitTargetComms = (InitTargetCommsFunction) GetProcAddress(hlib, "SNPS3InitTargetComms");
    ConnectFunction Connect = (ConnectFunction) GetProcAddress(hlib, "SNPS3Connect");
    DisconnectFunction Disconnect = (DisconnectFunction) GetProcAddress(hlib, "SNPS3Disconnect");
    ProcessListFunction ProcessList = (ProcessListFunction) GetProcAddress(hlib, "SNPS3ProcessList");
    ProcessAttachFunction ProcessAttach = (ProcessAttachFunction) GetProcAddress(hlib, "SNPS3ProcessAttach");
    ProcessContinueFunction ProcessContinue = (ProcessContinueFunction) GetProcAddress(hlib,"SNPS3ProcessContinue");
    ProcessInfoFunction ProcessInfo = (ProcessInfoFunction) GetProcAddress(hlib, "SNPS3ProcessInfo");
    ProcessGetMemoryFunction GetMemory = (ProcessGetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessGetMemory");
    ProcessSetMemoryFunction SetMemory = (ProcessSetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessSetMemory");


    Etape 4 : Vous êtes maintenant prêt a utilisé les fonctions SN System dans votre soft.

    Connectique :

    Code:

    //Connection////////////////////////////
    int target=0xfffffffe; //target default
    InitTargetComms();
    Connect(target,NULL);


    Attacher le Process :
    Code:

    //Attach/////////////////////////////////
    ProcessList(target,&puCount,puProcessID);
    ProcProcessAttach(target, 0,*puProcessID);
    ProcProcessContinue(target, *puProcessID);
    ProcProcessInfo(target,*puProcessID,&puBufferSize,pProcessInfo);


    Get Memory & Set Memory :
    Code:

    //Get/SetMemory/////////////////////////
    GetMemory(target,0,*puProcessID,(pProcessInfo->ThreadIDs)[0],uAddress,nCount,pBuffer);
    SetMemory(target,0,*puProcessID,(pProcessInfo->ThreadIDs)[0],uAddress,nCount,pBuffer);



    Conseils :

    - Vous avez besoin d'appeler InitTargetComms() dans tout vos threads , même si votre ps3 est connecté.
    - Vous pouvez crée d'autre GetMemory & SetMemory pour réduire le nombre d'argument.
    - Toutes ces fonctions retourne un int , Ceci peux vous dire si c'est un succés ou non , un succés va être une valeur positive , un échec une négative.

    Dernière choses pour les developpeur C# & VB.Net :


    - J'ai codé une Bibliothèque de classe pour écrire les fonctions facilement avec moins d'argument dans votre application :
    - Téléchargez mon DLL ici =>

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !


    - Ajoutez-le comme référence , et ajoutez dans votre form la liason : using PS3Lib;
    - Comme ça vous pourrez l'utilisez dans votre application avec des fonctions refaite par moi même , exemple PS3.SetMemory(Address, Bytes);

    Code Source :

    Code:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    // Copyright © iMCSProduction 2013.
    // Thanks to BuC-ShoTz to have contributed to this.
    // Visit

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !

    if you're English.

    // Visit

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !

    if you're French.

    // Follow me

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !

    -

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !



    namespace PS3Lib
    {
    public class PS3
    {
    public static uint ProcessID;
    public static uint[] processIDs;
    public static string snresult;
    private static string usage;
    public static string Info;
    public static PS3TMAPI.ConnectStatus connectStatus;
    public static string Status;
    public static string MemStatus;

    public static void ConnectDebug()
    {
    PS3TMAPI.InitTargetComms();
    PS3TMAPI.Connect(0, null);
    }

    public static void GetStatus()
    {
    Status = Convert.ToString(PS3TMAPI.GetConnectStatus(0, out connectStatus, out usage));
    }

    public static void ProcessAttach()
    {
    PS3TMAPI.GetProcessList(0, out processIDs);
    ulong uProcess = processIDs[0];
    ProcessID = Convert.ToUInt32(uProcess);
    PS3TMAPI.ProcessAttach(0, PS3TMAPI.UnitType.PPU, ProcessID);
    PS3TMAPI.ProcessContinue(0, ProcessID);
    Info = "The Process 0x" + ProcessID.ToString("X8") + " Has Been Attached !";
    }

    public static void SetMemory(uint Address, byte[] Bytes)
    {
    PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, Bytes);
    }

    public static void GetMemory(uint Address, byte[] Bytes)
    {
    PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, ref Bytes);
    }

    }
    }


    Liens de la release :

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !


    Merci A BuC-ShoTz FM|T Enstone Et

    Bonjour visiteur, merci de vous inscrire ou de vous connecter pour voir les liens. C'est gratuit en 3 secondes !

     


  2. #Eddie

    #Eddie Anciennement appelé Challenges-Lobby Premium

    Inscrit:
    31 Octobre 2012
    Messages:
    8 838
    Appréciations:
    3 755
    Points:
    8 608
    Prend le tutoriel et refait le à ta manière, je trouve que il n'y a pas d’intérêt à le recopier à 100% ! ;)
     
    $ ZePeKeniO MoDz $ aime ça.
  3. DEv_ShOoTz

    DEv_ShOoTz Membre

    Inscrit:
    28 Mars 2011
    Messages:
    4 931
    Appréciations:
    1 663
    Points:
    6 453
    Oui copier coller de la French modding Team pas besoin de cacher la source
     
  4. FFM | iMoDzRGFR

    FFM | iMoDzRGFR Lobby MW3 [ON] ( Pas Gratuit ) Premium

    Inscrit:
    8 Janvier 2013
    Messages:
    4 120
    Appréciations:
    1 030
    Points:
    3 283
    -_- j'ai mis la source c'est bon ..... et je la cache pas sa le fait tout seul ...
     
  5. TiiZaay

    TiiZaay TiiZaayHD = YT <3 Premium

    Inscrit:
    11 Février 2012
    Messages:
    336
    Appréciations:
    120
    Points:
    2 758
    tu lui a demander pour le mette ici ?
     
  6. PandaAlbinos

    PandaAlbinos Membre Premium Premium

    Inscrit:
    5 Janvier 2012
    Messages:
    1 488
    Appréciations:
    593
    Points:
    4 438
    Je crois pas qu'il a demandé non ...
     
  7. PM|C PicoLo

    PM|C PicoLo Membre

    Inscrit:
    14 Octobre 2013
    Messages:
    15
    Appréciations:
    2
    Points:
    34
    Complètement inutile !
     
  8. darkblues

    darkblues Membre

    Inscrit:
    30 Décembre 2013
    Messages:
    1
    Appréciations:
    0
    Points:
    13
    je ne trouve pas le SN systems peut tu m aider sil te plait
     
  9. I_ModZ-RouKfa

    I_ModZ-RouKfa Membre

    Inscrit:
    24 Janvier 2012
    Messages:
    1 657
    Appréciations:
    718
    Points:
    4 656
    pe ton voir le la librairie du sn sytem
     
  10. Mr.DzX-RH

    Mr.DzX-RH GFX/Lobby Man Premium

    Inscrit:
    29 Mai 2013
    Messages:
    1 455
    Appréciations:
    474
    Points:
    4 666
    merci tu partage mec essaye de refaire le TUTO a ta manière sa sera mieux:ok:
     
Statut de la discussion:
N'est pas ouverte pour d'autres réponses.

Partager cette page

Publicité