Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› Узнать имя exe-файла в который внедрена dll
Посл.ответ Сообщение


Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 августа 2008 06:53
· Личное сообщение · #1

Внедряю dll во все процессы с окнами. Вопрос в том, как узнать имя очередного exe-файла в который внедрена длл, и полный путь к этому ехе на диске...Единственное что пока получилось, это GetModuleHandle(nil) - который возвращает хендл модуля в который внедрились.....а вот что дальше делать, чёто я не допру...может не проснулся ещё
Подскажите какие API покурить и в какую сторону вообще копать
PS: Пишу на Дельфях

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 22 августа 2008 06:56
· Личное сообщение · #2

GetModuleFileName




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 22 августа 2008 07:48
· Личное сообщение · #3

GetModuleFileNameEx

uses Psapi;

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 августа 2008 09:56
· Личное сообщение · #4

Спасибо, с этим разобрался...но появилась другая проблема:
Вобщем внедряю ДЛЛ, после чего запускаю в треде во внедренном exe файле функцию из ДЛЛ. Так вот, если в этой функции вызвать мессагу то откроется куча сообщений с именами приложений в которые внедрена ДЛЛ...если все их закрыть, а потом снять хуки, то всё нормально, если же их не закрывать, и снять хуки, то все приложения улетят в трубу....более того, если в функции не использовать мессаги, а напрямую писать результат в текстовый файл, то опять получаем кучу рантайм ерроров и все приложения аварийно завершаются....
Ткните носом, что я не так делаю....
Вот собственно исходники инжектора и самой длл: (1.57Кб)


15f7_21.08.2008_CRACKLAB.rU.tgz - inject.rar

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 22 августа 2008 11:48
· Личное сообщение · #5

SecurAdmin
Предлагаю отказаться от RTL наследия




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 августа 2008 13:01
· Личное сообщение · #6

censor пишет:
Предлагаю отказаться от RTL наследия

хм...я тоже об этом думал.........но как тогда быть, если в идеале мне нужно сохранить результат не в текстовом файле, а в базе данных MSSQL???

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 августа 2008 13:03
· Личное сообщение · #7

А может быть лучше вообще использовать отправку этих данных через сокеты....только вот с сокетами на чистом WinAPI я тоже не работал...
Если кто даст примерчик, буду очень признателен..

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 63.8 (постоянный), 2thx
Активность: 0.030
Статус: Участник

Создано: 22 августа 2008 23:18
· Личное сообщение · #8

SecurAdmin пишет:
А может быть лучше вообще использовать отправку этих данных через сокеты....только вот с сокетами на чистом WinAPI я тоже не работал...
Если кто даст примерчик, буду очень признателен..

уже гдето поднималась тема по передаче данных меджу приложениями и на чистом WinApi проще всего заюзать WM_COPYDATA



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 23 августа 2008 00:23
· Личное сообщение · #9

Я думаю так:
1. Как ты себе представляешь запись в один и тот же открытый файл данных несколькими процессами,
если у файла предварительно не выставлены расшаренные атрибуты? Уж если решил работать с API, так с ним и работай (CreateFile), а не AssignFile, явные тонкости которого я не знаю т.к. в делфях не силен.
2. MessageBox(0,szFileName,'Hook_DLL',MB_OK); - первый параметр - желательно хендл окна приложения;
Хотя тема левая...кури доки.

-----
продавец резиновых утёнков





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 27 августа 2008 06:12
· Личное сообщение · #10

Всем спасибо, как и советовали censor и HiEndsoft, перешел полностью на АПИ, реализовал отправку полученных данных через мэилслоты. Всё работает, тему закрываю

-----
бессмысленные манипуляции не становятся более разумными если их повторять



 eXeL@B —› Программирование —› Узнать имя exe-файла в который внедрена dll
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати