Usando Applescript para engañar al registrador de teclas con pulsaciones de teclas

1

No sé mucho acerca de cómo procesa Mac las pulsaciones de teclado, pero si escribiera un AppleScript simple que abriera un documento de TextEdit y comenzara a escribir un gran bloque de texto, ¿esto enmascararía efectivamente mi escritura si se ejecutara en segundo plano?

¿O Mac procesa primero la entrada de pulsaciones de AppleScript y luego lo que esté escribiendo en segundo lugar?

    
pregunta Kevin Crompwell 20.01.2015 - 06:38

3 respuestas

0

Usando una aplicación de prueba KeyDownEvent.

Las pulsaciones de tecla se registran desde un evento de pulsación de tecla de Applecript.

Pero no creo que puedas usar esto como una máscara.

Las pulsaciones de Applescript siempre insertarán los caracteres en la aplicación activa. Por lo tanto, escriba en el área que intenta escribir manualmente.

Entonces, si tuvieras un bloque de texto como:

  

"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "

en una pulsación de manzana y lo ejecutó después de un retraso de 2 segundos

Y luego intenté escribir "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

Obtendrías: "bbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

Esto también se registra así en el registrador. Así que como puedes ver realmente no esconde mucho.

Las pulsaciones de teclado en Applescript son rápidas y se envían en un bloque.

Otra cosa a tener en cuenta es que a mi aplicación de prueba se le debió dar permiso para controlar mi computadora antes de que fuera Apple para registrar eventos.

ACTUALIZAR*

Puede hacer lo que @Tetsujin sugirió y esperar hasta que Applescript empiece a escribir en la primera aplicación y luego cambie a otra aplicación de tipo manual.

Necesitarías usar dos bloques de información en Applescript.

 tell application "System Events"
        delay 5
     tell application process "TextEdit" -- the app typing target
            keystroke "aaaa...."
     end tell
    end tell

Pero como dije, las pulsaciones de teclado se envían en lo que en efecto es un bloque.

Por lo tanto, independientemente de dónde se escriba, el registrador lo recogerá como se muestra arriba.

respondido por el markhunte 20.01.2015 - 13:42
1

Bueno, podría funcionar, pero no importa si haría lo que quieres lograr.

Este script

tell application "TextEdit"
    activate
    make new document
    delay 1
    repeat 100 times
        tell application "System Events"
            keystroke "the quick brown fox jumps over the lazy dog"
            keystroke return
        end tell
    end repeat
end tell

comenzará a escribir en el documento que esté más adelantado cuando comience después del tiempo de retraso de 1s para que TextEdit llegue al frente.
Una vez que esté escribiendo, puede cambiar a otra aplicación & continúa con lo que estabas haciendo, pero no puedes usar TextEdit ya que no permitirá que ningún otro documento salga al frente hasta que esté terminado.

Si cambias a otra aplicación antes de que comience a escribir, en su lugar se escribirá.

Si eso engañaría a un registrador de claves, no tengo ni idea, pero eso plantea la pregunta ...
¿Qué te hace pensar que tienes un registrador de teclas & ¿Por qué no deshacerse de él en su lugar?

Si se trata de un tipo de chequeo "corporativo" de los empleados, considere cuánto tiempo puede tomar antes de que lo noten & me pregunté por qué sintió que era necesario tratar de pasar por alto, algo que presuntamente está cubierto en un contrato de trabajo.

    
respondido por el Tetsujin 20.01.2015 - 09:05
0

Así que he aprendido que:

- Apple procesa pulsaciones de teclas en bloques

- Estas pulsaciones son específicas de la aplicación

La siguiente secuencia de comandos fue mi intento de hacerlo (he acortado la "pulsación de tecla" a tres líneas para ser concisos, si alguien quiere ver el código completo y sin editar, avíseme):

tell application "TextEdit"
activate
make new document
delay 0.1

repeat 2 times
    tell application "System Events" to keystroke "
(((((((((((((((((((((((((((((((((((((((((((((((((((ˇ¬ˇƒˇƒˇ⁄≤Ä9_X 
퀩‹∑A'ñ˜rZ∏(–9flo-ˇ˙ Êªhô˘Ûfi—>ngsú∏∂}πõ§œø g8µ(lì°}‡∫êä…>≠Çä⁄ÀÍÉ{µ»éÀX[ö
˛Ä¢˙Gö˙<É@g0í5—<Ì”§KùëLøYbb÷¶<√zEeö§Ô ¶‡6†≥ߢª¨zK‰Á+Ü[˙4[—ŒΩÚsu≈0˝9…"

end repeat

end tell
    
respondido por el Kevin Crompwell 20.01.2015 - 14:26

Lea otras preguntas en las etiquetas