![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| <Spawn> |
|
||||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Пробую делать перехват вызовов WinSock API, а именно функции recv. Но что то, используемый мною класс ее ни как не меняет. Внедряюсь в чужое АП при помощи хуков - внедрение проходит успешно, поскольку проверяю наличие библиотеки winsock в процессе через GetModuleHandle.
Вот утсановка хука( часть DLL):
Я заглянул в класс подмены функции таблицы импорта, но там все ок - ошибок не было. Причины была в том, что класс, видимо, не нашел этой функции в таблице импорта, поскольку в цикле просморта я подставлял ShowMessage но нахождения не было:
. Продезассемблировав нужную мне прогу при помощи IDA Pro, я увидел там вот это:
Почему в заголовке файла она хранится как __imp_recv? Подскажите пожалста в чем может быть ошибка подмены импорта. Это сообщение отредактировал(а) <Spawn> - 3.6.2003, 07:19 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||||
|
|||||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
сделай вывод ImportEntry^.Function_ при поиске адреса.
здесь: FoundProc := Pointer(ImportEntry^.Function_) = FromProc; "вывод"(ImportEntry^.Function_ ); и убедись, что в списке импорта есть адрес recv... -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Как я уже говорил, я проверял наличие самой библиотеки через GetModuleHandle - все было ок. И еще я проверял наличие самой функции при помощи GetProcAddress. Результат тот же - ее адресс был найден. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Ок, выведи значение ImportEntry для меня
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Не найдено таких значений!!!!
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
То есть:
CurrName := PChar(Base) + ImportDesc^.Name; if StrIComp(CurrName, PChar(ModuleName)) = 0 then begin // не попадает ? -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Да результат функции StrIComp всегда не равен 0. Значения ImportDesc^.Name меняется с 354104 по 360268 за 13 итераций и при этом ни разу не выполняется код после if StrIComp(CurrName, PChar(ModuleName)) = 0 then.
Это сообщение отредактировал(а) <Spawn> - 3.6.2003, 17:26 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Я посмотрел значения всех CurrName := PChar(Base) + ImportDesc^.Name - там небыло wsock32.dll !!!!!!!!!!!!!!!!!!!!!!!!!!
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Как же такое может быть, что GetProcAddress(GetModuleHandle('wsock32.dll'),'recv') возвращает адресс функции, а в таблице импорта она не находится? И не находитcя там сама библиотека wsock32.dll.
Вот список импортируемых ДЛЛ (Почему идет повторение?): kernel32.dll user32.dll advapi32.dll oleaut32.dll kernel32.dll advapi32.dll kernel32.dll version.dll gdi32.dll user32.dll kernel32.dll oleaut32.dll comctrl32.dll Я пробовал подменить SelectObject - все было ок. Это сообщение отредактировал(а) <Spawn> - 3.6.2003, 20:46 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
может я не совсем что-то понимаю, но получается что на момент установки хука сокеты еще не загружены и динамически подгружаются позже... но может я что-то не понимаю
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
нет, просто wsock32.dll грузит не сам exe, а одна из библиотек до него.
Дай полный список импортируемых dll. Или скажи - там есть wsock32.dll? Смотри PEViewer.exe например. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
А где эту прогу взять можно?
Я при помощи того класса вытащил вот эти библиотеки: kernel32.dll user32.dll advapi32.dll oleaut32.dll kernel32.dll advapi32.dll kernel32.dll version.dll gdi32.dll user32.dll kernel32.dll oleaut32.dll comctrl32.dll -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Отправил тебе прогу - смотри почту. Посмотришь, если ли в списке импорта wsock32.dll. Если нет - давай Exе мне.
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
ок
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
У меня пока небольшие проблемки смоим основным мылом
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "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. |