Здравствуйте уважаемые гуру, хотелось бы узнать, так как конкретного решения не нашёл, при запуске программы методом запуска в своем же адресном пространстве другой программы (частный случай run PE), если она программа внедряемая имеет потоки, то возникает исключения в kernelbase.dll с ошибкой (код ошибки E06D7363, CPP_EH_EXCEPTION) , а если она без потоков, то все нормально работает, также она работает нормально если в другой процесс внедрить код (hollowing process). Сталкивался ли кто с этим, что посоветуете, интересно в познавательных целях. Спасибо.
Возможно у вас в коде потока (dll ?) есть какая-либо ошибка. CPP_EH_EXCEPTION это исключение компилятора VS относительно ЯП. Попробуйте пошаговую отладку с заходом в дизассемблерный код (в студии такой функционал есть). И немного информации от Чена Decoding the parameters of a thrown C++ exception (0xE06D7363) - The Old New Thing (microsoft.com) Recognizing different types of exception objects that Windows platform libraries can throw - The Old New Thing (microsoft.com)
Спасибо, приложение в обычном режиме (не из памяти работает нормально с потоками), но при запуске из памяти сколько потоков, столько и завершаются они, почему тогда методом hollowing process приложение нормально отрабатывает?
Есть предположение что возможно что у процесса запрещён SEH вне модулей поэтому исключение не обрабатывается, тогда как в нормальном режиме это исключение обрабатывается штатно.