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

Ваш аккаунт

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

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

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

Защита программы

318
30 марта 2007 года
nof
193 / / 03.04.2006
Народ, можете дать пару советов по защите от api hooking и подключения к программе dll'ок.
261
30 марта 2007 года
ahilles
1.5K / / 03.11.2005
можно проверять список библиотек загруженных библиотек, если есть какая то неизвестная библиотека - выгрузить её, вот только после выгрузки хук то останется и это сразу вызовет ошибку...

можно перехватывать функцию loadlibrary(ex) и всегда возвращать ошибку, но я сомневаюсь в эффективности этого способа, потому что сам не пробовал
318
31 марта 2007 года
nof
193 / / 03.04.2006
Цитата: ahilles
можно проверять список библиотек загруженных библиотек, если есть какая то неизвестная библиотека - выгрузить её, вот только после выгрузки хук то останется и это сразу вызовет ошибку...


Вот эта идея пришла ко мне в первую очередь, но дело в том, что некоторые приложения вроде CursorXP делают подгружают ко всем приложениям свою dll'ку, соответственно трудно программно разобраться, "неизвестная" или "известная" подключаемая библиотека :\

Цитата: ahilles

можно перехватывать функцию loadlibrary(ex) и всегда возвращать ошибку, но я сомневаюсь в эффективности этого способа, потому что сам не пробовал


Вот это интересно. Но глобальными хуками ведь можно подменить мой loadlibrary? Хотя, имхо, это крайне проблематично.

Я так понимаю, 100% способа нет.. так?

334
31 марта 2007 года
HexEdit
809 / / 27.07.2006
[quote=nof]Я так понимаю, 100% способа нет.. так?[/quote]
Я думаю, что да
261
01 апреля 2007 года
ahilles
1.5K / / 03.11.2005
первый вариант: если ты перехватишь свой loadlibrary(ex) и всегда будешь возвращать ошибку, то даже если кто то другой перехватит её ещё раз он все равно так или иначе будет вызывать loadlibrary(ex), а ведь она уже перехвачена тобой до него
второй вариант если ты перехватишь loadlibrary(ex) которая уже перехвачена до тебя здесь всё понятно
P.S. всё это про метод сплайсинга, тогда первые 5(6) байт функции будут модифицироваться несколько раз при неоднократном перехвате функции
P.P.S. загружать дллку можно вручную (т.е. резервировать память, проецировать секции, настраивать импорты (экспорты) и релокейшены)
318
01 апреля 2007 года
nof
193 / / 03.04.2006
Цитата: ahilles
первый вариант: если ты перехватишь свой loadlibrary(ex) и всегда будешь возвращать ошибку, то даже если кто то другой перехватит её ещё раз он все равно так или иначе будет вызывать loadlibrary(ex), а ведь она уже перехвачена тобой до него
второй вариант если ты перехватишь loadlibrary(ex) которая уже перехвачена до тебя здесь всё понятно
P.S. всё это про метод сплайсинга, тогда первые 5(6) байт функции будут модифицироваться несколько раз при неоднократном перехвате функции
P.P.S. загружать дллку можно вручную (т.е. резервировать память, проецировать секции, настраивать импорты (экспорты) и релокейшены)


Есть небольшой нюанс - программа после компилирования упаковывается последним EXECryptor'ом, а он с импортами такого наворачивает.. В таких условиях возможно будет подменять свой loadlibrary?

261
02 апреля 2007 года
ahilles
1.5K / / 03.11.2005
разумеется можно у loadlibrary всегда одинаковый адрес
делаешь так
getprocaddress(getmodulehandle('kernel32.dll'),'LoadLibraryA')
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог