C++ Динамические библиотеки посоветуйте с чего начать

Пользователь
Статус
Оффлайн
Регистрация
9 Май 2018
Сообщения
415
Реакции[?]
47
Поинты[?]
1K
В шапке вопрос, желательно с примерами вызова функций и тд ;)
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
В винде есть процессы, для каждого из процессов имеется адресное пространство (4 гб для 32-битных, и гораздо больше для 64-битных).
Так же у процесса могут быть библиотеки, которые располагаются в этом адресном пространстве.
Управлением этими библиотеками занимается загрузчик (Loader), его код находится в юзермоде в ntdll.dll.
Загружается библиотека через LoadLibrary, при этом внутри библиотеки всегда есть точка входа DllMain которая получает управление в конце загрузки и выполняется в контексте блокировки загрузчика (поэтому там нельзя делать некоторые операции).
Выгружается библиотека через FreeLibrary, при этом опять вызывается DllMain с другим кодом, либо библиотека сама может это сделать через FreeLibraryAndExitThread.
Весь стандартный функционал можно посмотреть тут
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Найти адрес библиотеки можно через GetModuleHandle по имени, а найти экспортируемую функцию внутри модуля через GetProcAddress.
Стоит упомянуть что в читах часто применяет мануал мап, это по сути тот же функционал что и в загрузчике, только лишь код чита сам выделяет память и располагает там модуль, а так же не добавляет загруженный модуль в список модулей, что делает модуль менее обнаруживаемым.
 
Сверху Снизу