собсно сабж , запускаю calc.exe в CREATE_SUSPENDED состоянии, записываю шеллкод в адресное пространство , далее все как по накатанной схеме NtQueuApcThread на него, ResumeThread основную нить - код нормально отрабатывает ... вопрос почему процесс после всех этих действий процесс(calc.exe) не продолжает свою работу, как должно по идее быть а звершается ?
karabas_barabas Инересный вопрос. Мб вы его завершаете, или стек рушите или есчо что. Тут у многих рассово нежелание юзать дебуггер, так чтоже вы хотите от нас ?
вообщем понимаю этот механизм вцелом, но если брать в деталях - каким образом должен тогда выглядеть этот код, а точнее как заканчиваться, например Код (Text): pushad ... push AdrStr call adrDelFileA popad или он должен быть выполнен в виде функции/процедуры или передавать управлении на точку входа , или как - чтоб после выполнения апк прога далее нормально продолжила свое выполнение... p.s. чото не хочет аттачиться олька к засуспендиному процессу
karabas_barabas Механизм апк не понимаете. Контекст сохраняется в стеке и после возврата загружается в процессор посредством NtContinue. У апк модель вызова определена: Код (Text): typedef VOID (*PPS_APC_ROUTINE) ( __in_opt PVOID ApcArgument1, __in_opt PVOID ApcArgument2, __in_opt PVOID ApcArgument3 ); Под отладчиком ставьте брейк на KiUserApcDispatcher.