![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hook&Uac [D7]
QAZ © (2009-12-15 19:14:00)столкнулся с проблеммой, когда хукаеца клава только тогда, когда активно приложение без админ. прав
если запускать под админом то все ОК, но так нельзя
вопрос. как ловить все хуки без админ.прав ?
зы. почему на форме для вопроса нет чекбоксов Vista&Win7?
TIF (2009-12-22 18:39:00) [1]> стараюсь как могу
imho, стараться с гуглом проще. For example:
http://translate.google.com/#uk|ru|
QAZ (2009-12-17 12:48:00) [2]я не коверкаю,а реально не знаю русского языка,стараюсь как могу
Игорь Шевченко (2009-12-16 23:29:00) [3]"Еще не хотелось бы видеть открытого коверканья русского языка, использования уличного сленга. Это конечно не наказуемо, но помните, что Ваши слова будут читать люди, которые с ними могут быть незнакомы, или они им просто неприятны."
DVM (2009-12-16 20:41:00) [4]
> QAZ (16.12.09 20:26) [22]
окна тут ни причем, в этом примере Рихтера оно только для того, чтобы продемонстрировать эффект и не дать программе завершиться сразу.
DVM (2009-12-16 20:26:00) [5]
> QAZ
вот тут такой же вопрос там почитай ответы
http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=21&m=156636
QAZ (2009-12-16 20:26:00) [6]для этого и других хуков обезательно иметь окно?
ато пробовал както ,есть окно ловит\нету не ловит
в этом вот тоже окно есть от месажбокса...
QAZ (2009-12-16 20:22:00) [7]ну еперный театр, опять не поняли вопроса :(
а я веть уточнял в [9]
DVM (2009-12-16 20:18:00) [8]
> QAZ (16.12.09 20:13) [18]
Ааа. Я понял о чем ты. Очень странно был сформулирован вопрос и я было подумал, что у тебя ловушка не отрабатывает вовсе.
А она не отрабатывает только для приложений запущенных "От имени администратора". Ну что ж, все верно, так и должно быть. Если хочешь чтобы работала для приложений запущенных и от имени администратора, то саму ловушку ты должен устанавливать от имени администратора. Нормальное поведение.
QAZ (2009-12-16 20:18:00) [9]проверено как в х32 так и в х64,обе чистые, тестовые
QAZ (2009-12-16 20:13:00) [10]ну не работает
запускаеш любую прогу от одмина
запускаеш хукер
когда активен хукер,жмем Win ,пуск не вылазит - чудо
когда активна одминпрога,жмем Win ,пуск вылазит - ватафака ?
DVM (2009-12-16 20:08:00) [11]
> у тибя уак вобще включен ?
конечно включен.
QAZ (2009-12-16 20:06:00) [12]бгг. не работает :)
у тибя уак вобще включен ?
DVM (2009-12-16 20:01:00) [13]
> и как он у тибя креатица\обрабатывается ?
что конкретно непонятно в коде?
QAZ (2009-12-16 20:00:00) [14]опередил :)
QAZ (2009-12-16 20:00:00) [15]и как он у тибя креатица\обрабатывается ?
DVM (2009-12-16 19:56:00) [16]Я уже этот код выкладывал, выложу еще раз. Под 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.
DVM (2009-12-16 19:51:00) [17]Если бы WH_KEYBOAD_LL у меня в Win7 не работал, я бы не писал, однако ж все работает. И админских прав не требует.
QAZ (2009-12-16 14:32:00) [18]также хотелось бы слышать версии
не людей у которых стоит ХР и они предпологают что...
а тех кто сидит на Висте\Семерке и у них это работает :)
QAZ (2009-12-16 14:25:00) [19]говорит "вот тибе хендл процедуры, иди с миром"
и собствено НЕ хукает только если активно окно проги под админом
Сергей М. (2009-12-16 13:50:00) [20]
> QAZ (16.12.09 13:13) [7]
И чего говорит результат вызова SetWindowsHookEx ?