![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ребята. А как можно проверить "висит" ли в памяти моя длл или нет? И если нет то загрузить её опять? Заранее очень благодарен!
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Ты загружай, винда сама проверит. Если она загружена вернёт тебе её дискриптор или загрузит и вернёт дискриптор.
|
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Нет нет нет )))))) я имел другое. В ДРКБ нашел "убивалку" длл из памяти. А я просто не хочу чтобы против моей длл так пошли =)
|
|||
|
||||
| cemick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
||||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
о_О почему странное??? Если в ДРКБ есть "как убить" длл , а я хочу чтобы её не убивали =) Длл же привязывается к ехе. Хочется чтобы когда ехе завершалось, то и длл выгружалась, и никак иначе =)
|
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 1 Всего: 54 |
Даж не знаю как, но первая мысль (так, чтоб наверняка=)), ты убивай ддл-ку сам) и грузи ее снова)
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
почему? Добавлено @ 15:39 Я хозяин компа, я хозяин ОСи, я хочу выгрузить твою библиотеку из памяти, а она будет всяческих сопротивляться.... зачем мне такая программа со всем твоими библиотеками. Можно ещё предположить, что ты пытаешься написать вирус. Это сообщение отредактировал(а) Akella - 3.3.2009, 15:39 |
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ребята ))))) так смешно просто я задаю много вопросов по безопастности и все думают что я вирусню делаю ))) . Честно скажу вирус каждый из нас написал ))) всегда при изучении программирования 80% людей думают "А вот надо написать вирус" . Я тоже так думал ))))) сказал - написал. Ну протестить то надо было где то! А под рукой только свой компютер... ну чтож... спасибо )))) после формата харда и угробленой фат таблицы всякое желание писать вредоносные программки отпало ))))))
Так что не бойтесь это не вирь и не троян и т.д. Akella, да согласен. Ну так нажмите в программе на красный крестик! оО зачем убивать длл? ))) SneG0K, еммм да... вариант )))) но дело в том что длл же не просто "висит" в системе. А убивать и запускать ем...во первых будет ресурсов кушать много, если каждую секунду запускатся так, а ещё сама длл не хилая... там проверок много )))) Ребята. Или скажем чтобы при выгрузке длл чтобы мое приложение также вылетало. Как это можно сделать? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Так и будет. Тот код, который ты видел, выгружает длл из памяти твоего (того процесса, который выполняет) длл. Этот код не позволяет выгружать длл из памяти чужого процесса. Теоретически, наверное, можно внедрить его в чужой экзешник и выгрузить длл из любого процесса, но от этого не застр###шься. Так же как и программно не застр###шься от выдёргивания кабеля питания системного блока. Если кто-то выгрузил твою длл-ку, то твоя программа не обязана работать корректно и тебе за это переживать не надо. А грубо внедряться в работу системы не этично. Добавлено через 13 минут и 59 секунд Проверять загружена ли длл. GetModuleHandle. |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Слово «застр###шься» считается не очень приличным на этом форуме.
Это сообщение отредактировал(а) Yanis - 3.3.2009, 16:14 |
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Да я понимаю. Но на минутку представим что я делаю систему банкомата. Теперь представим... каждый человек подходит и снимает деньги... он не думает о безопасности. Приходит человек который хочет ограбить этот банкомат. И тут он выгружает мою длл из системы. Защита падает... он забирает себе деньги... после этого мы будем думать о этичности? )))) так кто же поступит не этично? Я когда грубо "ворвусь" в систему и не дам никому выгрузить длл из неё (пока не закроется главное приложение), или злоумышленник? Который заберет все деньги?
Просто я хочу только одного =) чтобы посторонние процессы не влияли на мою длл. Читал что ехе файлу можно дать права системы и тогда закрыть его будет то ли не возможно, то ли просто сложно... вот мне бы что то такое для длл. Т.к. ребята. Нынче юзер всегда прав. И даже в тех местах когда у юзера руки из попы или это просто хацкер, то не прав в первую очередь программист которое это допустил. Ведь я думаю лучше скажем в поле для ввода цифр позволить вводить только цифры, чем написать красным цветом "Тут вводить ТОЛЬКО цифры!". Мы же знаем когда нибудь кто то введет букву... и получит еррор... и скажет "эта программа плохая!" . Всё это называется "краш тест" когда программу просто проверяют на устойчивость. Ведь я думаю лучше щас это исправить, чем сидеть и думать "упадет\не упадет" ... Я просто не люблю "hot fix" я стараюсь сделать программу так чтобы она на 99% была без всяких глюков и оплошностей. Ребята да даже не грубо внедрятся... а просто как то убивать главный процесс когда кто то лезет к длл. Так сделать можно? |
|||
|
||||
| cemick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
молодо-зелено....
HINSTANCE hinstDll = GetModuleHandle("MyLib"); // подразумевается расширение .dll if (hinstDll == NULL) { hinstDll = LoadLibrary("MyLib"); Только ты всеравно не сможешь уберечь твои dll... Да и вообще не твоя это забота, что кто то убивает dll(всеравно найдется другой способ обойти защитуу, причем менее затратный), а забота админов настройки защиты системы... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 1 Всего: 54 |
ты можеш например, не сопротивляться, а при вызове функции из длл проверять, не убита ли она... если убита, знач сказать пользователю, что кто-то или что-то выгрузило длл. и спросить:" А не загрузить ли ее снова?". Желательно еще с галоской запомнить)
|
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Да... я ещё новичок... а точнее чайник =) но стараюсь, учусь и т.д. просто для программирования надо не только желание, но и просто - время. Спасибо большое!!! Да не спорю. Против лома всегда есть второй лом. Жизнь такая =) . Просто я не могу сказать конкретно для чего это. Но это не для вирусов. А Админом является обыкновенный юзер... а местами (тонкий намек) - хацкер. Выгрузить ехе с диспетчера задач =) а он сам выгрузит и длл. А у меня просто не стандартная длл ))))) это ещё одно "мини-приложение" Динамически... длл.. а это как? Ну в принципе некая динамика там есть... оно не грузится с системой, а загружается вместе с моей программой, хотя моя программа не является для этой длл родительской =) в роли "родителей" выступает ещё одна программа, но к которой у меня доступа нету. При завершении моей программы длл "умирает". Вроде есть динамика... но чую что я опять не про то ))))) Если я как всегда не угадал, то дайте пожалуйста статейку про динамику ДЛЛ. Заранее очень благодарен! |
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ребята. Пожалуйста подскажите чайнику )))
Тут писать имя длл как он назван счас в системе? Или как он скомпилирован? То есть в проекте с правой стороны я вижу имя будущей длл. Но после компиляции я же могу переименовать. Так что писать? |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 1 Всего: 54 |
|
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 3 Всего: 32 |
||||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ну это само собой =) проверки и т.д. это я оформлю чуток иначе, как мне лучше ;) А вы бы не могли подсказать что надо писать под "майдлл.длл" ? Просто скажем при компиляции проекта с правой стороны вы указываете имя файла которое будет "светится" в диспетчере задач. Скажем вы назвали проект project1.exe . После компиляции вы хоть переименуйте файл в "блаблабла.ехе" , но он в диспетчере останется как project1.exe . Всё это я виду к чему... какое название туда писать? Название имени файла? Или то которое я даю во время компиляции? Заранее очень благодарен! Извините я вас не понял :( |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 3 Всего: 32 |
Ну, раз на этапе компиляции имя неизвестно, то брать его откуда-то "из вне", а не записывать в проект намерво |
|||
|
||||
| Kirgston |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Извините вопрос отпал )))))) просто ещё в 2007ом . При компиляции вы давали имя файла и это имя висело в процессах. И никакое другое. А теперь я смотрю что если переименовать файл то и переименовывается процесс =)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |