Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Hook&Uac   Найти похожие ветки 

 
QAZ   (2009-12-15 19:14) [0]

столкнулся с проблеммой, когда хукаеца клава только тогда, когда активно приложение без админ. прав
если запускать под админом то все ОК, но так нельзя
вопрос. как ловить все хуки без админ.прав ?

зы. почему на форме для вопроса нет чекбоксов Vista&Win7?


 
DVM ©   (2009-12-15 20:12) [1]


> как ловить все хуки без админ.прав ?

WH_KEYBOAD_LL


 
DVM ©   (2009-12-15 20:13) [2]

WH_KEYBOARD_LL


 
brother ©   (2009-12-16 04:41) [3]

> Vista

уже старо и не актуально ;)


 
Егорка   (2009-12-16 11:30) [4]


> WH_KEYBOARD_LL

:) собственно с ним и проблемма


 
QAZ   (2009-12-16 12:15) [5]


> :) собственно с ним и проблемма

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


 
Сергей М. ©   (2009-12-16 12:37) [6]


> с ним и проблемма


> у меня тоже этот хук используется


И оба поди реализовали его в dll)


 
QAZ   (2009-12-16 13:13) [7]

неа :) в самой проге


 
Сергей М. ©   (2009-12-16 13:50) [8]


> QAZ   (16.12.09 13:13) [7]


И чего говорит результат вызова SetWindowsHookEx ?


 
QAZ   (2009-12-16 14:25) [9]

говорит "вот тибе хендл процедуры, иди с миром"
и собствено НЕ хукает только если активно окно проги под админом


 
QAZ   (2009-12-16 14:32) [10]

также хотелось бы слышать версии
не людей у которых стоит ХР и они предпологают что...
а тех кто сидит на Висте\Семерке и у них это работает :)


 
DVM ©   (2009-12-16 19:51) [11]

Если бы WH_KEYBOAD_LL у меня в Win7 не работал, я бы не писал, однако ж все работает. И админских прав не требует.


 
DVM ©   (2009-12-16 19:56) [12]

Я уже этот код выкладывал, выложу еще раз. Под W7 прекрасно работает без админских прав.


{******************************************************************************}
{* Module:  DisableLowLevelKeys.cpp                                           *}
{* Notices: Written 2000 Jeffrey Richter                                      *}
{*                                                                            *}
{* Translated by: Dmitry Muratov                                              *}
{* 2008                                                                       *}
{******************************************************************************}

program DisableLowLevelKeys;

uses
 Windows, Messages;

const
 LLKHF_ALTDOWN  = KF_ALTDOWN shr 8;
 WH_KEYBOARD_LL = 13;

type

 TKBDLLHOOKSTRUCT = record
   vkCode: DWORD;
   scanCode: DWORD;
   flags: DWORD;
   time: DWORD;
   dwExtraInfo: DWORD;
 end;
 PKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;

var
 hhkLowLevelKybd: HHOOK;

//------------------------------------------------------------------------------

function LowLevelKeyboardProc(nCode: integer;  wParam: WPARAM;  lParam: LPARAM): LRESULT; stdcall;
var
 fEatKeystroke: boolean;
 p: PKBDLLHOOKSTRUCT;
