Merci


) permettant d'obtenir un handle de stdin/out/err d'un processus quelconque autre que celui en cours d'execution. Par contre je peux tout a fait aller voir ce que font GetStdHandle sous le voile 



(NtQueryInformationProcess)HANDLE __stdcall kernelbase_GetStdHandle(int handle)
{
HANDLE v1; // esi
if ( handle == STD_OUTPUT_HANDLE )
{
if ( !(NtCurrentPeb()->ProcessParameters->WindowFlags & 0x400) )
{
v1 = NtCurrentPeb()->ProcessParameters->StandardOutput;
goto LABEL_9;
}
return 0;
}
if ( handle == STD_ERROR_HANDLE )
{
v1 = NtCurrentPeb()->ProcessParameters->StandardError;
goto LABEL_9;
}
if ( handle != STD_INPUT_HANDLE )
{
v1 = (HANDLE)INVALID_HANDLE_VALUE;
goto LABEL_13;
}
if ( NtCurrentPeb()->ProcessParameters->WindowFlags & 0x200 )
return 0;
v1 = NtCurrentPeb()->ProcessParameters->StandardInput;
LABEL_9:
if ( v1 == (HANDLE)-1 )
LABEL_13:
((void (__thiscall *)(unsigned int))unk_74954520)(0xC0000008);
return v1;
}
). Enfin d'abord essaie de savoir si ta cible utilise des pipes, ou juste les consoles.