linux 键盘监听,linux端口监听

老铁们,大家好,相信还有很多朋友对于linux 键盘监听和linux端口监听的相关问题不太懂,没关系,今天就由我来为大家分享分享linux 键盘监听以及linux端口监听的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

如何查看linux服务器的配置

Linux大部分操作是通过命令实现的,并不像windows那么直观。linux查看硬件信息也是需要通过linux查看硬件信息命令查询的

系统

# uname-a#查看内核/操作系统/CPU信息

# head-n 1/etc/issue#查看操作系统版本

# cat/proc/cpuinfo#查看CPU信息

# hostname#查看计算机名

# lspci-tv#列出所有PCI设备

# lsusb-tv#列出所有USB设备

# lsmod#列出加载的内核模块

# env#查看环境变量

资源

# free-m#查看内存使用量和交换区使用量

# df-h#查看各分区使用情况

# du-sh<目录名>#查看指定目录的大小

# grep MemTotal/proc/meminfo#查看内存总量

# grep MemFree/proc/meminfo#查看空闲内存量

# uptime#查看系统运行时间、用户数、负载

# cat/proc/loadavg#查看系统负载

磁盘和分区

# mount| column-t#查看挂接的分区状态

# fdisk-l#查看所有分区

# swapon-s#查看所有交换分区

# hdparm-i/dev/hda#查看磁盘参数(仅适用于IDE设备)

# dmesg| grep IDE#查看启动时IDE设备检测状况

网络

# ifconfig#查看所有网络接口的属性

# iptables-L#查看防火墙设置

# route-n#查看路由表

# netstat-lntp#查看所有监听端口

# netstat-antp#查看所有已经建立的连接

# netstat-s#查看网络统计信息

进程

# ps-ef#查看所有进程

# top#实时显示进程状态

用户

# w#查看活动用户

# id<用户名>#查看指定用户信息

# last#查看用户登录日志

# cut-d:-f1/etc/passwd#查看系统所有用户

# cut-d:-f1/etc/group#查看系统所有组

# crontab-l#查看当前用户的计划任务

服务

# chkconfig--list#列出所有系统服务

# chkconfig--list| grep on#列出所有启动的系统服务

程序

# rpm-qa#查看所有安装的包

其他常用命令整理如下:

查看主板的:dmidecode| grep-i'serial number'

用硬件检测程序kuduz探测新硬件:service kudzu start( or restart)

查看CPU信息:cat/proc/cpuinfo [dmesg| grep-i'cpu'][dmidecode-t processor]

查看内存信息:cat/proc/meminfo [free-m][vmstat]

查看板卡信息:cat/proc/pci

查看显卡/声卡信息:lspci|grep-i'VGA'[dmesg| grep-i'VGA']

查看网卡信息:dmesg| grep-i'eth'[cat/etc/sysconfig/hwconf| grep-i eth][lspci| grep-i'eth']

查看PCI信息:lspci(相比cat/proc/pci更直观)

查看USB设备:cat/proc/bus/usb/devices

查看键盘和鼠标:cat/proc/bus/input/devices

查看系统硬盘信息和使用情况:fdisk disk– l df

查看各设备的中断请求(IRQ):cat/proc/interrupts

查看系统体系结构:uname-a

查看及启动系统的32位或64位内核模式:isalist–v [isainfo–v][isainfo–b]

查看硬件信息,包括bios、cpu、内存等信息:dmidecode

测定当前的显示器刷新频率:/usr/sbin/ffbconfig–rev?

查看系统配置:/usr/platform/sun4u/sbin/prtdiag–v

查看当前系统中已经应用的补丁:showrev–p

显示当前的运行级别:who–rH

查看当前的bind版本信息:nslookup–class=chaos–q=txt version.bind

查看硬件信息:dmesg| more

显示外设信息,如usb,网卡等信息:lspci

查看已加载的驱动:

lsnod

lshw

查看当前处理器的类型和速度(主频):psrinfo-v

打印当前的OBP版本号:prtconf-v

查看硬盘物理信息(vendor, RPM, Capacity):iostat–E

查看磁盘的几何参数和分区信息:prtvtoc/dev/rdsk/c0t0d0s

显示已经使用和未使用的i-node数目:

df–F ufs–o i

isalist–v

对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:

主机CPU信息:Cpuinfo

主机DMA通道信息:Dma

文件系统信息:Filesystems

主机中断信息:Interrupts

主机I/O端口号信息:Ioprots

主机内存信息:Meninfo

Linux内存版本信息:Version

备注: proc– process information pseudo-filesystem进程信息伪装文件系统

Android怎样监听蓝牙耳机的按键事件

其实对于Android系统,每次按键只会有一个唯一「键值」响应,使用起来感觉会模模糊糊的,但是其实对于系统来说是很清晰的。

AVRCP全称(Audio/VideoRemoteControlProfile),是蓝牙协议中的一个profile。从名字上就可以看出主要应用于Audio/Video控制。每个按键并不是独立的,上-曲/下一曲是在正在播放音乐的时候才会有效,即才会向Android发送「键值」。

基于按键从Linux到Android分析具体对于的键值:

Linux扫描码功能映射字串Android键值

00c8200开始放音乐MEDIA_PLAYKEYCODE_MEDIA_PLAY

00c9201停止放音乐MEDIA_PAUSEKEYCODE_MEDIA_PAUSE

00a3163下一曲MEDIA_NEXTKEYCODE_MEDIA_NEXT

00a5165上-曲MEDIA_PREVIOUSKEYCODE_MEDIA_PREVIOUS

Android应用代码,完整测试应用:TeskKey。

总结:1号键会交替发送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE;2/3号键会在播放音乐时分别发送KEYCODE_MEDIA_PREVIOUS/.KEYCODE_MEDIA_NEXT。如果想要把蓝牙耳机上的按键利用起来,可以在接收到KEYCODE_MEDIA_PLAY时播放无声音乐以使能2/3号键。这样就能完整接收3种键值了自行控制了。这个具体自行设计(测试代码已经更新包含了)。

注:这种实现并不一定通用,比如我在深度定制的MIUI中测试,尽管启动的TestKey应用,系统自带的音乐播放器仍然能同时响应键值。

更新:

已经更新TestKey源码,添加对蓝牙耳机按键的监听,实现方法就是上述中推测的方法,已经成功验证过了。播放音乐参考《Android多媒体开发--资源文件播放》。效果图:

需要说明一点的是,程序带了两个音乐文件在/res/raw中,默认播放的是lapple.mp3一个有声音的mp3音乐文件,silence10sec.mp3是一个无声音的10秒钟音乐文件,实际应用中可以使用它。

问与答

1.这个只能在播放音乐的状态下才能监听到么?

答:根据上述的原理,这些按键也仅仅是应用在控制媒体时使用;且根据实际验证没有播放音乐时蓝牙耳机的2/3号键是并没有向Android设备发送键值(从底层Linux来看)。综上所述,需要通过播放音乐来实现激活其向Android设备发送键值,针对这种情况可以播放一个「没有声音」的音乐文件来实现,这样既可以监听到2/3号键又可以不影响其它声音的输出。可以在前台时播放音乐,后台停止播放。

2.我现在主要是想监听得到开关键(1号键)。在做一个按下蓝牙开关键后启动一个语音识别的功能?

答:在我的测试条件下,1号键是可以正常监听到的。1号键会交替发送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE键值。这个键不需要模拟播放音乐就可以正常的监听到。

3.4号按键的监听方法

答:所谓的4号按键,也就是指本文中的所测试型号的蓝牙耳机上并没有,但有可能其它型号的蓝牙耳机上有。我没有办法测试验证,所以这里就简单叙述一下「新按键」的键值确定思路:1.先使用TestKey测试应用测试按键,测试Android上层是否可以得到对应键值。2.如果没有得到,那么就使用adbshellgetevent来看Linux底层可以不可以得到键值。然后根据按键从Linux到Android来确定Android上层使用的键值码到底是多少。(当然,如果你实在不知道如何监听,把蓝牙耳机寄给我,我给你确定也行。:))

注:其实上述文章完全是根据按键从Linux到Android测试确定下来的。那是篇文章是剥开Android外壳来看「按键」事件的流程的,方法适用于所有输入事件:各种按键/触摸/物理键盘/鼠标等待输入设备。没有一定的Linux开发经验很难看懂和理解。

4.Android后台监听按键怎么实现

或:如何启动一次应用后在后台一直监听播放键因为有这样一个场景在用户开车的时候需按一下开关键就启动语音识别的功能。

这个问题其实已经超出了本文讨论的范围,是Android系统对应用层的键盘事件(按键)的分发的问题了。正常情况下,按键只会向当前最端的应用分发键盘事件,也就是说在后台你边音量键都监听不了。

但是既然这种情况(后台应用监听按键)的需求存在,那么就一定有它存在的道理。比如「相机键」,按下后直接调出相机到最前台。从表面上看是相机响应了按键,但是从实现方法上来看,并不是通过键值来操作,必须通过其它方法,比如广播或者其它等等。

明白了其中的道理后,那么想要实现就好办了。先看这个按键有没有广播,如要有接听系统中发出来的广播;如果没有那么对于定制系统可以自己在系统中添加一个广播;总之,正常渠道是没有办法在后台监听一些不应该是你监听到的按键的。

更:查了一下,这个按键是有广播的。这样就可以后台响应了(不需要C/不需要root)。例子我就不试了,见Android官方例子RandomMusicPlayer。

其中的重点是这个广播android.intent.action.MEDIA_BUTTON。

如何利用可信计算对linux系统进行安全加固

linux系统安全加固是根据系统和应用特点,用一系列规范或原则来进行安全配置,理论上和可信计算扯不上,如果一定要扯上,可用于批量在线系统的后期安全维护。

可信计算包括5个关键技术概念,他们是完整可信系统所必须的,这个系统将遵从TCG(Trusted Computing Group)规范

Endorsement key签注密钥

签注密钥是一个2048位的RSA公共和私有密钥对,它在芯片出厂时随机生成并且不能改变。这个私有密钥永远在芯片里,而公共密钥用来认证及加密发送到该芯片的敏感数据

Secure input and output安全输入输出

安全输入输出是指电脑用户和他们认为与之交互的软件间受保护的路径。当前,电脑系统上恶意软件有许多方式来拦截用户和软件进程间传送的数据。例如键盘监听和截屏。

Memory curtaining储存器屏蔽

储存器屏蔽拓展了一般的储存保护技术,提供了完全独立的储存区域。例如,包含密钥的位置。即使操作系统自身也没有被屏蔽储存的完全访问权限,所以入侵者即便控制了操作系统信息也是安全的。

Sealed storage密封储存

密封存储通过把私有信息和使用的软硬件平台配置信息捆绑在一起来保护私有信息。意味着该数据只能在相同的软硬件组合环境下读取。例如,某个用户在他们的电脑上保存一首歌曲,而他们的电脑没有播放这首歌的许可证,他们就不能播放这首歌。

Remote attestation远程认证

远程认证准许用户电脑上的改变被授权方感知。例如,软件公司可以避免用户干扰他们的软件以规避技术保护措施。它通过让硬件生成当前软件的证明书。随后电脑将这个证明书传送给远程被授权方来显示该软件公司的软件尚未被干扰(尝试破解)

阅读剩余
THE END