begin
 fEatKeystroke := false;
 if nCode = HC_ACTION then
   begin
     case wParam of
       WM_KEYDOWN,
       WM_SYSKEYDOWN,
       WM_KEYUP,
       WM_SYSKEYUP:
         begin
           p := PKBDLLHOOKSTRUCT(lParam);
           fEatKeystroke := ((p^.vkCode = VK_LWIN) or (p^.vkCode = VK_RWIN)) or
                            ((p^.vkCode = VK_TAB) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                            ((p^.vkCode = VK_ESCAPE) and ((p^.flags and LLKHF_ALTDOWN) <> 0)) or
                            ((p^.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or
                            ((p^.vkCode = VK_F4) and ((p^.flags and LLKHF_ALTDOWN) <> 0));
         end;
     end;
   end;
 if fEatKeystroke then
   result := 1
 else
   result :=  CallNextHookEx(0, nCode, wParam, lParam);
end;

//------------------------------------------------------------------------------

begin
 // Install the low-level keyboard & mouse hooks
 hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);

 // Keep this app running until we"re told to stop
 MessageBox(0,
            PChar("Alt+Esc, Ctrl+Esc, WIN, Alt+F4, and Alt+Tab are now disabled." + #13#10 +
                  "Click "Ok" to terminate this application and re-enable these keys."),
            PChar("Disable Low-Level Keys"),
            MB_OK);

 // Remove hooks
 UnhookWindowsHookEx(hhkLowLevelKybd);
end.


 
QAZ   (2009-12-16 20:00) [13]

и как он у тибя креатица\обрабатывается ?


 
QAZ   (2009-12-16 20:00) [14]

опередил :)


 
DVM ©   (2009-12-16 20:01) [15]


> и как он у тибя креатица\обрабатывается ?

что конкретно непонятно в коде?


 
QAZ   (2009-12-16 20:06) [16]

бгг. не работает :)
у тибя уак вобще включен ?


 
DVM ©   (2009-12-16 20:08) [17]


> у тибя уак вобще включен ?

конечно включен.


 
QAZ   (2009-12-16 20:13) [18]

ну не работает
запускаеш любую прогу от одмина
запускаеш хукер
когда активен хукер,жмем Win ,пуск не вылазит - чудо
когда активна одминпрога,жмем Win ,пуск вылазит - ватафака ?


 
QAZ   (2009-12-16 20:18) [19]

проверено как в х32 так и в х64,обе чистые, тестовые


 
DVM ©   (2009-12-16 20:18) [20]


> QAZ   (16.12.09 20:13) [18]

Ааа. Я понял о чем ты. Очень странно был сформулирован вопрос и я было подумал, что у тебя ловушка не отрабатывает вовсе.

А она не отрабатывает только для приложений запущенных "От имени администратора". Ну что ж, все верно, так и должно быть. Если хочешь чтобы работала для приложений запущенных и от имени администратора, то саму ловушку ты должен устанавливать от имени администратора. Нормальное поведение.


 
QAZ   (2009-12-16 20:22) [21]

ну еперный театр, опять не поняли вопроса :(
а я веть уточнял в [9]


 
QAZ   (2009-12-16 20:26) [22]

для этого и других хуков обезательно иметь окно?
ато пробовал както ,есть окно ловит\нету не ловит
в этом вот тоже окно есть от месажбокса...


 
DVM ©   (2009-12-16 20:26) [23]


> QAZ

вот тут такой же вопрос там почитай ответы

http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=21&m=156636


 
DVM ©   (2009-12-16 20:41) [24]


> QAZ   (16.12.09 20:26) [22]

окна тут ни причем, в этом примере Рихтера оно только для того, чтобы продемонстрировать эффект и не дать программе завершиться сразу.


 
Игорь Шевченко ©   (2009-12-16 23:29) [25]

"Еще не хотелось бы видеть открытого коверканья русского языка, использования уличного сленга. Это конечно не наказуемо, но помните, что Ваши слова будут читать люди, которые с ними могут быть незнакомы, или они им просто неприятны."


 
QAZ   (2009-12-17 12:48) [26]

я не коверкаю,а реально не знаю русского языка,стараюсь как могу


 
TIF ©   (2009-12-22 18:39) [27]

> стараюсь как могу

imho, стараться с гуглом проще. For example:
http://translate.google.com/#uk|ru|



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.063 c
15-1338256419
J
2012-05-29 05:53
2013.03.22
скачать видео со станицы в Мазилле.


2-1340649651
Pcrepair
2012-06-25 22:40
2013.03.22
Проблема с вводом-выводом данных через параметры процедуры


15-1337839149
Cobalt
2012-05-24 09:59
2013.03.22
Кто пойдет на "Кросс-платформу"?


3-1285141692
Сергей
2010-09-22 11:48
2013.03.22
Подсказка в DBGrid


4-1261045077
Гном11
2009-12-17 13:17
2013.03.22
Что вместо WinSingt в Delphi 2006