• 06 Juin 2026, 12:11:27


Auteur Sujet: Creer un launcher  (Lu 2907 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Creer un launcher
« le: 13 Novembre 2010, 10:51:04 »
Bonjour ,
J'aimerais créer en C++ un launcher direct qui ne passe pas par sa-mp.exe mais Gtasa.exe + sa-mp.dll
Merci d'avance  ;)

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Creer un launcher
« Réponse #1 le: 13 Novembre 2010, 10:54:20 »
C'est assez simple, tu as juste à lancer le jeu ( GTA_SA.EXE ) ensuite tu injecte SAMP.DLL.


Mais bien sur faut lancer le jeu avec les bon arguments que tu peut trouver sur http://sa-mp.com =)


Si tu ne sais pas comment injecter une dll dit le moi sur ce post =)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Creer un launcher
« Réponse #2 le: 13 Novembre 2010, 10:59:22 »
Je sais pas injecté le DLL et j'ai trouvé les paramètres dans ce sujet http://forum.sa-mp.com/showthread.php?t=70282&page=2

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Creer un launcher
« Réponse #3 le: 13 Novembre 2010, 11:04:24 »
Tu peut utiliser cette fonction qui viens est faite par UZI-I

http://public.yoa2n.fr/source/RemoteLoadLibrary.cpp___.txt



STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
CreateProcess("./gta_sa.exe", "", 0, 0, true, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo);
HWND hWnd = NULL;
DWORD pID = NULL;
HANDLE hndl = NULL;
while(!(hWnd = FindWindow(NULL,"GTA: San Andreas"))){Sleep(20);}
GetWindowThreadProcessId (hWnd,&pID);
hndl = OpenProcess(PROCESS_ALL_ACCESS,false,pID);

if(!RemoteLoadLibrary (hndl,"samp.dll"))
{
}


Un truc dans ce genre devrai fonctionner, c'est codé à l'arrache désolé ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Creer un launcher
« Réponse #4 le: 13 Novembre 2010, 11:06:54 »
Merci ,et je met où les paramètres ?

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Creer un launcher
« Réponse #5 le: 13 Novembre 2010, 11:08:47 »
Le second paramètre de CreateProcess



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Creer un launcher
« Réponse #6 le: 13 Novembre 2010, 11:09:20 »
Ok merci beaucoup :)

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Creer un launcher
« Réponse #7 le: 13 Novembre 2010, 14:17:35 »
Je viens de voir pour en faire un vite fait en Visual Basic (langage tout con :D) mais c'est quoi la fonction pour lancer une application avec une dll ?
(Ça existe ? :D)

Myk3L.

PS : La flemme de faire ça en C ou C++ pour un test :D (en plus je chie aevec les GUI)

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Creer un launcher
« Réponse #8 le: 13 Novembre 2010, 20:38:23 »
Ya un problème au niveau du create process :
cannot convert 'STARTUPINFOW*' to '_STARTUPINFOA*' for argument '9' to 'BOOL CreateProcessA(const CHAR*, CHAR*, _SECURITY_ATTRIBUTES*, _SECURITY_ATTRIBUTES*, BOOL, DWORD, void*, const CHAR*, _STARTUPINFOA*, _PROCESS_INFORMATION*)'|

Je penses que c'est du à : siStartupInfo

« Modifié: 14 Novembre 2010, 12:25:06 par Eloctro »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Creer un launcher
« Réponse #9 le: 16 Novembre 2010, 14:27:40 »
Tien un très bon injecteur pour toi made by me :p

#include < iostream >
#include < windows.h >




bool InjectDLL( HANDLE handle, const char* pathOfDLL )
{
   void *Lib, *Str;
   Lib = ( void* )GetProcAddress( GetModuleHandle(L"kernel32.dll"), "LoadLibraryA");
   Str = ( void* )VirtualAllocEx( handle, NULL, strlen( pathOfDLL ), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
   WriteProcessMemory( handle, ( void* )Str, pathOfDLL, strlen( pathOfDLL ), NULL);
   CreateRemoteThread( handle, NULL, NULL, (LPTHREAD_START_ROUTINE)Lib, ( void* )Str, NULL, NULL);
   return true;
}

int main( int ArgCount, char** Args )
{
        STARTUPINFO                     startupInfo;
        PROCESS_INFORMATION     processInfo;

        memset( &startupInfo, 0x00, sizeof( STARTUPINFO ) );
        memset( &processInfo, 0x00, sizeof( PROCESS_INFORMATION ) );

        startupInfo.cb = sizeof( STARTUPINFO );

        if( CreateProcess( L"./gta_sa.exe", L" ICI les argument et tout :p", NULL, NULL, true, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &startupInfo, &processInfo ) == false )
        {
// ICI GTA ne s'est pas lancé
                return 0;
        }
        
        InjectDLL ( processInfo.hProcess, "samp.dll" );
        return 0;
}




Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog