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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  Windows (Moderador: Randomize)
| | |-+  Simular Raton Hardware
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Simular Raton Hardware  (Leído 8,007 veces)
gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Simular Raton Hardware
« en: 7 Julio 2012, 15:47 pm »

Buenas, necesito inyectar clics del ratón en una aplicación. Pero esta aplicación esta especialmente diseñada para que no se pueda inyectar clics del ratón ni teclas.

He probado muchos métodos en diferentes lenguajes y no he conseguido nada:

-http://msdn.microsoft.com/en-us/library/ms171548.aspx

-He probado la libreria InputSimulator.dll

-He probado la funcion MouseClick() de Autoit

-He descargado programas que hacen clics como http://auto-mouse-click.softonic.com/ pero no funcionan en dicha aplicación

-He mirado algo de hooks pero por lo visto solo mueven el raton, no hacen click.

-Ya se que si pulsamos shift + f10 simula el botón derecho del ratón, pero no me vale porque no lo hace sobre el puntero del raton si sobre el target actual, ademas necesito el izquierdo.


Lo único que he conseguido hasta ahora es simular el movimiento del ratón dentro de dicha aplicación, es decir de las cordenadas (X,Y) a otras (X+10,Y+20) por poner un ejemplo.

Curiosamente, de la única manera que conseguí algo fue con el teclado virtual que trae windows, es decir, si escribo en el, ese texto va a la aplicación, como si fuera un teclado de verdad, pero yo lo que necesito simular un ratón.


He tenido una idea que igual podría funcionar pero no he podido probar por un problema, e igual es mejor que si alguien sabe fijo que no funcionara que me lo diga y así no gasto mas tiempo resolviendo ese problema. La idea es instalar la aplicación en una maquina virtual VirtualBox por ejemplo, y en vez de inyectar directamente los clicks a la aplicación, inyectárselos desde afuera de la maquina, asi igual la maquina virtual se los pasa a la aplicación como clicks de hardware?



Toda la ayuda que me podáis aportar sera agradecida.


En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: Simular Raton Hardware
« Respuesta #1 en: 7 Julio 2012, 16:13 pm »

Buenas.

En la sección de Scripting tienes ejemplos de lo que quieres hacer, mediante el uso de nircmd. Usa el buscador, es posible que te sirvan de ayuda.

Saludos.


En línea

- Nice to see you again -
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Simular Raton Hardware
« Respuesta #2 en: 7 Julio 2012, 16:33 pm »

Toda la ayuda que me podáis aportar


1º- NirCMD
> http://foro.elhacker.net/scripting/duda_sobre_wpe_pro_o_cheat_engine-t366010.0.html;msg1762609#msg1762609

Cita de: @ AYUDA
Código
  1. nircmd.exe movecursor X Y
  2. nircmd.exe Setcursor X Y
  3. nircmd.exe sendmouse [right | left | middle] [down | up | click | dblclick]
  4. nircmd.exe sendmouse [move] [x] [y]
  5. nircmd.exe sendmouse [wheel] [Wheel Value]
  6.  

2º - Mouse.exe
> http://exoshare.com/download.php?uid=ERPOMBCB

Cita de: @ AYUDA
Código
  1. mouse.exe leftclick
  2. mouse.exe rightclick
  3. mouse.exe leftdoubleclick
  4. mouse.exe rightdoubleclick
« Última modificación: 7 Julio 2012, 16:38 pm por EleKtro H@cker » En línea



gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Simular Raton Hardware
« Respuesta #3 en: 7 Julio 2012, 17:06 pm »

Esas funciones de tan alto nivel no valen, lo que hacen es pesarle un mensaje a la aplicación que este en el puntero y le envían un clic virtual. De todas formas por si acaso lo he probado: nircmd.exe sendmouse left click, y no funciona.

Cuando quiero decir que no funciona es que si le pongo el puntero por ejemplo en inicio de windows si que me abre en menú de windows y en cualquier otra aplicación como google eart por ejemplo, me permite navegar por ella, abriendo los menus..., pero en la aplicación que quiero inyectar ni se inmuta.


