Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальные хуки, Win32API и DLL, параметры полученной API-функции 
:(
    Опции темы
Pathfider
  Дата 28.12.2004, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



Нашел на форуме вот такую DLL:
Код

library Project2;

uses
 SysUtils,
 Classes,
 Windows,
 Messages;

var
 SysHook: HHook=0;

function SysMsgProc(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall;
var Msg:TMessage;
begin
if Code=HC_ACTION then
 case TMsg(Pointer(LParam)^).message of WM_RBUTTONDOWN,WM_RBUTTONUP,WM_RBUTTONDBLCLK: TMsg(Pointer(LParam)^).message:=WM_NULL
  else Result:=CallNextHookEx(SysHook,Code,WParam,LParam);
 end;
end;

procedure Hook(Flag:Boolean); export; stdcall;
begin
if Flag then SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance,0) else
 begin
  UnhookWindowsHookEx(SysHook);
  SysHook:=0;
 end;
end;

exports Hook;

{$R *.res}

begin
end.

А можно ли получить параметры перехваченного сообщения, ну скажем ReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead, lpOverlapped)? Я имею в виду то, что в скобках. Буду очень благодарен за пример.
--------------------
Trust is a weakness
PM MAIL   Вверх
p0s0l
Дата 29.12.2004, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Можно
Ищи что-нибудь типа "Перехват API", "Перехват функций" и т.д...



--------------------
С уважением, г-н Посол.
PM   Вверх
Pathfider
Дата 29.12.2004, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



p0s0l Ты не поверишь, но кроме своих собственных топиков ничего путевого не нашел... smile smile smile smile
Добавлено @ 17:22
p0s0l Ты не поверишь, но кроме своих собственных топиков ничего путевого не нашел... smile smile smile smile
--------------------
Trust is a weakness
PM MAIL   Вверх
xAnejl
Дата 29.12.2004, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.12.2004

Репутация: нет
Всего: нет



если пишеш не троян, то тогда madCodeHook
PM MAIL   Вверх
S.A.P.
Дата 29.12.2004, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



PM MAIL   Вверх
Pathfider
Дата 30.12.2004, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



Цитата
если пишеш не троян, то тогда madCodeHook

Как раз НЕ троян, а что-то вроде FolderGuard'a
--------------------
Trust is a weakness
PM MAIL   Вверх
RA
Дата 5.1.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115



Всё это реализованно по старой системе как в примере из арсенала.
тоесть, есть dll она перехватывает нужные api (с параметрами) и выдаёт мессагу
с названием функции и предложением разрешить или запретить исполнение данной функции.
тоесть тебе нужно сделать примерно следущее:

Код

пример:
function CopyFileHookProc(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;
begin

 {Тут ты получаешь информацию о параметрах отловленной функции
 lpExistingFileName - Откуда скопировать
 lpNewFileName -      Куда вставить
 bFailIfExists -      Заменить имеющийся уже фаил}

Тут желательно организовать доступ к базе данных где будут проверятся параметры,
далее либо так:

   result := CopyFileNextHook(lpExistingFileName, lpNewFileName, bFailIfExists)
Либо так:
   result := FALSE;
end;


Думаю тут тебе и без меня всё ясно.


Про внедрение.

Так как dll перехватывает вызовы только тех процессов к каторым она приоттачена, то
нужно внедрить её в каждый процесс, пример внедрения есть в кладовке.
Далее можно расслабиться тк. начнётся массовая эпидемия самовнедрений, т.е.
в длл'ке стоит ловушка на запуск новых процессов => следовательно в каждый новый процесс она сама внедрица.


Вообщем проверь всё это, мож я где лажу выдал smile

Присоединённый файл ( Кол-во скачиваний: 189 )
Присоединённый файл  Hook.zip
PM   Вверх
Pathfider
Дата 6.1.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



RAdmin - ОФИГЕННОЕ СПАСИБО! Теперь буду разбираться пробовать написать что-то подобное.
--------------------
Trust is a weakness
PM MAIL   Вверх
Guest
Дата 7.1.2005, 14:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Pathfider

то, что ты просил по телефону:

procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
if OpenDialog1.Execute then
begin
s:=OpenDialog1.FileName;
Label1.Caption:=s;
SetFileAccess(ReadWrite,DenyAll);
FileOpen(s,FileMode);
end;
end;

то, что регистрирует Silence

1- Нормальный вход
2- Попытка обхода
3- Завершение программы
4- Не найдены БД
5- Завершение администратором
6- Удаление из реестра
7- Подбор пароля
8 - Вход администратора
91-БД сохранены удачно
92- Неудачное сохранение БД
10- Добавлено задание на печать
11-Обнаружен отладчик
12-Изменение системного времени

есть ещё, но лень лезть в исходник...
  Вверх
Albinos_x
Дата 7.1.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



Выше - это я


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
p0s0l
Дата 8.1.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



М
 
Albinos_x, какое отношение твой пост имеет к теме ?
Личные переписки - пожалуйста, через PM...

В следующий раз публично-личные переписки будут удаляться...



--------------------
С уважением, г-н Посол.
PM   Вверх
Bog d`An
Дата 3.11.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Perchilla почему-то ничего не находит smile
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
_hunter
Дата 3.11.2005, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



это ты к чему?..


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
S.A.P.
Дата 3.11.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Цитата(Bog @ 3.11.2005, 14:58)
Perchilla почему-то ничего не находит
блин, тема столетней давности, я уже и не помню, что за линк там давал smile .
PM MAIL   Вверх
Pathfider
Дата 22.11.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



Я тут нарыл еще вариант перехвата на уровне NativeAPI. И опять же одно "НО": секунды 3 работает нормалоьно, а потом при попытке внедриться в другой процесс - "память по адресу ... не может быть "written"". Уперся пока только в это.
Вот собственно исходник:
DLL
Собрано по материалам товарища MsRem'а с сайта www.wasm.ru
--------------------
Trust is a weakness
PM MAIL   Вверх
bems
Дата 23.11.2006, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



архив MsRemа с wasm.ru каспер при расширеных базах детектит как троян. 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Pathfider
Дата 29.11.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



Цитата(bems @ 23.11.2006,  01:53)
архив MsRemа с wasm.ru каспер при расширеных базах детектит как троян.

Совершенно верно, но я на это забил.
--------------------
Trust is a weakness
PM MAIL   Вверх
Pathfider
Дата 16.1.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.7.2004
Где: все там же

Репутация: нет
Всего: 1



bems, так что с ошибкой-то делать? Как исправить?
--------------------
Trust is a weakness
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.