[DLL]Récupérer les arguments de lancement d'un programme.

  • Partenaires

Utilisateurs qui regardent le poste (Total: 0, Members: 0, Invité: 0)

Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
Bonjour,bonsoir !
Aujourd'hui je partage une petite dll qui vous permet d'afficher les arguments avec lesquels le programme a été lancé :)

[Screen]
ZWtMe.png


[Tutoriel]
Injectez la dll dans le programme dont vous voulez récupérer les arguments.
Une console s'ouvre avec sur chaque ligne un argument.

[Téléchargement et Virustotal]
Lien:

VirusTotal:
 
Takeuchi

Takeuchi

Level 4
Level 3
Level 2
Level 1
14 Oct. 2012
368
0
922
Merci du partage bro
 
Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
TheHardButcher

TheHardButcher

Programmeur C/C++
Level 5
Level 4
Level 3
Level 2
Level 1
14 Déc. 2009
1,460
58
964
France
C'est de toi ?
Je trouve l'idée assez cool :)
 
Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
C'est de toi ?
Je trouve l'idée assez cool :)

Oui enfin, le code est pas très dur hein ^^

Le code pour ceux que ca intéresse (la fonction pour la console n'est pas de moi, merci google ^^):
Code:
#include <windows.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <conio.h>

using namespace std;

void vInstallConsole()
{
	int hConHandle;
	long lStdHandle;
	CONSOLE_SCREEN_BUFFER_INFO coninfo;
	FILE *fp;

	AllocConsole();
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
	coninfo.dwSize.Y = 500;
	SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);

	lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
	fp = _fdopen(hConHandle, "w");
	*stdout = *fp;
	setvbuf(stdout, NULL, _IONBF, 0);

	lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
	fp = _fdopen(hConHandle, "r");
	*stdin = *fp;
	setvbuf(stdin, NULL, _IONBF, 0);
	lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
	fp = _fdopen(hConHandle, "w");
	*stderr = *fp;
	setvbuf(stderr, NULL, _IONBF, 0);
	ios::sync_with_stdio();
}

void WINAPI MainThread()
{
	vInstallConsole();
	HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTitleA("S4Terminal ~ Astropilot");
	LPWSTR *szArgliste;
	int nArgs = 0;
	szArgliste = CommandLineToArgvW(GetCommandLineW(), &nArgs);

	for (int i = 0; i < nArgs; i++) {
		//MessageBoxW(NULL, szArgliste[i], L"Args", MB_OK);
		//cout << szArgliste[i] << endl;
		printf("%d: %ws\n", i, szArgliste[i]);
	}
	LocalFree(szArgliste);
}

BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpvReserved)
{
	switch (dwReason) {
	case DLL_PROCESS_ATTACH:

		DisableThreadLibraryCalls(hModule);
		
		if (CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainThread, NULL, 0, NULL) == NULL)
			
		{
			return FALSE;
		}
		break;

	case DLL_PROCESS_DETACH:
		break;

	case DLL_THREAD_ATTACH:
		break;

	case DLL_THREAD_DETACH:
		break;
	}
	return TRUE;
}
 
Dernière édition:
Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
cafe1231

cafe1231

Membre Banni
17 Fév. 2013
821
0
221
Je comprend pas vraiment le terme d'argument et donc la fonctionnalité de ce tool , quelqu'un pourrait m'éclairé ?
 
Astropilot

Astropilot

The Lord
V.I.P
Level 5
Level 4
Level 3
Level 2
Level 1
6 Janv. 2011
9,277
18
1,254
France
Et bien, pour certains programmes, ils sont lancés avec des arguments de démarrage, par exemple une version, le nom d'un fichier, etc.
Et ma dll permet d'afficher ces arguments.
Ici comme tu le vois dans le screen, le S4Client est lancé avec certains arguments.
Et si tu essai de lancer directement l'exécutable, il te mettra une erreur car il a besoin de ces arguments.
 
Sn3per

Sn3per

Membre d'Honneur
Level 5
Level 4
Level 3
Level 2
Level 1
6 Sept. 2013
2,735
0
942
. . .
Tu gères ;).