getstdhandle=0?

Тема в разделе "WASM.ASSEMBLER", создана пользователем asm0day01, 21 фев 2022.

  1. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    111
    push STD_OUTPUT_HANDLE
    call [GetStdHandle]
     

    Вложения:

  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.787
    Немой вопрос. "format pe gui 4.0" замени на "format pe console 4.0" и всё получится. Либо "invoke AllocConsole" заюзай. Если у приложения нету стдхандла, то винда его из пальца не высосет.
     
    Mikl___ нравится это.
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.360
  4. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    111
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.787
    asm0day01,

    Ёлки палки мог же сам глянуть.

    Код (Text):
    1. HANDLE
    2. WINAPI
    3. GetStdHandle(
    4.     DWORD nStdHandle
    5.     )
    6. {
    7.     PPEB Peb;
    8.     HANDLE rv;
    9.  
    10.  
    11.     Peb = NtCurrentPeb();
    12.     switch( nStdHandle ) {
    13.         case STD_INPUT_HANDLE:
    14.             rv = Peb->ProcessParameters->StandardInput;
    15.             break;
    16.  
    17.         case STD_OUTPUT_HANDLE:
    18.             rv = Peb->ProcessParameters->StandardOutput;
    19.             break;
    20.  
    21.         case STD_ERROR_HANDLE:
    22.             rv = Peb->ProcessParameters->StandardError;
    23.             break;
    24.         default:
    25.             rv = INVALID_HANDLE_VALUE;
    26.             break;
    27.     }
    28.     if ( rv == INVALID_HANDLE_VALUE ) {
    29.         BaseSetLastNTError(STATUS_INVALID_HANDLE);
    30.         }
    31.     return rv;
    32. }
    Для ProcessParameters.StandardOutput нужна консоль. BaseSetLastNTError(0): 0