elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Qué errores detectan en mi Contador de interacciones básicas entre usuario y máquina?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Qué errores detectan en mi Contador de interacciones básicas entre usuario y máquina?  (Leído 922 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.217


Superhacker (es broma xD )


Ver Perfil
¿Qué errores detectan en mi Contador de interacciones básicas entre usuario y máquina?
« en: 26 Marzo 2024, 10:57 am »



Exe:
https://drive.google.com/file/d/16SSq8cf_rpyB4nK065KobcPAWkJB9BCV/view?usp=drive_link

Swf:
https://drive.google.com/file/d/1Q1C64gjYrm9SB_ots_WIGtZIMzj0kjUc/view?usp=drive_link

Fla:
https://docs.google.com/document/d/1w1m0caySeAve2UrJSWLQYrqPbeb3dDlu/edit?usp=sharing&ouid=109273743447273895658&rtpof=true&sd=true

Código:
Código
  1.   actions for fotograma 1
  2.      Frames = 0;
  3.      // Casos:
  4.      Movimientos = 0;
  5.      Clics = 0;
  6.      Clacs = 0;
  7.      Frenadas = 0;
  8.      Desclics = 0;
  9.      Desclacs = 0;
  10.      FramesMoviendose = 0;
  11.      FramesCliqueando = 0;
  12.      FramesClaqueando = 0;
  13.      // 1er frame en que:
  14.      Movimiento1ero = "No hubo";
  15.      Clic1ero = "No hubo";
  16.      Clac1ero = "No hubo";
  17.      Frenada1era = "No hubo";
  18.      Desclic1ero = "No hubo";
  19.      Desclac1ero = "No hubo";
  20.      FramesMoviendose1ero = "No hubo";
  21.      FramesCliqueando1ero = "No hubo";
  22.      FramesClaqueando1ero = "No hubo";
  23.   actions for fotograma 2
  24.      stop ();
  25.   actions for Vacío
  26.      onClipEvent (load) {
  27.         Espera = 200;
  28.      }
  29.      onClipEvent (mouseMove) {
  30.         Espera = 100;
  31.      }
  32.      onClipEvent (keyDown) {
  33.         Espera = 100;
  34.      }
  35.      onClipEvent (enterFrame) {
  36.         if (Key.isDown(13)) {
  37.            Espera = 100;
  38.         } else {
  39.            Espera = Espera-1;
  40.            if (Espera == 0) {
  41.               _level0.play();
  42.            }
  43.         }
  44.      }
  45.   actions for fotograma 3
  46.      // Movimiento:
  47.      attachMovie("Captar1erMov", "M1", 1);
  48.      attachMovie("Captar1erFrenada", "M2", 2);
  49.      attachMovie("Captar1erFrameMov", "M3", 3);
  50.      // Clics:
  51.      attachMovie("Captar1erClic", "M4", 4);
  52.      attachMovie("Captar1erDesclic", "M5", 5);
  53.      attachMovie("Captar1erFrameClic", "M6", 6);
  54.      // Teclado:
  55.      attachMovie("Captar1erClac", "M7", 7);
  56.      attachMovie("Captar1erDesclac", "M8", 8);
  57.      attachMovie("Captar1erFrameClac", "M9", 9);
  58.      stop ();
  59.   actions for Vacío
  60.      onClipEvent (load) {
  61.         Moviendose = "No";
  62.         Cliqueando = "No";
  63.         TeclasPresionandose = 0;
  64.         ActualXMouse = _level0._xmouse;
  65.         ActualYMouse = _level0._ymouse;
  66.      }
  67.      onClipEvent (enterFrame) {
  68.         // Frames:
  69.         _level0.Frames = _level0.Frames+1;
  70.         // Movimiento:
  71.         // Si el mouse se movió:
  72.         if (ActualXMouse != _level0._xmouse or ActualYMouse != _level0._ymouse) {
  73.            _level0.FramesMoviendose = _level0.FramesMoviendose+1;
  74.            // Si el mouse estaba quieto:
  75.            if (Moviendose == "No") {
  76.               Moviendose = "Sí";
  77.               _level0.Movimientos = _level0.Movimientos+1;
  78.            }
  79.         } else if (Moviendose == "Sí") {
  80.            // No se movió pero estaba moviéndose:
  81.            Moviendose = "No";
  82.            _level0.Frenadas = _level0.Frenadas+1;
  83.         }
  84.         ActualXMouse = _level0._xmouse;
  85.         ActualYMouse = _level0._ymouse;
  86.         // FramesCliqueando:
  87.         if (Cliqueando == "Sí") {
  88.            _level0.FramesCliqueando = _level0.FramesCliqueando+1;
  89.         }
  90.         // FramesClaqueando:
  91.         if (TeclasPresionandose>0) {
  92.            _level0.FramesClaqueando = _level0.FramesClaqueando+TeclasPresionandose;
  93.         }
  94.      }
  95.      onClipEvent (mouseDown) {
  96.         Cliqueando = "Sí";
  97.         _level0.Clics = _level0.Clics+1;
  98.      }
  99.      onClipEvent (mouseUp) {
  100.         Cliqueando = "No";
  101.         _level0.Desclics = _level0.Desclics+1;
  102.      }
  103.      onClipEvent (keyDown) {
  104.         // Si la tecla presionándose no está indicada como tal:
  105.         if (eval("Tecla"+Key.getCode()+"Presionandose") == undefined) {
  106.            // Indicarla:
  107.            trace ("Se presionó la tecla: "+Key.getCode());
  108.            set ("Tecla"+Key.getCode()+"Presionandose", "S");
  109.            trace ("Tecla"+Key.getCode()+"Presionandose: "+eval("Tecla"+Key.getCode()+"Presionandose"));
  110.            _level0.Clacs = _level0.Clacs+1;
  111.            TeclasPresionandose = TeclasPresionandose+1;
  112.            // Esto es para saber cual eliminar cuando se deje de presionarse:
  113.            set ("TeclaPresionandoseNro"+TeclasPresionandose, Key.getCode());
  114.            trace ("TeclaPresionandoseNro"+TeclasPresionandose+": "+eval("TeclaPresionandoseNro"+TeclasPresionandose));
  115.         }
  116.      }
  117.      onClipEvent (keyUp) {
  118.         Puntero = 0;
  119.         do {
  120.            Puntero = Puntero+1;
  121.            if (Key.isDown(eval("TeclaPresionandoseNro"+Puntero))) {
  122.               trace ("La tecla "+eval("TeclaPresionandoseNro"+Puntero)+" aún está presionada.");
  123.            } else {
  124.               // La tecla guardada como presionándose nro (puntero),
  125.               // ya no está presionándose: Quitar la asignación:
  126.               // ¿Debo indicar que sólo si existe?
  127.               trace ("La tecla "+eval("TeclaPresionandoseNro"+Puntero)+" no está presionada.");
  128.               trace ("Se elimina.");
  129.               delete eval("Tecla"+eval("TeclaPresionandoseNro"+Puntero)+"Presionandose");
  130.               _level0.Desclacs = _level0.Desclacs+1;
  131.               // Eliminar tecla de la lista de presionándose:
  132.               delete eval("TeclaPresionandoseNro"+Puntero);
  133.               // Reordenar lista si es necesario:
  134.               Puntero2 = Puntero;
  135.               while (Puntero2<TeclasPresionandose) {
  136.                  set ("TeclaPresionandoseNro"+Puntero2, eval("TeclaPresionandoseNro"+(Puntero2+1)));
  137.                  Puntero2 = Puntero2+1;
  138.               }
  139.               // Borrar la última tecla de la lista (fue movida a antes):
  140.               delete eval("TeclaPresionandoseNro"+Puntero2);
  141.               TeclasPresionandose = TeclasPresionandose-1;
  142.            }
  143.         } while (Puntero<TeclasPresionandose);
  144.      }

Hay código en películas que no copié porque eso tarda, pero básicamente captan cuando ocurrió algo, lo ponen una variable que se manifiesta en el cuadro de texto correspondiente, y luego la película se autoelimina.

El programa consta básicamente de 2 estados.

1ero se asegura de que no se esté interactuando. Eso es para evitar errores relacionados con presionar Enter o alguna que otra tecla, porque sino puede que inicie con 1 desclac (despresión).

Luego lo que muestra la imagen arriba, nada más.

Veo que la tecla Impr Pant no se cuenta como Clac pero sí como Desclac, eso sería una falla, pero no sé si puedo corregirla. Puede haber otras teclas que también generen esas fallas.

Lo relativo a:
- 1er frame en que el mouse estuvo moviéndose.
- 1er frame en que se estuvo cliqueando.
- 1er frame en que se estuvo claqueando.
Es bastante confuso, debo pensarlo y ver qué hago. Por definición, pensé, sería (en el 3er caso) cuando uno presiona y no suelta una tecla, se comienza a contar desde el 1er frame en que no se soltó, por lo que ese 1er frame nunca sería igual al frame en que se presionó por 1era vez. Pero yo me preocupé por contar lo otro básico que ven y ya de por sí no fue fácil, al menos en mi versión de Flash ciertos eventos parece que sólo pueden captarse de una forma que es un poco independiente al paso de los frames... Por eso el 1er clic se capta distinto, aunque no sé detalladamente por qué. En fin, considerando la definición, si es correcta, no vale la pena contar eso porque siempre será +1 que lo otro relacionado.
Sin embargo, eso debería implicar que los frames cliqueando, por ejemplo, se empiecen a contar luego del frame en que se hizo clic ¿o no?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines