How does the command prompt know when to wait for exit?

If the application is a Win32 GUI application, it will just run and command prompt won’t wait for it to exit.

If the application is a console application, it will run in the command prompt and you’ll need to wait for it to finish to get the command prompt back.

EDIT:

OK. It seems you need technical explanation. If you want to emulate the same feature in your application, you can check IMAGE_OPTIONAL_HEADER of EXE files here.

Inside IMAGE_OPTIONAL_HEADER, there is:

 WORD                 Subsystem;

If SubSystem == 0x02 it means it’s a GUI application.

If SubSystem == 0x03 it means it’s a command prompt app.

EDIT 2:

If you want to see it in action:

  1. Download http://www.ntcore.com/exsuite.php

  2. Copy calc.exe or notepad.exe to your desktop

  3. Open copied calc.exe in CFF Explorer

  4. Navigate to Nt Headers -> Optional Headers

  5. Change SubSystem from 0x002 to 0x003

  6. Save it

Now run the new modified calc and you’ll see the command prompt wait for it to be terminated.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)