6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
1 | |
Получить HWND окна22.04.2015, 19:20. Показов 24491. Ответов 20
Метки нет (Все метки)
Задача такова - загрузить динамическую dll в чужое приложение и получить HWND окна в которое загрузится dll.
dll я загрузил, проверил месаджем, а как получить теперь HWND окна? При атаче dll нам будет известно только hinstace, может как - нибудь можно узнать по ID процесса?
0
|
22.04.2015, 19:20 | |
Ответы с готовыми решениями:
20
Найти HWND окна, зная HWND окна, породившего его Получить hwnd окна Получить hwnd окна в многопользовательской системе Получить HWND активного дочернего окна |
55 / 55 / 63
Регистрация: 18.03.2014
Сообщений: 386
|
|
22.04.2015, 19:48 | 2 |
Можно узнать по имени окна и класса
1
|
2 / 2 / 0
Регистрация: 31.10.2013
Сообщений: 17
|
|
22.04.2015, 20:36 | 3 |
HWND hwnd = ::FindWindow(_T("тут название твоего окна"));
Добавлено через 22 минуты ааааа наврал!! HWND hwnd = ::FindWindow(NULL, _T("название окна"));
1
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
22.04.2015, 20:39 [ТС] | 4 |
Спасибо, но теперь вытекает другая проблема - как получить название окна, в которое загрузится dll?
0
|
55 / 55 / 63
Регистрация: 18.03.2014
Сообщений: 386
|
|
22.04.2015, 21:01 | 5 |
Можно посмотреть код dll
0
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
||||||
22.04.2015, 21:04 [ТС] | 6 | |||||
пожалуйста
0
|
Ушел с форума
|
|
22.04.2015, 21:09 | 7 |
Бессмыслица. dll загружается не в окно, а в процесс. А у процесса
может быть несколько окон или вообще ни одного.
0
|
55 / 55 / 63
Регистрация: 18.03.2014
Сообщений: 386
|
||||||
22.04.2015, 21:09 | 8 | |||||
Сообщение было отмечено ДЕСАНТУРА как решение
Решение
Скорее всего dll загружается в активное окно, чтобы получить активное окно используй
1
|
Ушел с форума
|
|
22.04.2015, 21:09 | 9 |
Да, и еще MessageBox из DllMain+DLL_PROCESS_ATTACH легко
положит процесс (а в некоторых ситуациях и всю систему).
0
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
22.04.2015, 21:12 [ТС] | 10 |
да нет процесс не положит - просто тормазнет весь процесс, пока я не нажму "ОК"
0
|
Ушел с форума
|
|
22.04.2015, 21:14 | 11 |
Только если в процесс уже загружена user32.dll и если
это не системный процесс типа winlogon.exe.
0
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
22.04.2015, 21:23 [ТС] | 12 |
и если нет стримового обмена с сервером данными, нет у меня простое окно которое я же и создал для опытов, инфу прошу для благих целей и повышения опыта программирования
0
|
Ушел с форума
|
|
22.04.2015, 21:31 | 13 |
Вот тут не понял.
У DllMain есть ряд ограничений, которые нужно знать и строго соблюдать, иначе начнут всплывать такие баги, о которых мозг среднестатистического программиста даже в своих фантазиях не сможет придумать... Подробнее здесь: DllMain entry point https://msdn.microsoft.com/en-... 85%29.aspx Dynamic-Link Library Best Practices https://msdn.microsoft.com/en-... _practices FindWindow найдет окно. Только при чем тут dll тогда ?
1
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
22.04.2015, 21:51 [ТС] | 14 |
хочу сделать так:
1. загрузить в процесс(заранее зная что это окно) dll 2. загруженная dll должна создать поинтер на девайс директ икса, проинициализировать интерфейс директ икса, чтобы инициализировать интерфейс, нужен hwnd текущего окна 3.нарисовать стредствами директ икса что - нибудь в этом окне
0
|
55 / 55 / 63
Регистрация: 18.03.2014
Сообщений: 386
|
|
22.04.2015, 21:55 | 15 |
Как получить hwnd текущего окна я уже писал, а с DirectX я не знаком)
1
|
Ушел с форума
|
|
22.04.2015, 21:57 | 16 |
Открываем процесс (OpenProcess), выделяем в нем память (VirtualAllocEx),
пишем туда путь к своей dll (WriteProcessMemory). Затем создаем в процессе удаленный поток (CreateRemoteThread), в качестве точки входа указываем адрес функции LoadLibrary, а в качестве аргумента - указатель на выделенный блок. Получаем классический инжект по Рихтеру. FindWindow, FindWindowEx, EnumWindows, EnumChildWindows... Способов тут куча.
1
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
22.04.2015, 22:03 [ТС] | 17 |
да что ж Вы все не верно поняли меня, как инжектить я знаю, как инициализировать средства директ икса - знаю, я не знал просто как получить HWND текущего окна в которое я загружаю dll, Вы мне подсказали, Вам всем спасибо за советы!!!
0
|
55 / 55 / 63
Регистрация: 18.03.2014
Сообщений: 386
|
|
22.04.2015, 22:11 | 18 |
А для того, чтобы вы без труда могли определить HWND окна, у меня есть небольшая программка, она немного не доделана, но основную функцию выполняет)
EnumWindow.zip
1
|
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 202
|
|
23.04.2015, 08:19 [ТС] | 19 |
благодарю
0
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|
20.05.2018, 22:36 | 20 |
Какие то окна видит, какие то нет. То которое мне надо не увидела. DLL ошибки не выдает, но и HWND тоже не выдает хД, надо делать для таких инжекторов отдельные h библиотеки для всплывающего окна в котором инфу выдаст. Так вообще не понятно она робит или нет
0
|
20.05.2018, 22:36 | |
20.05.2018, 22:36 | |
Помогаю со студенческими работами здесь
20
Как получить HWND окна/процесса/консоли Не могу получить HWND ресурсов диалогового окна Как получить HWND окна на панели задач по координатам мыши? Как получить HWND, созданного функцией CreateProcess, окна консоли Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|