cambiar pulsacion de teclado

Iniciado por byway, 25 Mayo 2013, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

byway

Hola, tal como el titulo menciona me gustaria aprender como cambiar la pulsacion del teclado.

encontre un programa el cual esta en la red, hecho en asm compilado con MASM32 es un cheat para un juego online el gunbound, el cheat es algo viejo.. solo me gustaria saber como cambiarle, modificar la opcion de que se muestre con pulsar otra tecla, este se muestra pulsando la tecla print screen .. me gustaria saber como puedo cambiar eso .. para que se muestre con otra tecla como por ejemplo control.
estuve revisando su codigo y bueno no se nada de asm ... se un poco de visual basic, con lo cual me sirve para ver la estructura.

Publico este post para que alguien que domine este lenguaje me exlpique algo.

esto es parte del codigo principal:

Código (asm) [Seleccionar]


.586
.MODEL FLAT, STDCALL

OPTION       CASEMAP : NONE

INCLUDE WINAPI.inc

INCLUDELIB     KERNEL32.lib
INCLUDELIB     USER32.lib
INCLUDELIB GDI32.lib
INCLUDELIB MSVCRT.lib


;MSVCRT functions

_ftol       PROTO C: VARARG
_CIpow      PROTO C: VARARG         ; X^Y
_itoa       PROTO C: VARARG
time        PROTO C: VARARG
malloc      PROTO C: VARARG
difftime    PROTO C: VARARG
free        PROTO C: VARARG

.DATA?

buffer DB 0ffh DUP (?)
angle_buff DB 0ffh DUP (?)

.DATA

INCLUDE Data1.asm
INCLUDE Data2.asm

;INCLUDE Data1_gps.asm


wc  = 1
th  = 0


showmore db 1 ; yep...
server db wc ; default wc
key     db 0ffh
angle   dd 0
angle2   dd 0
power dd 0

angle_str   db "W.Power: %.2i",0
angle_str2   db "W.Angle: %.3i",0
power_str   db "Power: %.3i",0

dragonbot_ini db ".\dragonbot.ini",0
default_wc db "wc",0
default_th db "th",0
section db "Settings",0
keyname2 db "Info",0
keyname1 db "Server",0

.CODE

EntryPoint:

;invoke GetPrivateProfileStringA,offset section,offset keyname1,offset default_wc,offset buffer,0ffh,offset dragonbot_ini
;invoke CharLowerA,offset buffer
;invoke lstrcmpA,offset default_th,offset buffer
;.if eax==0
; mov server,th
;.endif

;invoke GetPrivateProfileStringA,offset section,offset keyname2,offset default_wc,offset buffer,0ffh,offset dragonbot_ini
;invoke CharLowerA,offset buffer
;.if byte ptr[buffer]=="1"
; mov showmore,1
;.endif


   INCLUDE WinMain.asm


;--- Pixel functions (WC)
     
   INCLUDE Get_Enemy_XY.asm
   INCLUDE Get_XY.asm
   INCLUDE Get_Wind_Speed.asm
   INCLUDE Get_Wind_Angle.asm

   INCLUDE Get_Angle.asm

;--- Pixel functions (TH) ; from DragonBot 8.x

   ;INCLUDE getenemyxy_gps.asm    
   ;INCLUDE getselfxy_gps.asm
   ;INCLUDE getwindspeed_gps.asm
   ;INCLUDE getwindangle_gps.asm
   ;INCLUDE getangle_gps.asm

;--- Draw functions (Shared)
 
  INCLUDE Draw3.asm      ; aid lines
  INCLUDE Draw0.asm      ; trace
  INCLUDE Draw1.asm      ; slot lines
  INCLUDE Draw2.asm      ; mobile


  INCLUDE Get_Power.asm


END EntryPoint


viendo parte del codigo vi uno donde menciona en comentarios esta api en winmain.asm (dentro del zip) presumo pueda ser alli:

Código (asm) [Seleccionar]
mov     edi, ds:GetAsyncKeyState

el codigo completo:

http://crystian.comxa.com/dbwc1_asm.rar
para quienes responderan que estudie y revise mas sobre ensamblador ... si estuve revisando y le veo interesante ... pero no le entiendo. ;D

MCKSys Argentina

Fijate en WinMain.asm, linea 382:

Código (asm) [Seleccionar]

                push    2Ch
                call    ds:GetAsyncKeyState


El valor 2Ch (valor en Hexa, osea en VB seria &H2C) corresponde a la tecla PRINT SCREEN. Cambiando ese valor, cambias la tecla.
Por las dudas, listado de valores completo: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


byway

Cita de: MCKSys Argentina en 25 Mayo 2013, 04:57 AM
Fijate en WinMain.asm, linea 382:

Código (asm) [Seleccionar]

                push    2Ch
                call    ds:GetAsyncKeyState


El valor 2Ch (valor en Hexa, osea en VB seria &H2C) corresponde a la tecla PRINT SCREEN. Cambiando ese valor, cambias la tecla.
Por las dudas, listado de valores completo: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

Saludos!

Gracias por responder, efectivamente si es lo que me indicas ya lo comprobe, lo cambie por otro ... pero este no muestra nada si no se presiono antes la tecla print screen, al parecer dentro de las funciones de dibujado (draw) esta codeado asi con la misma tecla, y aprovecha eso para que con la misma pulsacion haga todo.

En fin ahora ya se que se puede cambiar y cual es el codigo para esto.

ahora trato de compilar ese codigo como dll ... estoy revisando al respecto y planteare mis dudas en otro post.

Saludos.