Самый простой способ: создать процесс с чужим кодом с помощью CreateProcess()
Вопрос был не столько в том, как можно не модифицировать EXE файл, но и как ничего не изменять в процедуре запуска этого приложения, которое может стартовать, скажем, через ярлык на рабочем столе, или как-то ещё - изнутри, например, другой программы. Комильфо - это было бы поместить дополнительную DLL в каталог с EXE файлом и ничего больше не трогать. Описываемый Вами способ конечно, простой, только чтобы создать этот процесс понадобится дополнительный EXE файл, который будет запускать из себя отлаживаемый. А здесь могут возникнуть свои грабли, например с передаваемыми в программу параметрами, или названием этого дополнительного файла. Так что - "хрен редьки не слаще". Хотя, конечно же, можно и так.
Вопрос был не столько в том, как можно не модифицировать EXE файл, но и как ничего не изменять в процедуре запуска этого приложения, которое может стартовать, скажем, через ярлык на рабочем столе, или как-то ещё - изнутри, например, другой программы.
Комильфо - это было бы поместить дополнительную DLL в каталог с EXE файлом и ничего больше не трогать.
Описываемый Вами способ конечно, простой, только чтобы создать этот процесс понадобится дополнительный EXE файл, который будет запускать из себя отлаживаемый. А здесь могут возникнуть свои грабли, например с передаваемыми в программу параметрами, или названием этого дополнительного файла. Так что - "хрен редьки не слаще". Хотя, конечно же, можно и так.