Registrador de clave de Android
Intro: Quiero crear un POC en Android Security que requiere identificar si hay algún KeyLogger ejecutándose en un dispositivo Android o no. Y si se está ejecutando o instalado en el dispositivo, deshabilítelo a través de mi aplicación de Android.
Consultas:
- Quiero publicar actualizaciones de ubicación cada 15 minutos al servidor incluso cuando la aplicación no se está ejecutando en primer plano
- OnBind / onRebind no se llama en Service
- Una forma correcta de depurar un servicio en Android Studio?
- Antecedentes Proceso para escanear la ubicación del usuario a intervalos regulares y actualizar la base de datos local incluso cuando la aplicación no está abierta
- Cómo comunicarse entre un receptor de difusión de Android y un RemoteService
1.) ¿Es posible crear keyloggers Android que intercepte eventos de teclado y se ejecuten en segundo plano como servicios?
2.) ¿Es posible identificar si alguno de los procesos de fondo procesa eventos de teclado?
3.) ¿Puedo detener cualquier otro servicio de fondo (que no pertenezca a mi) por mi código de aplicación?
Por favor, ayúdame con los enlaces adecuados si usted tiene.
- ¿Cómo actualizar SeekBar de MediaPlayer en funcionamiento?
- ¿Ya está funcionando el servicio Android?
- Cómo desvincular correctamente los servicios
- Cómo obtener datos de un servicio sin consolidar en Android
- Android Silent Push
- Cómo recoger una llamada por adb
- Android Asynctask vs Runnable vs timertask vs Servicio
- Android: habilitar y servicios
Sé que esta pregunta ya tiene una respuesta aceptada pero no estoy de acuerdo con la respuesta aceptada!
Esto se puede hacer en android a través de las API de accesibilidad.
Echa un vistazo al siguiente programa:
Tipo de máquina
Utiliza las API de accesibilidad y almacena correctamente cada trazo de tecla que escriba en cualquier aplicación que es esencialmente lo que hace un registrador de claves!
EDIT: No estoy exactamente seguro de lo que TypeMachine utiliza, pero debería ser capaz de obtener el texto del servicio de accesibilidad utilizando este método . Por ejemplo, se puede utilizar el siguiente código para obtener un nuevo texto:
void onViewTextChanged(AccessibilityEvent accessibilityEvent, AccessibilityNodeInfo accessibilityNodeInfo) { List text = accessibilityEvent.getText(); CharSequence latestText = (CharSequence) text.get(0); Log.i(MY_TAG, latestText.toString()); }
Después de la investigación por 1 día entero alcanzé por debajo de la conclusión.
Android no le permite interceptar entradas predeterminadas de teclado suave desde servicios de fondo. La única manera de interceptar estos eventos son teclados personalizados.
Lo he resumido de la siguiente manera:
En el registro de claves de Android para eventos de teclado no se admite en servicios de fondo. Algunos de los enlaces son los siguientes:
Punto 1: Desarrollador de Android de Google
Como los métodos de entrada suave pueden utilizar formas múltiples e inventivas de introducir texto, no hay garantía de que ninguna pulsación de teclas en un teclado virtual genere un evento clave: esto queda a discreción del IME y, de hecho, se desaconseja el envío de dichos eventos. Nunca debe confiar en recibir KeyEvents para ninguna tecla en un método de entrada suave. En particular, el teclado de software predeterminado nunca enviará ningún evento clave a ninguna aplicación que apunte a Jelly Bean o posterior y sólo enviará eventos para algunas presiones de las teclas de borrado y devolución a las aplicaciones que apuntan a Ice Cream Sandwich o anteriores.
http://developer.android.com/reference/android/view/KeyEvent.html
Android Jelly Bean es: 4.1 a 4.3.1 Android IceCream Sandwich: 4.0
Las pulsaciones de teclas en los métodos de entrada suave no son necesarias para activar los métodos en este oyente, y de hecho se desaconsejan hacerlo. El teclado de Android por defecto no activará ninguna tecla para ninguna aplicación que apunte a Jelly Bean o posterior, y sólo la entregará para algunas pulsaciones de teclas a aplicaciones que apunten a Ice Cream Sandwich o anteriores.
http://developer.android.com/reference/android/text/method/KeyListener.html
Punto 2: Desbordamiento de pila KeyEvents sólo puede ser manejado por Actividades, ya que son la interfaz para el usuario presionando las teclas y sólo cuando están en primer plano. Incluso los servicios que se ejecutan en segundo plano no tienen la intención de reaccionar en la entrada del usuario.
Android: escucha de las teclas duras en el fondo
¿Es posible crear un servicio Android que escuche las pulsaciones de teclas de hardware?
Punto 3: Romain Guy Guy Romain ( https://stackoverflow.com/users/298575/romain-guy ) que trabaja para Google también lo confirma onKeyDown en un servicio? (Teclas directas globales)
Punto 4 : Algunos Otra referencia:
Google android-developers Grupo: https://groups.google.com/forum/#!topic/android-developers/o–GUWmqXdI
Se puede hacer sólo usando Custom KeyBoard: presionar la tecla y lanzar otra clave en android
Por favor, agrega tus comentarios si crees que he perdido algo.
- Custom Android build.xml para renombrar paquete de manifiesto
- ¿Por qué no se actualizan mis archivos de activos?