Сейчас на форуме: asfa, _MBK_, Rio (+7 невидимых)

 eXeL@B —› Вопросы новичков —› API Hook без модификации кода
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 января 2009 17:11
· Личное сообщение · #1

Привет.
Поиск по сайту выдает в основном перехват процессов и их АПИ, надо немного другое, желательно без сплайсинга.
Хочу поинтересоваться, возможно ли совершить перехват, например, CreateFile следующим образом:
1. положить свою DLL в папку с EXE и назвать ее kernel32.dll
2. переопределить функцию CreateFile на свою и вызвать ее
3. подключить внутри этой DLL оригинальную kernel32.dll и передать ей управление
Если это возможно буду очень признателен за какие-нибудь исходники (желательно ASM), перечисление проблем возникающих при этом или более подробный алгоритм реализации.
Спасибо.



Ранг: 8.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 10 января 2009 17:21
· Личное сообщение · #2

думаю тут без хука не обойтись, =))




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

Создано: 10 января 2009 17:55 · Поправил: coderess
· Личное сообщение · #3

1. положить свою DLL в папку с EXE и назвать ее kernel32.dll

Сначала программа будет сканировать текущую папку на наличие в ней необходимых библиотек, следовательно этот вариант возможен, на tuts4you есть пара injectme, в которых реализована
внедрение путем замены библиотеки, помещением последней в текущий каталог

2. переопределить функцию CreateFile на свою и вызвать ее

Это изменение таблицы импорта? не совсем понял о чем идет речь.

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





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 10 января 2009 19:59
· Личное сообщение · #4

artemiusgreat, хук экспорта этой самой kernel32 и проблема будет решена.

-----
the Power of Reversing team





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 11 января 2009 02:05
· Личное сообщение · #5

artemiusgreat
Ставь MEMORY_NO_ACSESS на код, который надо перехватить и обрабатывай исключение по своему усмотрению

-----
Research For Food




Ранг: 19.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 января 2009 07:30 · Поправил: Neo32
· Личное сообщение · #6

Помнится я такую Фигню уже мутил даже написал прогу которая создает исходник библиотеки для фасма в которую включены эти функции домой приду скину просьба топик не закрывать

З.Ы. Как и обещал прога в аттаче.Она создает исходник (асм) длл с импортироанными из другой длл функцииями(только по именам).Можно дописать код полученного исходника для отлова функций GetModuleHandleA и подобных для перехвата в том случаее если прога создает свою таблицу импорта.Недостаток - патчить все же придется имя библиотеки в таблице импорта например на kernel31.dll так как в первую очередь грузятся длл из системных папок.

Хотя прога эта мне не очень помогла так как экзешник каким то образом все раво получал реальный хэндл библиотек минуя мой перехватчик а не хэндл моей библиотеки и получал реальные адреса процедур.Может кто знает каким образом это возможно?Прога была запакована секюромом 7.хх версии.Надеюсь тебе поможет



Ранг: 19.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 января 2009 10:56
· Личное сообщение · #7

не приаттачилось

d213_14.01.2009_CRACKLAB.rU.tgz - anydll.zip




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 14 января 2009 17:00
· Личное сообщение · #8

Если получение базы длл основывал на функциях, то прот мог и обойти это, если читал и парсил структуры напрямую из ПЕБа. Статья по подмене длл через список в пебе есть от deroko, относительно недавна вышла, даже пример с сорцами был какой-то, погляди на его сайте deroko.phearless.org


 eXeL@B —› Вопросы новичков —› API Hook без модификации кода
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати