本文目录一览:
键盘被人监听
如果真是这样,那就是中了木马盗号病毒,没有什好的办法,如果使用卡巴斯基杀毒软件都无法查找到,那你真的只能重做系统,要不就是换个其他版本的QQ程序,这样也能减低风险,有些盗号木马是针对某个QQ版本来做的。
如何在android 中service后台监听按键,比如监听音量键
为了实现键盘的监控,从新开发一个输入法是不现实的,一般的操作就是在系统的输入法机制中添加接口回调。我们知道,再应用程序中拿到按键的回调一般是监听onKeyDown的接口,如下所示:publicbooleanonKeyDown(intkeyCode,KeyEventevent)开发者就可以根据回调方法中的参数,keyCode与KeyEvent来判断具体事件。但是,由于事件的回调机制在其的沙箱中运行,在其他应用中是无法拿到当前应用事件回调的。那么我们就从上到下,具体的看看事件的传递机制。如下图所示,用户点击后,软键盘或物理按键的输入驱动就会产生一个中断,且向/dev/input/event*中写入一个相应的信号量。Android操作系统则会循环的读取其中的事件,再分发给WindowManagerServer。由WindowManagerServer根据事件的来源分发到各个不同的ViewGroup与View中,从而产生不同的OnClick、OnKeyDown和OnTouch等事件。这个时候很自然的想到,黑客们希望做键盘监控,一定会向Linux底层增加自定义的事件。这里我们使用的是Linux中的getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息。包括触屏、按键、耳机插入等等。其基本用法如下:Usage:getevent[-t][-n][-sswitchmask][-S][-v[mask]][-d][-p][-i][-l][-q][-ccount][-r][device]-t:showtimestamps-n:don'tprintnewlines-s:printswitchstatesforgivenbits-S:printallswitchstates-v:verbositymask(errs=1,dev=2,name=4,info=8,vers=16,pos.events=32,props=64)-d:showHIDdescriptor,ifavailable-p:showpossibleevents(errs,dev,name,pos.events)-i:showalldeviceinfoandpossibleevents-l:labeleventtypesandnamesinplaintext-q:quiet(clearverbositymask)-c:printgivennumberofeventsthenexit-r:printrateeventsarereceived键入getevent后,我们能够看到设备中的一些列输入硬件驱动信息,同样下面会出现很多输入指令信号,通常情况下,这些信号量都在刷屏,如下图所示:这些信号量的表示我们无法直接看懂,输入getevent–l加入Label我们能够看到一些添加的标签,如下所示:其实这些Lable已经在其input.h头文件中定义好,其中type的定义如下:/**Eventtypes*/#defineEV_SYN0x00#defineEV_KEY0x01#defineEV_REL0x02#defineEV_ABS0x03#defineEV_MSC0x04#defineEV_SW0x05#defineEV_LED0x11#defineEV_SND0x12#defineEV_REP0x14#defineEV_FF0x15#defineEV_PWR0x16#defineEV_FF_STATUS0x17#defineEV_MAX0x1f#defineEV_CNT(EV_MAX+1)一般来说,常用的是EV_KEY、EV_REL、EV_ABS、EV_SYN,分别对应键盘按键、相对坐标、绝对坐标、同步事件。EV_SYN则表示一组完整事件已经完成,需要处理,EV_SYN的code定义事件分发的类型。
android怎么实现后台对按键事件的监控
遥控器按键事件这个不是在Android源码的bootable下面ircon.c配置的么。比如:
{ .scancode = 0x0b, .mask = 0xaa0087ee,
.keycode = KEY_UP, .spec = IRCON_KEYCODE_NORMAL | IRCON_KEYCODE_LONGPRESS | IRCON_KEYCODE_MOUSEMD },
遥控器按键编号是“ 0x0b”,给他的响应是“KEY_UP”,就是方向键的下,这个是在源码里边配置的。你必须要有遥控器的书名数,知道遥控器每个按键的编号,然后对应给他相应的响应才可以。
但是你要操控手机,你的手机必须要能接受遥控器信号,这个也是要硬件支持的,一般的手机貌似都没有这个。
这个遥控的响应操作是驱动层做的,和应用层没什么关系,主要是驱动和硬件的支持。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2017年3月,Android全球网络流量和设备超越Microsoft Windows,正式成为全球第一大操作系统。2017年8月,Android O发布。
用java写个键盘监听器,应该把监听器加到哪里?
**********补充一下啊××××××××
如果你是想真正实现键盘记录功能,那只能用消息钩子实现,具体怎么搞你搜索一下API HOOK,原理我在下面都说过了。早期的黑客软件都是这样实现的。你可以到安全焦点上看看。主要的技术有:远程线程注入、钩子、键盘消息。
另外,java的进程到底能不能注入很难说,所以我说应该用全局钩子,也就是说对所有的信息进行拦截,所以需要把函数写道DLL文件里实现内存的共享。
另外其实可以投机取巧的方法实现。比如就是空间隐藏,完全可以实现,但是要注意技巧,比如防止焦点丢失啊,因为这样键盘输入的东西就记不下来了~~~
怎么样~这样可以给分了吗?有问题再问啊~~
键盘记录器,估计java是不可能实现的。。。
涉及到windows编程。。
可以用c实现。。。原理是这样的。。
键盘被按下之后,会向窗口发送一个按键消息,这个消息传递给窗口,在窗口的消息循环中被处理,这个时候,如果用c语言写了一个钩子,加入窗口所在进程中,拦截传入的消息,从中读出按下的键是哪个就可以了。。。
java貌似不可能实现那个东西,如果有的话也肯定是钩子之类的~~~
反正进程钩子是有的,消息钩子不知道有没有。。
用c实现的步骤:
写个DLL文件,把钩子处理函数写在里面,然后导出这个函数。编译成DLL文件
然后注入进程。如果你是要在java的程序里记录,那是不可能设置为局部钩子的,只能是全局钩子!!!
java调用c是这样的:
使用jni技术:
首先java中写一个本地方法
1、然后编译这个类,然后用javah编译它,会产生一个头文件
2、在vc中包含这个头文件,重写里面的方法(这个方法和你在java中写的本地方法是对应的),同样生成一个DLL
3、java中,用System.loadLibrary加载这个dll文件,调用你写的那个方法就可以了~~~
4、键盘记录好像不能直接被java读取,可以先记录到一个文件中,java里面直接读文件了,这样还能避免用jni
你搜索一下呗~~关键字:
api hook、jni、java 钩子