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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехватить открытие файла 
:(
    Опции темы
tigger
Дата 13.3.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

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



Кликаю на прямую открывается страница http://forum.vingrad.ru/act-Attach/type/post/id-1061614.html со следующим содержимым:

Rar!;Рs $gzЂ#*в¬^яП3CMT ”СLЛХЃиНBFГ}Ш ҐЃm…¶Y%…Ґ?р0-APЏВ?ЅЉIШ‚KcпItћ‹3іf5Џ'ђ4УM4фqsеП ЂeXтЈ1ы°(Aњыђy–рSxЅ”q%ЇаL)i.ЈIBрОЊъфЗФДЌ‘рІћИШ%ъRq¤(йЗЊбЕ9Е)L хв`7ІNњДJ»]Ш%rцМчжzvЎqМЂіLЈї&·„пІЦѓ°}уЏb‹ФCс“oь жЪш5гщKх7 Д§HєЈaБlp ЃҐ,‹U©sљТ>qЬ;З№9b_уМ¦†i5лvЋЕж"ХЅ@кЮ/:О©ц U‚ѕ>xмНОїВzVBлї»9d*ІJ/‘ЌцuTM JщYљЃЁїґXjtАђ/ҐЛ !3ј ў¦?23 Readme.txtр' ЌLМНь?»иаь©Р$ckFЧш·§LеєБҐІi ЦдJИ¶q&R[?ьлkУєh·`/nЌV«гm%N8н[0ФЪфДУiЖеВхЮ‡@u5О ръзЖIррыxGп ’рьш5;mЦ+”™ИnOO]/ =xSц&ЉZКПWt•,qy‹,[\®”ьЫцљЇАjЩ„лх—iЉ—йЈ<*нФї¦y6[ёkoQЉО:»Г#„№kЪfOБАГЋт?х№ЯYБ Ь=Tїъ:^IЄ Њ±ъоЉ‰&І*ц љFЮ»р±`|&м4Я±ІY-V`@ °ЙZ©w”їµu`}д|H &bУUMycхЙьaыW uщ` 5HпІнЦ9ХФпN8О‚Є:лj¬«змmTџy*ЉЎЭ$д|Л^љsvgЄ ?Эу>Э–лљшFвqNЩUиq°юм-µрyѕE1~ћй2Я«ўЉxAµOn‚А-¬ў”A>Ж3+П»–e3иPИdј* щ(йП[gxBјьx2еФ©d†гҐАµпb¶8Kи,9vЄеiІЁу=|f“ЅжИiuUЗЌ]KFFXuєЌІFkЪАМlsћhЈ +-n?HйcH+zУсЉ|љАўRo–µ‹Еq¦ыwаЎТq рлхЃЊkц…GИњЖх§+‘Ђ¤x~ё3%lг—Яљ{!_Ё}*dQ§цРX‘`·ЗиЌp¤SФ°T/ѓp†зҐJ~µu{уA/Тн{‡m5wi>†С;ф9PXд”L‚>;¶ЋГю¬+МдT>R0ЎF)ЉсOЪG3© qшт(zАIЧ іоЂхbў!,ъ›±j&pоЮ+rДт™г»ВCИb+1,Ґ Фm $ zbsБe ёЕ±¦¦+aё9Ах6Ущ _МP®4oщH_DЗ# ЙѓУЏrВЫН?Eb¶ейјUэБzяV « е?…m„Щ§!Х"ћ™)uпXоє№~!AиОТB°ў ЙvЩ$-N“ЮLeRЬKўШG-#xybЋш­S†`И'»&\ПУм1ўЗ.эКй}Xєь|К d9i„&%&z:Ы{YF;u gW¤“Ф‘1ъІюl;%є‘Tg•‰tzN;&ЯМ(ГaС3!Г вЄpґ%зюќ»Eт2•+NЦюшжЌОtО@‹"ш­цмІ^`•M'µ%ѓА‡–Dьgшфµ3шк1;Ўtё™ТШб}{-У.ХЦcАСЖ&„ѕ¬Џи¦ЦІHЗU”(НЅц§¦†ЉIбІЧЙґG*Ь ЁGUВyUрЯOzvOіюC2ЩЉqєµ _`+J«”Н+0-™]¶‚%ѓЅ\xйЪ© бScЄїј#`2ыѓљ:31ІЮО ·Пhш}7ЁгуA0є<єlU$OWQ АUЕШг“МЕ'фщ7µ kгљ!JБj7s§у~?ш,wЄ`Ж›L№ња:їШч‡ХЮaїlџЉбќ+ј$\=AqвыКх`ЛМќгБФс¤љ yiЕ8’Зl_І:’ъГЭ'Kz9’ўіЧњлёЁ иZxC#±ГUµК' ЎFP`ЮmъЄс…‹м7—аиш­ж4ЫыёчёќжQµ=ћЯh7’'хл$¬3) 6JжфYC‹R`Ю ·ЩpCаqмжdцq+ьуъ%яqЭкФ†ФЧхs РМ›±:ђYVz8°° ~yџGЗфХ(оЄ–ЖКДычIᥚю„\аШ/P}”‡z$UЬE ‘wZ~ёX;?vиY•4ЕvЙЎ7т'gя}Ѕ®ЯХЫъюБнЙя µШtРђ.*'5 ?°[n25 clean.batр$э=я`§dg‚с A-9ш%Ѓ’Rуk?Я$;–&@ьПа‡?.............. 

bartram
может на ящик кинешь [email protected]


--------------------
user posted image
PM MAIL   Вверх
bartram
Дата 14.3.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(tigger @  13.3.2007,  14:49 Найти цитируемый пост)
может на ящик кинешь [email protected] 

отправил



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Yanis
Дата 14.3.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(tigger @  13.3.2007,  15:49 Найти цитируемый пост)
Кликаю на прямую открывается страница http://forum.vingrad.ru/act-Attach/type/post/id-1061614.html со следующим содержимым:

Я подозреваю, что ты используешь в качестве броузера Opera.... У меня такая ситуация там постоянно повторялась.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Snowy
Дата 14.3.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(tigger @  13.3.2007,  14:49 Найти цитируемый пост)
со следующим содержимым:
Клик правой кнопой.
В меню "Save target as..." (сохранить по ссылке как).
PM MAIL   Вверх
Coffein
Дата 18.4.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всех приветствую! У меня похожая проблема, и заключается она в следующем:

мне нужно реализовать механизм проверки прав доступа к ресурсам компьютера(к примеру запрет на откртыие определенных папок или запуск файлов) и в случае отсутствия их запетить доступ.

Я плохо понимаю перехват Апи-функций, bartram, ты выложил исходники, поясни мне пожалуста код и принцип advApiHook:
Код

function HookProc(lpModuleName, lpProcName: PChar;
                  NewProc: pointer; var OldProc: pointer): boolean;
var
 hModule: dword; 
 fnAdr: pointer;
begin
 Result := false;
 hModule := GetModuleHandle(lpModuleName);
 if hModule = 0 then hModule := LoadLibrary(lpModuleName);
 if hModule = 0 then Exit;
 fnAdr := GetProcAddress(hModule, lpProcName);
 if fnAdr = nil then Exit;
 Result := HookCode(fnAdr, NewProc, OldProc);
end;


и HookProc:
Код

program aHookProc;

uses
  Windows,
  advApiHook;
  
var
TrueMessageBoxA: function(hWnd: HWND; lpText, lpCaption:
                          PAnsiChar; uType: UINT): Integer; stdcall;

function NewMessageBoxA(hWnd: HWND; lpText, lpCaption:
                        PAnsiChar; uType: UINT): Integer; stdcall;
begin
  TrueMessageBoxA(0, 'Перехват установлен!', 'HookProc', 0);
end;

begin
  MessageBoxA(0, 'Новый метод API перехвата.', 'HookProc', 0);

  HookProc('user32.dll', 'MessageBoxA', @NewMessageBoxA, @TrueMessageBoxA);

  MessageBoxA(0, 'Не работает!', 'HookProc', 0);

  UnhookCode(@TrueMessageBoxA);
  
  MessageBoxA(0, 'Перехват снят.', 'HookProc', 0);
end.




PM MAIL WWW ICQ   Вверх
bartram
  Дата 19.4.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Кратко:
Код

begin
  MessageBoxA(0, 'Новый метод API перехвата.', 'HookProc', 0); //показываем сообщение :)
  HookProc('user32.dll', 'MessageBoxA', @NewMessageBoxA, @TrueMessageBoxA); //установка перехвата
//первый аргумент - системная библиотека где находиться функция
//второй аргумент - имя функции (которую мы перехватываем) в этой библиотеке 
// третий аргумент - указатель на функцию КОТОРОЙ будет заменена оригинальная
// четвертый аргумент - указатель на оригинальную функцию (не перехваченную)
  MessageBoxA(0, 'Не работает!', 'HookProc', 0); //проверяем сработал ли перехват
  UnhookCode(@TrueMessageBoxA); //снимаем перехватчик
  
  MessageBoxA(0, 'Перехват снят.', 'HookProc', 0); // показываем сообщение о том что перехват снят
end.

Все предельно просто. Будут вопросы пиши.


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Coffein
Дата 27.4.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



bartram, Спасибо за коментарии, с примером разобрался, но свою задачу так решить и не смог. Помоги разобраться:

- Мне нужно перехватывать функцию CopyFile глобально.  Для этого по примеру написал дллку:

Код

library Hook;

uses
  Windows,
  advApiHook;

{$R *.res}

const
  MutexName='__API_HOOK';

var
SH:HHOOK = 0;

  CopyFileNextHook: function (lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

function CopyFileHookProc(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;
begin
  MessageBox(0, 'Функция: CopyFile', 'Позволить ?', MB_YESNO or MB_ICONQUESTION);
end;

function MsgProc(code:DWORD;wParam,lparam:DWORD):DWORD;stdcall;
begin
  CallNextHookEx(SH,code,wParam,lparam);
end;

procedure SetWindowsHook(e:Boolean); stdcall;
var
  M:THandle;
begin
  if e then
   begin
    m:=CreateMutex(0,false,MutexName);
    if m=0 then exit;
    SH:=SetWindowsHookEx(WH_GETMESSAGE,@MsgProc,HInstance,0);
   end
       else
    UnhookWindowsHookEx(sh);
end;

procedure HandleEvents(reason: integer);
begin
  case reason of
    DLL_PROCESS_ATTACH:
      begin
        SetWindowsHook(true);
        HookProc('kernel32.dll', 'CopyFileW', @CopyFileHookProc, @CopyFileNextHook);
      end;
    DLL_PROCESS_DETACH:
      begin
        SetWindowsHook(false);  
        UnhookCode(@CopyFileNextHook);
      end;
  end;
end;

   //     HandleEvents(DLL_PROCESS_DETACH);

begin
  DllProc := @HandleEvents;
  MessageBox(0, 'Запускаем дллку', 'Позволить ?', MB_YESNO or MB_ICONQUESTION);
  HandleEvents(DLL_PROCESS_ATTACH);
///  CopyFile('C:\test.txt','C:\test1.txt',true);
end.
end.


ПРоблема в том что, если я в своем приложении вызываю функцию CopyFile, то она перехватывается, а если я в Винде жму копировать, то на меня ноль эмоций. ПОдскажи как быть? Может я не ту функцию отлавливаю, или чтобы подгрузит дллку к explorer'у надо что то еще сделать?

Это сообщение отредактировал(а) Coffein - 27.4.2007, 17:14
PM MAIL WWW ICQ   Вверх
bartram
Дата 27.4.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(Coffein @  27.4.2007,  16:55 Найти цитируемый пост)
ПРоблема в том что, если я в своем приложении вызываю функцию CopyFile, то она перехватывается, а если я в Винде жму копировать, то на меня ноль эмоций. ПОдскажи как быть? Может я не ту функцию отлавливаю, или чтобы подгрузит дллку к explorer'у надо что то еще сделать?

Если в своем приложении срабатывает значит делаешь правильно.  Ты внедряешь dll в Explorer?
Посмотри примеры advApiHook там есть пример внедрения dll в чужие процессы.



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Coffein
Дата 28.4.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я в примере использую установку глобального хука на все события происходящие в Винде, тем самым внедряю свою дллку ко всем процессам. Отсюда я пологал что она внедряется и в explorer. Но в отличае всех приложений explorer  мне не выдал сообщение(при подключении дллки выполняется код вывода сообщения) о том что дллка к нему подключена. я завершал explorer, потом заново запускал, тогда сообщение мне выводилось, но результата ни какого. В примере advApiHook смотрел, но не разобрался как оно функцианирует. 
PM MAIL WWW ICQ   Вверх
bartram
Дата 28.4.2007, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Попробуй завершить explorer и запустить его потом с помощью:
Код

function CreateProcessWithDll(lpApplicationName: pchar;
                              lpCommandLine: pchar;
                              lpProcessAttributes,
                              lpThreadAttributes: PSecurityAttributes;
                              bInheritHandles: boolean;
                              dwCreationFlags: dword;
                              lpEnvironment: pointer;
                              lpCurrentDirectory: pchar;
                              const lpStartupInfo: TStartupInfo;
                              var lpProcessInformation: TProcessInformation;
                              ModulePath: PChar): boolean;

И посмотри что будет.
эта функция есть в AdvApiHook
P.S. будет время напишу тебе рабочий код.


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

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


Новичок



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

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



bartram, если не трудно поясни парамметры функции.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0956 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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