Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложение загружает левые DLL, при запуске из студии с брейкпоинтом 
:(
    Опции темы
Любитель
Дата 31.10.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



если ошибся с темой - просьба ногами не бить

Интересный факт (хотелось бы узнать как такое получается).

1. Создаём в VS любое ГУИ-приложение на C++ (неважно, WinAPI, MFC, Qt...)

2. Запускаем Total Commander, открываем листером любой файл

3. Ставим в VS бряк на любую строку, которая будет выполнена (например, первые строки WinMain, InitInstance, main...)

4. Давим F5

5. Брякаемся и снова давим F5 (без бряка эфекта не увидим)

6. Читаем Output и среди прочих нормальных записей видим такое:
Код

'test.exe': Loaded 'C:\Program Files (x86)\Total Commander\Plugins\WLX\IEview\ieview.wlx', 
Binary was not built with debug information.


Внимание вопрос - откуда такое берётся smile Как сделать что-то подобное (длл-очку такую) - не для практических целей, просто интересно.


--------------------
PM MAIL ICQ Skype   Вверх
dumb
Дата 31.10.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



Цитата(Любитель @  31.10.2006,  18:33 Найти цитируемый пост)
Как сделать что-то подобное (длл-очку такую)

очень похоже на то, что ieview.wlx - dll, содержащая установленный глобальный хук.
соответственно, ищем по SetWindowsHookEx... smile
PM MAIL   Вверх
Nuzur
Дата 31.10.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: 3
Всего: 5



Любитель, а что тебе не ясно? Тотал командер при запуске приложения "через себя" типа через WinExec смотрит на свои плагины, его право.
Повторюсь, что не ясно то?
Ты жмеш мышкой на приложение и Тотал Командер он его запускает САМ, а перед тем как его запускает, тоесть непосредственно перед WinExec(или ShellExec тоже его право) он волен делать все что ОН считает нужным в том числе и то что у тебя на екране появилось.
Удачи.


--------------------
Never again...
PM MAIL   Вверх
dumb
Дата 31.10.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



Цитата(Nuzur @  31.10.2006,  19:03 Найти цитируемый пост)
Повторюсь, что не ясно то?

из твоего послания становится очевидным лишь то, что тебе в данном вопросе ничего не ясно. smile
перечитай еще раз первый пост. внимательно.
PM MAIL   Вверх
Nuzur
Дата 1.11.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: 3
Всего: 5



dumb, Да, согласен, криво прочитал.
Теперь согласен с тобой, похоже на хук.

Это сообщение отредактировал(а) Nuzur - 1.11.2006, 14:08


--------------------
Never again...
PM MAIL   Вверх
Romikgy
Дата 1.11.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



а что за файл смотришь листером, что за dll сам делаешь ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Любитель
Дата 2.11.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Студию запускаю не из тотала. Листером смотрю любой файл, суть в том, чтобы просто тотал в память загрузил iewie.wlx (он это делает при первой попытке использования плагина).
Цитата(Romikgy @  1.11.2006,  14:47 Найти цитируемый пост)
что за dll 

Не понял - про что?

Цитата(dumb @  31.10.2006,  18:46 Найти цитируемый пост)
очень похоже на то, что ieview.wlx - dll, содержащая установленный глобальный хук

Внимание вопрос: нафига он ему нужен?

Добавлено @ 10:42 
И ещё: почему без брейкпоинта сие не работает? Действительно интересно (мне).


--------------------
PM MAIL ICQ Skype   Вверх
SergeCpp
Дата 2.11.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 5
Всего: 124



Приведите всю последовательность загрузки модулей (ту, в output, из которой Вы показали лишь ieview.wlx)

И попутно уж поставьте на LoadLibrary* break (в адресном пространстве kernel32)


Это сообщение отредактировал(а) SergeCpp - 2.11.2006, 10:52
PM MAIL WWW ICQ   Вверх
Любитель
Дата 2.11.2006, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Сейчас не могу, как смогу - приведу.


--------------------
PM MAIL ICQ Skype   Вверх
dumb
Дата 2.11.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



Цитата(Любитель @  2.11.2006,  10:40 Найти цитируемый пост)
Внимание вопрос: нафига он ему нужен?

ieview.wlx использует ie-контрол для отображения, а хук ставит для обработки нажатия стандартных lister'овских клавиш(esc,1,2,3,etc) - фокус получает ie-контрол, а он о таких кнопках ничего не знает.

Цитата(Любитель @  2.11.2006,  10:40 Найти цитируемый пост)
И ещё: почему без брейкпоинта сие не работает?

работает.
PM MAIL   Вверх
Любитель
Дата 3.11.2006, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



В смысле работает?
Я у себя запуская без бряка, закрываю, в оутпуте ничего нету (ничего интересного).
Другой вариант - брякаюсь и трейсю несоклько команд. Жму F5 - тоже ничего.
Тут же запускаю, брякаюсь (там же), жму F5 (без трейса) - видим весёлую надпись.


--------------------
PM MAIL ICQ Skype   Вверх
Любитель
Дата 3.11.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Код

'test.exe': Loaded 'C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\test\Debug\test.exe', Symbols loaded.
'test.exe': Loaded 'NOT_AN_IMAGE', No symbols loaded.
'test.exe': Unloaded 'NOT_AN_IMAGE'
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\ntdll.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\kernel32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\user32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\gdi32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\advapi32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\rpcrt4.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\msvcrt.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\MSCTF.dll', No symbols loaded.
'test.exe': Loaded 'C:\Program Files (x86)\Total Commander\Plugins\WLX\IEview\ieview.wlx', Binary was not built with debug information.
'test.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.3790.1830_x-ww_1B6F474A\comctl32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\ole32.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\SysWOW64\oleaut32.dll', No symbols loaded.
The program '[1252] test.exe: Native' has exited with code 0 (0x0).



Вот это получаем. Если делаем двумя вышеописанными способами (с трейсами или без бряков) то после msctf.dll больше ничего нет. Вообщем то это логично, три последние длл-ки явно стоят в таблице импорта ieview.wlx.


--------------------
PM MAIL ICQ Skype   Вверх
dumb
Дата 4.11.2006, 04:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



так как в 32b версиях виндуз это работает под любым соусом, то есть предположение об "особенностях эмуляции 32б режима в win64". msdn читать на эту тему пока лень... smile
PM MAIL   Вверх
Любитель
Дата 4.11.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Цитата(dumb @  4.11.2006,  04:55 Найти цитируемый пост)
так как в 32b версиях виндуз это работает под любым соусом

Так ты проверял? Да? Любопытно!


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1027 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.