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:
.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:
mov edi, ds:GetAsyncKeyState
el codigo completo:
http://crystian.comxa.com/dbwc1_asm.rar (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
Fijate en WinMain.asm, linea 382:
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 (http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx)
Saludos!
Cita de: MCKSys Argentina en 25 Mayo 2013, 04:57 AM
Fijate en WinMain.asm, linea 382:
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 (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.