También he probado mouse.exe con los mismos resultados.


Gracias de todas formas.
« Última modificación: 7 Julio 2012, 17:14 pm por gxg » En línea

Vicentnala

Desconectado Desconectado

Mensajes: 250


Ni soy brujo, ni conozco todas las yerbas...


Ver Perfil WWW
Re: Simular Raton Hardware
« Respuesta #4 en: 7 Julio 2012, 18:24 pm »

Supongo que esa es una aplicación "inrratonable"... y ya que se trata de ratones... sabrá alguien si el SO Android 3.5 para PC se puede usar con el raton???... porque la monte en una maquina Virtual y nada... solo se puede navegar en el por las teclas cursoras... (ya se que este es otro tema... luego haré la pregunta en un post propio)
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Simular Raton Hardware
« Respuesta #5 en: 7 Julio 2012, 19:07 pm »

A mi lo que me parecería interesante es saber en que lenguaje está hecho el programa, Y como han conseguido restringir tán genialmente el uso del "click".
¿Alguien puede aportar información para comprenderlo?

A ver si has probado con esto:

Un javascript, Función mousedown:
(Width y height parece ser donde van las coordenadas) (Creo que faltaría el "obj")
Código
  1. Sys.Desktop.MouseDown(VK_LBUTTON, obj.ScreenLeft + obj.Width/2, obj.ScreenTop + obj.Height/2);
http://stackoverflow.com/questions/10444234/cant-simulate-action-properly-sendmessage-in-c-sharp-spy



Librería user32.dll de windows, función sendinput (Sirve tanto para mandar clicks como pulsaciones del teclado)

C# :
Cita de: C#
To simulate mouse or keyboard input properly, you need to use the SendInput function. The P/Invoke declaration to call it from C# looks like this:
Código
  1. [DllImport("user32.dll", SetLastError = true)]
  2. static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);

C++ : http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310.aspx

Si quieres ponerte a hacer un miniprograma con esos datos... :-/



Un code en Perl:

Código
  1.  
  2. #!/usr/bin/perl
  3.  
  4. use strict;
  5. use warnings;
  6.  
  7. use Win32::GuiTest qw( MouseMoveAbsPix SendMouse );
  8.  
  9. MouseMoveAbsPix(640,400);
  10. SendMouse "{LEFTCLICK}";
  11.  
  12. __END__



Un code en python (Probado, funciona)

(Para usarlo necesitas pywin para python): http://sourceforge.net/projects/pywin32/files/pywin32/Build216/

Código
  1. import win32gui, win32api, win32con, ctypes
  2.  
  3. class Mouse:
  4.    """It simulates the mouse"""
  5.    MOUSEEVENTF_MOVE = 0x0001 # mouse move
  6.    MOUSEEVENTF_LEFTDOWN = 0x0002 # left button down
  7.    MOUSEEVENTF_LEFTUP = 0x0004 # left button up
  8.    MOUSEEVENTF_RIGHTDOWN = 0x0008 # right button down
  9.    MOUSEEVENTF_RIGHTUP = 0x0010 # right button up
  10.    MOUSEEVENTF_MIDDLEDOWN = 0x0020 # middle button down
  11.    MOUSEEVENTF_MIDDLEUP = 0x0040 # middle button up
  12.    MOUSEEVENTF_WHEEL = 0x0800 # wheel button rolled
  13.    MOUSEEVENTF_ABSOLUTE = 0x8000 # absolute move
  14.    SM_CXSCREEN = 0
  15.    SM_CYSCREEN = 1
  16.  
  17.    def _do_event(self, flags, x_pos, y_pos, data, extra_info):
  18.        """generate a mouse event"""
  19.        x_calc = 65536L * x_pos / ctypes.windll.user32.GetSystemMetrics(self.SM_CXSCREEN) + 1
  20.        y_calc = 65536L * y_pos / ctypes.windll.user32.GetSystemMetrics(self.SM_CYSCREEN) + 1
  21.        return ctypes.windll.user32.mouse_event(flags, x_calc, y_calc, data, extra_info)
  22.  
  23.    def _get_button_value(self, button_name, button_up=False):
  24.        """convert the name of the button into the corresponding value"""
  25.        buttons = 0
  26.        if button_name.find("right") >= 0:
  27.            buttons = self.MOUSEEVENTF_RIGHTDOWN
  28.        if button_name.find("left") >= 0:
  29.            buttons = buttons + self.MOUSEEVENTF_LEFTDOWN
  30.        if button_name.find("middle") >= 0:
  31.            buttons = buttons + self.MOUSEEVENTF_MIDDLEDOWN
  32.        if button_up:
  33.            buttons = buttons << 1
  34.        return buttons
  35.  
  36.    def move_mouse(self, pos):
  37.        """move the mouse to the specified coordinates"""
  38.        (x, y) = pos
  39.        old_pos = self.get_position()
  40.        x =  x if (x != -1) else old_pos[0]
  41.        y =  y if (y != -1) else old_pos[1]    
  42.        self._do_event(self.MOUSEEVENTF_MOVE + self.MOUSEEVENTF_ABSOLUTE, x, y, 0, 0)
  43.  
  44.    def press_button(self, pos=(-1, -1), button_name="left", button_up=False):
  45.        """push a button of the mouse"""
  46.        self.move_mouse(pos)
  47.        self._do_event(self.get_button_value(button_name, button_up), 0, 0, 0, 0)
  48.  
  49.    def click(self, pos=(-1, -1), button_name= "left"):
  50.        """Click at the specified placed"""
  51.        self.move_mouse(pos)
  52.        self._do_event(self._get_button_value(button_name, False)+self._get_button_value(button_name, True), 0, 0, 0, 0)
  53.  
  54.    def double_click (self, pos=(-1, -1), button_name="left"):
  55.        """Double click at the specifed placed"""
  56.        for i in xrange(2):
  57.            self.click(pos, button_name)
  58.  
  59.    def get_position(self):
  60.        """get mouse position"""
  61.        return win32api.GetCursorPos()
  62.  
  63.  
  64.  
  65.  
  66. import time
  67. mouse = Mouse()
  68. mouse.click((20, 10), "left")
  69. time.sleep(2.0)
  70. mouse.click((100, 100), "right")
  71.  

Saludos
« Última modificación: 7 Julio 2012, 19:09 pm por EleKtro H@cker » En línea



gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Simular Raton Hardware
« Respuesta #6 en: 7 Julio 2012, 23:43 pm »

Por si ayuda de algo es un juego en direct X. Precisamente esa protección es para evitar que existan programas que jueguen solos.


http://imageshack.us/f/233/sinttulokme.png/
En línea

Yoghurt

Desconectado Desconectado

Mensajes: 122


Si alguien se molesto en escribir, justo es leer.


Ver Perfil WWW
Re: Simular Raton Hardware
« Respuesta #7 en: 13 Julio 2012, 09:03 am »

El Android @Vicentnala si lo corres en una maquina virtual debes agregarle la propiedad "Touch Screen = True" en las opciones de android.

Respecto al Mouse, tal vez te haga bien revisar el SDK de DirectX. No se me ocurre nada más escepto que busques algun driver fake para utilizarlo mediante software y no se si existan.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Simular formateo... « 1 2 »
Programación Visual Basic
BenRu 11 5,333 Último mensaje 19 Agosto 2005, 00:11 am
por Chief
Simular click de raton
.NET (C#, VB.NET, ASP)
Gorky 7 12,273 Último mensaje 11 Septiembre 2009, 05:01 am
por Zzombi
Simular POO en C
Programación General
@synthesize 9 10,826 Último mensaje 13 Junio 2010, 05:39 am
por @synthesize
ID Hardware (Hardware protection)
Seguridad
kity54 5 7,212 Último mensaje 12 Diciembre 2011, 17:12 pm
por kity54
ID Hardware (Hardware protection)
Ingeniería Inversa
kity54 0 3,295 Último mensaje 17 Diciembre 2011, 23:02 pm
por kity54
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines