Есть ли способ определить, какой процесс вызвал функцию Win32. На самом деле мне нужно подключить несколько функций, и, кроме того, мне также необходимо определить, какой процесс вызвал эту функцию. Я выполнял функции подключения, такие как FindNextFile()
и функции winsock send()
и с использованием MS Detours, но проблема связана с более поздней частью, то есть с определением процесса вызова. Незлая помощь.Определить процесс вызова функции Win32
ответ
Ваш крючок будет работать в контексте вызывающего процесса, поэтому он может просто вызвать GetCurrentProcessId или аналогичную функцию, которая возвращает то, что вам нужно знать о процессе.
Да offcourse Адриан !! Я получил эту идею после дальнейших исследований. На самом деле, мое полное решение заключается в том, что я хочу знать, когда процесс вызывает 'FindNextFile()'. Это может произойти посредством: (i) «Настройка крючка с системой» ИЛИ (ii) «Подключение всех запущенных процессов». Так вы могли бы сказать мне, какой из них лучше/проще и как узнать процесс вызова в этом контексте. – Faheem
@Faheem: Я не понимаю ваш последующий вопрос, возможно, потому, что я никогда не работал с Detours. Вы должны посмотреть, как ваш новый вопрос был адресован в Stack Overflow. Если нет, задайте новый вопрос. –
- 1. Как определить процесс создания/завершения процесса win32 в C++
- 2. Процесс вызова функции библиотеки питона
- 3. Процесс идентификации WIN32
- 4. Как определить библиотеки окон, необходимые для определенного вызова win32 api?
- 5. win32/opengl и функции обратного вызова .. как они структурированы?
- 6. Как Windows выполняет процесс Win32?
- 7. Как определить процесс реагирования?
- 8. Определить уровень каталога функции вызова файлов
- 9. Определить последний вызов функции обратного вызова
- 10. Невозможно определить переменные после вызова функции
- 11. Каков правильный способ вызова функции Win32/64 из LLVM?
- 12. Как написать общую функцию C для вызова функции Win32?
- 13. Win32 API вызова через Serivce
- 14. Как определить oneline функции вызова обнуляемой переменную функции
- 15. Как определить процесс сборки?
- 16. Как определить процесс
- 17. Как эффективно убить процесс на C++ (Win32)?
- 18. Убить процесс с помощью дескриптора Win32
- 19. Как предотвратить процесс Win32, начинающийся с WOW64?
- 20. Как определить, установлен ли процесс как служба
- 21. Как определить, отлаживается ли процесс
- 22. Как определить тип dll? (COM, .NET, WIN32)
- 23. Как убить фоновый процесс от вызова функции системы
- 24. Имеет ли блок вызова функции плохой процесс проектирования?
- 25. Как проходит процесс рекурсии функции обратного вызова запроса?
- 26. Поиск функции вызова функции SQL
- 27. функция вызова функции вызова
- 28. Ловушка вызова функции?
- 29. Запустить процесс как синхронную операцию из приложения Win32
- 30. Код реализации функции GetDateFormat Win32
Если вы уже подключены, например. send(), вы должны установить обработчик крючка с именем send_handler() или аналогичную вещь, в send_handler() вы можете вызвать GetModuleFileName(), чтобы получить имя исполняемого изображения, или GetCurrentProcessId(), чтобы получить PID хост-процесса. Я сомневаюсь, действительно ли это то, о чем вы просите здесь. – xwlan
Ну, если я могу вызвать 'GetCurrentProcessId()', который дает мне идентификатор процесса, тогда я также могу получить имя ProcessName. Это точно решает мою проблему. Но не могли бы вы подробнее рассказать о обработчике крюка, то есть 'send_handler()' и как его использовать. – Faheem
Я помню, как объединил корабли с большим количеством образцов, есть образец, который демонстрирует, как подключить winsock, вы можете просто добавить GetCurrentProcessId() в send_handler() (объединители могут иметь другое имя для обработчика). – xwlan