2、键盘监听程序是在使用键盘的人不知情的情况下,通过隐蔽的方式记录下键盘的每一次敲击的行为。进行键盘监听可通过各种软硬件手段实现。目前最常见的方法为在客户电脑上植入木马程序后通过其实现键盘监听。
3、对策:可以利用第三方软件防止键盘窃听,如:KeyScrambler或者一些安全软件的软键盘。
KeyScrambler是一个键盘安全软件,它实现了“键盘输入加密干扰”,做到了防键盘监听软件/防键盘窃听软件。。。确保您用键盘输入的内容不被木马病毒所记录。
KeyScrambler键盘安全软件通过在键盘驱动级别,深入作业系统加密你的按键的方式使键盘记录器失效。当加密的按键指令发送到你的浏览器,KeyScrambler 对其进行解析,因此你可以正确地看到你所输入的资讯。
KeyScrambler键盘记录器只能够记录下完全不可理解的加密键。与依靠清除它们所知道的键盘记录器的反病毒软体和反间谍软体不同,KeyScrambler 将保护你不被未知的键盘记录器所攻击。
参考:
《 macOS AppKit 的事件响应简介 》
《 Mac OSX 鼠标键盘事件的监听和模拟 》
在 macOS 系统中 鼠标 、 键盘 和 触摸板 的活动事件都会产生底层的系统事件,首先传递到 IOKit 框架 处理后存储到队列中,通知 Window Server 服务层 处理。Window Server 存储到 FIFO 优先队列 中,然后逐一转发到 当前活动窗口 或者能响应这个事件的 应用程序 去处理。
在 macOS 或者 iOS 程序中,都会有一个 Main Run Loop 的线程, RunLoop 循环 中会遍历 event 消息队列 ,逐一分发这些事件到应用中合适的对象去处理。具体来说就是调用 NSApp 的 sendEvent: 方法发送消息到 NSWindow , NSWindow 再分发到 NSView 视图 对象,由其鼠标或键盘事件响应方法去处理。
响应者链是 Application Kit 事件处理架构的中心机制,由一系列链接在一起的响应者对象组成,事件或者动作消息可以沿着这些对象进行 传递 。消息沿着响应者链向上、向更高级别的对象传递,直到 最终被处理 (如果 最终 还是 没有被处理,就会被抛弃 )。
事件响应者 Responders 类 为核心应用程序架构的三个主要模式或机制定义了一个接口:
从层级上看离观察者最近的视图优先响应事件,通过 view 的 hitTest 方法检测,满足 hitTest 方法的的子视图优先响应事件。
NSApplication , NSWindow , NSDrawer , NSWindowController , NSView 以及 继承于 NSView 的所有控件对象都直接或间接继承了 Responders 类 ,所以这些类都能处理鼠标和键盘事件。
NSResponder : https://developer.apple.com/documentation/appkit/nsresponder
NSEvent : https://developer.apple.com/documentation/appkit/nsevent
NSEventType : https://developer.apple.com/documentation/appkit/nseventtype
NSEventModifierFlags : https://developer.apple.com/documentation/appkit/nseventmodifierflags/
《 Mac OSX 鼠标键盘事件的监听和模拟 》中提到:鼠标/键盘事件的监听有多种方法,第一种方法是重写事件响应者 Responders 对应的方法来获取对应的事件;第二是通过重写 NSWindow 的 sendEvent: 方法; 第三是通过的 NSEvent 提供静态方法来监听对应的事件~
没有逐一去试验,如下 键盘事件 / 鼠标事件 只是各用一种方式实现了相应 监听 !
鼠标的事件类型:
1.左/右键的按下与抬起事件
2.左键的双击(或者多击事件)—— clickCount 属性
3.鼠标移动事件
4.左键或者右键的拖拽事件
5.鼠标的滚动事件
使用如下 重写 Responders 的 方法 来 监听 鼠标事件:
使用例子
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)