Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с аттачем DLL к процессу

318
09 сентября 2010 года
nof
193 / / 03.04.2006
Ребят, такая проблема.
Я написал DLL-ку (MSVC 2005) на c++, совершенно пустую, с одним MessageBox-ом в DllEntry. Инжектю её своей программой через CreateRemoteThread в определённое приложение. На моих виндах (winxp sp3) всё отлично инжектится, код DLL-ки выполняется в контексте другого процесса.
Но на второй ОС (на ЧИСТОЙ свеже-поставленной сборкой WinXP с единственной установленной программой для прозрачности окон) эта же Dll-ка не инжектится. Смотрел через ollydbg, CreateRemoteThread отрабатывает, LoadLibrary отрабаывает, но DLL-ка не подгружается.
Чтобы исключить возможные проблемы моего инжектора, попробовал стороннюю программу remotedll. Она при инжекте выводит ошибку:
LoadLibraryA on remote process failed with error: 87
87 как вы знаете это: Параметр задан неверно.
Но путь к библиотеке у меня точно задан верный..
Соответственно, запускаемая LoadLibrary в контексте другого приложения возвращает вот такую ошибку..

Попросил потестить друзей на своих компьютерах. У кого-то инжектится, у кого-то нет..
У меня мысли сводятся к каким-то специфическим настройкам компиляции или линковки.. У кого-нибудь были подобные проблемы с дллками? Может в настройках проекта что не так? Танцы с бубном результатов не дали :/
3
09 сентября 2010 года
Green
4.8K / / 20.01.2000
С каким ключом собрана? /MT
253
09 сентября 2010 года
Proger_XP
1.5K / / 07.08.2004
Путь к библиотеке точно абсолютный? Может с правами какая-то фигня?
318
09 сентября 2010 года
nof
193 / / 03.04.2006
Цитата: Green
С каким ключом собрана? /MT


компилер:

Цитата:

/O2 /GL /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "TESTDLL_EXPORTS" /D "_WINDLL" /FD /EHsc /MD /Yu"stdafx.h" /Fp"Release\Test.pch" /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /errorReport:prompt


линкер:

Цитата:

/OUT:"Test.dll" /INCREMENTAL:NO /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"Release\Test.dll.intermediate.manifest" /DEBUG /PDB:"Test.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 /ERRORREPORT:PROMPT /FIXED:NO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib



Только не пойму, почему тут /DEBUG. Это как бы на Релиз параметры :/

318
09 сентября 2010 года
nof
193 / / 03.04.2006
Цитата: Proger_XP
Путь к библиотеке точно абсолютный? Может с правами какая-то фигня?


Да точно, я же даже через дебаггер смотрел.. передаваемый параметр сверял..
А права - ну была бы ошибка соответствующая. А какие права могут быть в чистых ХП виндах? :/ я там пальцем ни одни настройки не трогал.

253
09 сентября 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: nof

А права - ну была бы ошибка соответствующая. А какие права могут быть в чистых ХП виндах? :/ я там пальцем ни одни настройки не трогал.


Ну да, действительно. А пробовал собрать библиотеку на другом VC? На другой машине? Или вообще на другом языке, на Delphi, например? Тогда было бы понятно, в библиотеке ли ошибка или в загрузчике (loadlibrary). Есть подозрение, что библиотека не инициализируется, поэтому loadlibrary и не работает.

318
09 сентября 2010 года
nof
193 / / 03.04.2006
Цитата: Proger_XP
Ну да, действительно. А пробовал собрать библиотеку на другом VC? На другой машине? Или вообще на другом языке, на Delphi, например? Тогда было бы понятно, в библиотеке ли ошибка или в загрузчике (loadlibrary). Есть подозрение, что библиотека не инициализируется, поэтому loadlibrary и не работает.


Не пробовал, попробую :/

1
10 сентября 2010 года
kot_
7.3K / / 20.01.2000
Вполне возможно, что проблема связанна с uuid.dll - точнее с тем, что данная либа линкуется при создании длл. Эта не системная библиотека и вполне может отсуствовать.
318
10 сентября 2010 года
nof
193 / / 03.04.2006
Цитата: kot_
Вполне возможно, что проблема связанна с uuid.dll - точнее с тем, что данная либа линкуется при создании длл. Эта не системная библиотека и вполне может отсуствовать.


Так там же фигурирует uuid.lib
Дллки на целевой системе может и не быть, она не нужна, если я правильно понимаю, что такое .lib.

1
10 сентября 2010 года
kot_
7.3K / / 20.01.2000
если длл на целевой системе нет - то ваша длл не сможет быть загружена (так как линковка выполнена статически). По крайней мере с подобной проблемой я сталкивался. А вы вполне можете проверить - вместо того что бы высказывать предположения.
14
10 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
Вот говорят вам умные люди
Цитата: Green
С каким ключом собрана? /MT


некоторые вещи.. А вы даже не удосуживаетесь прочитать что это за ключ такой, что у него за counterpart /MD и с чем это вообще едят.
А ну быстро читать справку до полного отпадания вопросов!

318
12 сентября 2010 года
nof
193 / / 03.04.2006
Цитата: Phodopus
Вот говорят вам умные люди

некоторые вещи.. А вы даже не удосуживаетесь прочитать что это за ключ такой, что у него за counterpart /MD и с чем это вообще едят.
А ну быстро читать справку до полного отпадания вопросов!


Сменил /MD на /MT и всё заработало )) спасибо!

64K
04 октября 2010 года
randomizr
2 / / 29.09.2010
кто знает.
Как в Windows 9x загрузить свою DLL в верхние 2Гб.
Пробовал из VXD через сервис _PELDR_LoadModule, не получилось.
Очень нужен ring-3 код в верхних 2Гб.
64K
06 октября 2010 года
randomizr
2 / / 29.09.2010
кто знает.
Как в Windows 9x загрузить свою DLL в верхние 2Гб.
Пробовал из VXD через сервис _PELDR_LoadModule, не получилось.
Очень нужен ring-3 код в верхних 2Гб.
318
06 октября 2010 года
nof
193 / / 03.04.2006
А что такое верхние 2гб?)
5
06 октября 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: randomizr
Как в Windows 9x загрузить свою DLL в верхние 2Гб.


Зачем вам это?

5
06 октября 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: nof
А что такое верхние 2гб?)


Это адреса выше 0x80000000 на 32-разрядных системах.

41K
28 октября 2010 года
kisssko
108 / / 28.10.2010
Для подобных случаев рекомендую к раскурке вот эту статейку:
http://www.transl-gunsmoker.ru/2009/01/dllmain.html
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог