|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.07.2011, 19:53 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Точка входа. DllEntryPoint, _DllMainCRTStartup, _CRT_INIT
Доброго времени суток Уважаемые эксперты. В такую задницу залез, реально потерялася я. Вычитал что предпочтительнее использовать _DllMainCRTStartup нежели DllEntryPoint так как ее конструкторы автоматом инициализируют что-то там в _CRT_INIT. Ладно, это все конечно круто, но находятся ли они вообще в какой-то библиотеки или нет, эти функции, данные такие как __proc_attached, _pRawDllMain?
_СRT_INIT(...) вообще никак не определяется, вообщем undefined. Нашел на сайте пример использования, но локальные переменные меня убивают, с какой (_O_) они по вылазили, в примере были подключаемые библиотеки, но не в одной из них нет никаких флагов __proc_attached и прочей дребедени. Кто сталкивался, будьте добры, подскажите как вообще этим управлять, я декомпилирую один *.dll файл, там используется DllEntryPoint, я собственно буду придерживаться рядом с тем что в *.dll но хотелось бы и с _DllMainCRTStartup посмотреть как будет выглядеть это. Вообщем если кому не трудно, приведите рабочий код процедуры этой самой точки входа, за ранее благодарю за предоставленную помощь. Код:
Последний раз редактировалось coNsept; 23.07.2011 в 19:59. |
23.07.2011, 21:51 | #2 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
эти точки входа скорее всего сгенерирован автоматически, поэтому собственно какой вам интерес, ведь код самой dll скорее всего начинается в DllMain
? |
23.07.2011, 21:58 | #3 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Эти точки можно генерировать в ручную, в коде одной из *.dll (строки выделил красным цветом) она передает 3 параметра уже DllMain.
Цитата:
Код:
Последний раз редактировалось coNsept; 23.07.2011 в 22:06. |
|
23.07.2011, 22:08 | #4 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
все равно
Код:
PUSH ESI = 1; // fdwReason - DLL_PROCESS_ATTACH - загрузка dll PUSH EBX = 06000000; // hinstDLL - дескриптор dll не вижу ничего криминального - обычная загрузка |
23.07.2011, 22:17 | #5 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Считаешь что ими нельзя никак манипулировать?
|
23.07.2011, 22:29 | #6 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
а для какой цели?
однако стандартный код точки входа есть в */Microsoft Visual Studio *.*/VC/crt/src/crtdll.c |
23.07.2011, 22:31 | #7 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
crt в студии идет с открытым кодом
|
23.07.2011, 22:50 | #8 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Интересно, я вот сейчас кое что проверил и заметил такую вещчь интересную.
*.dll что я декомпилирую начинает свое выполнение с точки DllEntryPoint Скомпилил свою *.dll она начинает работу с _CRT_INIT(...) Почему так? |
23.07.2011, 22:59 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
наверно потому что они компилировались с разными настройками.
да и вне вашей ДЛЛ вы просто можете и не знать что есть что... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.07.2011, 22:59 | #10 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
судя по коду _CRT_INIT из __DllMainCRTStartup, а та из _DllMainStartup
думаю просто символов нету |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма входа Ucoz | makar3000 | HTML и CSS | 10 | 13.01.2011 00:32 |
Не найдена точка входа в DLL, не могу разобраться | Ozerich | Qt и кроссплатформенное программирование С/С++ | 4 | 21.04.2010 19:46 |
Точка входа CheckForReadOnlyResource не найдена | Goodwin98 | Операционные системы общие вопросы | 3 | 03.03.2010 16:51 |
DLLentrypoint в Delphi | Horus92 | Общие вопросы Delphi | 23 | 29.11.2009 14:04 |
не найдена точка входа. | Черничный | Общие вопросы Delphi | 17 | 23.07.2008 11:54 |