Bonjour/Bonsoir,
le titre de l'article parle de lui-même... On va voir comment faire un dump d'un processus en cours d'execution. Voici comment on va s'organiser :
1.On énumère tous les processus et on selectionne celui qu'on veut dumper. Pour celà nous avons besoin de l'API CreateToolhelp32Snapshot() :
HANDLE WINAPI CreateToolhelp32Snapshot(
__in DWORD dwFlags,
__in DWORD th32ProcessID
);
2.On récupère ensuite l'id de notre processus pour obtenir un handle dessus. On remplis pour celà la structure PROCESSENTRY32 :
typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
TCHAR szExeFile[MAX_PATH];
} PROCESSENTRY32,
*PPROCESSENTRY32;
avec les APIs Process32First() et Process32Next(). Dans cette structure ce qui nous interresse est DWORD th32ProcessID qui contiendra l'id de notre processus. Ensuite on récupère l'handle du processus grace à OpenProcess() :
HANDLE WINAPI OpenProcess(
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwProcessId
);
3.On lit le processus en mémoire avec l'API ReadProcessMemory():
BOOL WINAPI ReadProcessMemory(
__in HANDLE hProcess,
__in LPCVOID lpBaseAddress,
__out LPVOID lpBuffer,
__in SIZE_T nSize,
__out SIZE_T* lpNumberOfBytesRead
);
4.On écrit le tout dans le fichier qui fera office de dump.
Le code source : dumper.cpp
Pour l'utilisation il faut :
-connaitre l'Original Entry Point du processus.
-rétablir la table des imports (IAT) sinon vous ne pourrez pas executer le dump.
Have Fun ;)
lilxam.
vendredi 28 décembre 2007
Process Dumper
Publié par
lilxam
à
10:41
0
commentaires
Libellés : Dump/Process/Processus
Ouverture du blog
Bonjour/Bonsoir,
nouveau dans la sécurité informatique, je me propose d'ouvrir un blog à ce sujet. Ainsi je partagerais mes quelques codes et "trouvailles".
Je tiens à remercier toutes les personnes qui ont aidés à mon évolution dans le domaine, je ne les cite pas, elles se reconnaitront :)
Voilà j'espère que ce blog vous plaira.
Have Fun ;)
lilxam.
Publié par
lilxam
à
02:15
0
commentaires
Inscription à :
Articles (Atom)