Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > Получить ThreadID главного потока процесса |
Автор: hhhhhhhhhhhh 8.4.2014, 15:41 |
Вот если запущен некий процесс - я через CreateRemoteThread загружаю в этот процесс свою dll. Потом, в либе в момент DLL_PROCESS_ATTACH я хочу поставить CBT хук на этот процесс CBTHOOK := SetWindowsHookEx(WH_CBT, CBTHOOKPROC, HInstance, GetCurrentThreadId); Но не работает. Сейчас понял, что в данный момент, мы находимся в чуждом\удалённом потоке. А как вместо GetCurrentThreadId - подставить реальный ThreadID (главного) родного потока в данном процессе? |
Автор: CynicRus 8.4.2014, 16:06 |
GetWindowThreadProcessId. |
Автор: hhhhhhhhhhhh 8.4.2014, 16:15 | ||
-Прога\жертва всегда находится в состоянии без окон, постоянно сидит в трее, и изредка показывает диалоги\окна при (моей) необходимости(щелчок в трее)-а потом уничтожает эти диалоги\окна при закрытии их. Тобишь, в момент запуска моего лоадера - у жертвы нет окон. |
Автор: CynicRus 8.4.2014, 16:44 | ||
Ну тогда только такое приходит на ум:
Добавлено через 1 минуту и 59 секунд Ну и соответственно - таким макаром искать тредиды своего процесса, который там надо. |
Автор: hhhhhhhhhhhh 14.4.2014, 19:01 |
Блин неужели, в момент загрузки через CreateRemoteThread своей dll в чужой процесс - никто не ставил хуки(SetWindowsHookEx) на этот чужой процесс? Или может по другому это как то можно сделать? Надо сделать просто некий лоадер - его запустили- он загрузил нашу dll в чужой процесс(с постановкой хука на этот процесс) - и закрылся... |
Автор: CynicRus 14.4.2014, 21:13 |
CreateRemoteThread - возвращает же хэндл созданного процесса. |