![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Hacker |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Внедряю свою ДЛЛ-ку в explorer, проблема в том что почему-то под Win2000 код не работает, я не понял, или он не туда внедряется, или проблема в перехвате функций...
Вот Injector - часть кода из EXE
А вот ДЛЛ-ка, она должна выводить мессаги, когда проводник запускает какую-нибудь прогу
Код ДЛЛ-ки гдето тут на форуме взял, не могу теперь найти где... ![]() Либо инжектится она не в експлорер, либо хуки не работают, не понимаю... под XP SP2 Prof всё летает на ура, под SP1 вроде тоже не работает... Есть ли универсальный инжект, для любой винды (ну 98 можно не учитывать ![]() p.s. Сейчас проверил - инжектится туда куда надо, значит проблема с хуками... |
||||
|
|||||
Hacker |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Вот кое что накопал... выходит здесь:
Неужели никто не в курсе??? Вот я нашёл одну вешь из-за которой это может быть:
Взято ОТСЮДА Вот только там всё на сях, ничерта не понял... ![]() |
||||
|
|||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Лови демку, если не разберешся как пользоваться - зови.
Краткое описание: данная библиотека выполненна в виде расширения оболочки и реализует дополнительную закладку при открытии свойств любого исполняемого файла. В закладке отображаются все экспортируюмые и импортируемые функции выбранного объекта... Чуток сырая, под 2000 не затачивал, нет времени, но по идее должна работать... Коментариев пока мало... нет времени... Присоединённый файл ( Кол-во скачиваний: 85 ) ![]() |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Да, чуть не забыл для чего выложил демку
![]() Обрати внимание на следующий код в модуле DumpUtils.pas
Дело в том что по стандарту таблица должна быть расположена во смещению Image^.Union.OriginalFirstThunk (она же Image^.Union.Characteristics) а также ее дубликат должен храниться в Image^.FirstThunk. НО!!! По стандарту ссылки на функции получают через Image^.FirstThunk, поэтому Борланд просто вырезала OriginalFirstThunk, для которой пишется большинство примеров (а они обычно под С++, где данная таблица заполнена), поэтому данные примеры, не обращая внимания на стандарт обращаются для перечисления к OriginalFirstThunk (что есть не верно) и на программах, написанных на Дельфи, попросту не работают... |
|||
|
||||
Hacker |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Посмотрел коды... немного даже понял... спасибо!
Сегодня опять весь день мучился с этими хуками... вот что вышло: Ставит хук, но при запуске любого процесса Explorer'ом выдаётся ошибка... то есть на место той функции что-то записывается, но что-то не то... Вот код:
Устанавливаю так:
Функция - перехватчик:
Объясните пожалуйста что я делаю не так??? ![]() |
||||||
|
|||||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Уважаемый Hacker, вам как в пустой колодец лить...
Только обьяснил как второй раз на грабли не наступить, так Вы опять за старое... Приведенный код читали? Если читали, то хоть поделитесь тем что вы из него не поняли? Объясню... Это сообщение отредактировал(а) Rouse_ - 4.6.2006, 13:03 |
|||
|
||||
Hacker |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Интересует естественно функция GetImportTable и её переделка под запись в память процесса... Чтобы можно было параметрами ей передать указатели на TargetFunction и NewFunction и указатель на процесс в памяти...
![]() |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Вот это твой вариант
![]() А вот это мой вариант: FuncAddr := PChar('0x' + IntToHex(DWORD(Thunk^.AddressOfData), 8)); Найди два различия ![]() Потом, где проверка на (DWORD(Thunk^.Function_) and IMAGE_ORDINAL_FLAG) = IMAGE_ORDINAL_FLAG В третьих обради внимание на GetDelayImportTable |
|||
|
||||
Hacker |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Так?
в C++ эта строка вообще была:
А вот это вообще тёмный лес ![]() Вот на C++ этот код - что-то я криво перевёл...
|
||||||||
|
|||||||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Посмотри вот тут http://forum.vingrad.ru/index.php?showtopi...st&p=721643
|
|||
|
||||
Hacker |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Странно, но работает на всём кроме Explorer'a... ![]() Посмотри сам... Причём все действия нужные выполняет - заходит в эту ветку:
пишет 'доступ разрешён!' Накатал на дельфи подопытную прогу, на ней нормально работает... но мне то нужно именно для проводника... ![]() PS: Можно небольшой вопросик не по теме... А как пользоваться твоей либой (PropertySheet), чёт я не допёр... а то лежит на диске такая нужная вещь, а я ей не пользуюсь ![]() |
||||
|
|||||
Rouse_ |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Хм, антивирей не стоит случаем? они могут тушить такие попытки...
Собираешь библиотеку, потом делаешь
Чтобы деинсталировать:
|
||||||
|
|||||||
Hacker |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
||||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 13 Всего: 111 |
Rouse_ Привет. Извиняюсь за оффтоп, но .... . Всё таки на delphimaster ты меня так и не послушал и, как мне показалось, проигнорировал. А я говорил, что при просмотре закладки "импорта/экспорта", падает Explorer при перерисовке Label "Импорт". Если всё таки стало интересно, то напиши пожалуйста в PM и стукни в ICQ. Добавлено @ 17:59 Поправочка. Label "Экспорт". |
|||
|
||||
Rouse_ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Я не проигнорировал ![]() Хотя может дело в том, что при отсутствии экспорта данный элемент скрывается... Ммм, не знаю, если не в этом, то тут явно что-то глубже. Кстати, ты под какой системой проверял? Добавлено @ 19:30
Как появиться время, попробую поэксперементировать что там не работает у тебя... Добавлено @ 19:43 Yanis, проверь вот такой вариант:
Кстати, тут нехилая утечка памяти на GetStockObject, его вызов нужно вынести в WM_INITDIALOG и сохранить в внешней переменной, а по WM_DESTROY разрушить через DeleteObject... Говорю же, сыровато чуть... Нет времени дорасти до полноценной демки ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |