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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  DEBUG (BATCH)
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: DEBUG (BATCH)  (Leído 19,457 veces)
kworld

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #20 en: 12 Agosto 2010, 07:02 am »

bue aca la pregunta que significa esta parte del code
Código:
Echo.EB800:A0 "R"1F"o"1F"d"1F"r"1F"i"1F"g"1F"o"1F" "1F"K"1F"I"1F"L"1F"L"1F"E"1F"R"1F
o seas s q es para ingresar letras pero
1)porque EB800 y no EB799
2)porque A0 y no A1
3)1F y no F sola

q es para salir
1)b800 es la dirección de la memoria de vídeo.
2)La e es para ingresar (significa enter) otra alternativa es el uso de f (fill)
el número después de los dos puntos es el punto dónde comenzará a escribir en memoria, en el caso de fill el número que viene después es el límite. Si vemos la memoria cómo un vector y la pantalla cómo una matriz de dos dimensiones, podemos convertir la dirección especificada en dos dimensiones a una dimensión así:

fila * ancho + columna

con el comando mode con
podemos ver el tamaño, el número de columnas y las líneas.
por defecto es:
cols 80
lines 300

si queremos escribir en la segunda línea en el tercer carácter, y tenemos la configuración por defecto :

fila:2 (partiendo del índice 0 y avanzando de dos en dos: 0 2 4 (la segunda fila es 2 y la tercera es 4))
columna=4 (partiendo del índice 0) (0 2 4)
ancho=80 (el valor de cols en mode con)

cálculo: 2 * 80 + 4 = 164 y ahora convertido a hexadecimal: A4

Ejemplo: presionar enter dos veces.
Código:
@echo off
Color 6D

(
Echo.F B800:00 F9F "h" 4f "o" 4f "l" 4f "a" 4f
Echo.Q
) | Debug > nul

pause > nul
cls

(
Echo.E B800:A4 68 4f "o" 4f "l" 4f "a" f
Echo.Q
) | Debug > nul

pause > nul



en el ejemplo, el carácter encerrado entre comillas es para cómodidad, también podrías especificarlo en ascii hexadecimal por ejemplo reemplaza "h" por 68 y verás que es lo mismo.
En la especificación del color:
4f el primer número es el fondo del carácter y el segundo es el color del carácter, en este caso es para cambiar el color del fondo y que no tome el color negro, si especificamos solamente f toma como fondo el 0 (que es el color negro).

En este caso el color especificado es como aparece en comando color /?

Aquí tienes más información del comando debug, en este caso para reconstruir archivos binarios: http://ss64.org/viewtopic.php?pid=3152#p3152












« Última modificación: 12 Agosto 2010, 07:07 am por kworld » En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #21 en: 13 Agosto 2010, 21:00 pm »

gracias kworld...eso es una explicacion  ;-)....paso a copiar para tener este dato ...buena pagina y aguante herramienta de idioma de google  ;D


« Última modificación: 13 Agosto 2010, 21:06 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #22 en: 13 Agosto 2010, 22:08 pm »

Tutoriales así estaba buscando yo, infinitas gracias Kwrld, es perfecto...Ahora ya estaría genial que nos explicaras igual de bien cómo hacer para establecer sistemas de coordenadas para detectar pulsaciones del ratón en un área concreta. ¿me ayudas?
En línea

FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #23 en: 18 Agosto 2010, 13:12 pm »

¿Me explica alguien cómo hacer para establecer coordenadas en variables y detectar en ellas las pulsaciones del ratón por favor?
En línea

kworld

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #24 en: 19 Agosto 2010, 04:23 am »

Básicamente es ejecutar la rutina con el debug, y capturar los datos con for /f Aquí tienes el código listo:

Código:
@Echo off
Setlocal Enableextensions

Call :Mouse16
Echo.C=%C% X=%X% Y=%Y%
Pause
Goto :Eof

:Mouse16
Pushd "%Temp%"
If Not Exist Mouse.Dat Call :BMouse16
For /F "Tokens=4,6,8 Delims== " %%a in (
'Type Mouse.dat ^|Debug ^| Find /i "X"'
) Do Set /a "C=0x%%a,X=0x%%b,Y=0x%%c" 2>Nul
Popd
Goto :Eof

:BMouse16
Pushd "%Temp%"
If Exist Mouse.Dat Goto :BMouse1_
Echo.>Mouse.dat
::Codigo 16 bits de Mike Jones.
For %%+ in (
"E100 B8 01 00 33 DB CD 33 B0 03 43 CD 33"
"E10C 0B DB 74 FA 91 D3 EA D3 E8 91 C3"
"G116"
"Q"
"") Do Echo.%%~+>>Mouse.dat
:BMouse1_
Popd
Goto :Eof


Nota: Si quieres un mouse pero para sistemas de 64 bits, claro que sin debug.
Código:
http://groups.google.co.uk/group/alt.msdos.batch.nt/browse_thread/thread/d15e99aec4edafec#
« Última modificación: 19 Agosto 2010, 04:25 am por kworld » En línea

FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #25 en: 19 Agosto 2010, 10:42 am »

hola kworld....he probado el código y no me funciona...pero muchas gracias por ponerlo...¿me puedes explicar su funcionamiento parte por parte, y qué es cada cosa? gracias.
En línea

kworld

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #26 en: 19 Agosto 2010, 18:31 pm »

debería funcionar, si se queda pegado debes hacer clic.

Código:
C:\Users\Kworld\Desktop>type Mouse.dat | debug
-E100 B8 01 00 33 DB CD 33 B0 03 43 CD 33
-E10C 0B DB 74 FA 91 D3 EA D3 E8 91 C3
-G116

AX=0003  BX=0001  CX=0017  DX=0008  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1380  ES=1380  SS=1380  CS=1380  IP=0116   NV UP EI PL NZ AC PE NC
1380:0116 C3            RET
-Q

C:\Users\Kworld\Desktop>type Mouse.dat | debug | find /i "X"
AX=0003  BX=0001  CX=0017  DX=0008  SP=FFEE  BP=0000  SI=0000  DI=0000

C:\Users\Kworld\Desktop>

Luego de hacer clic se muestra los valores de los registros,  en este caso solamente nos interesan los registros BX, que será 1 si hicimos clic con el botón izquierdo, y 2 si fue con el derecho. CX es la coordenada x del cursor y DX es la coordenada y, eso es todo, lo otro es capturar la información con el for /f, y se atrapa la información anteponiedo 0x en el set /a para que no tome los números como octales ya que comienzan con 0 sino como lo que son valores hexadecimales.
« Última modificación: 19 Agosto 2010, 18:34 pm por kworld » En línea

FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #27 en: 19 Agosto 2010, 22:27 pm »

No sé por qué, no me funciona, me sale la consola con el guión, como al abrir cmd y hacer @echo off&cls, justo así, una simple barra baja parpadeando.

Bien yo ya había entendido qué era AX, BX, CX, DX y eso...

¿Pero qué es  e100 B8? ¿qué es cada par hexadecimal (Qué significa)? ¿Cómo defino las áreas que quiero para los botones, con sus coordenadas, ¿cómo hago para compararlas tipo "si está entre una esquina y su opuesta?

Explícame por favor, muchas gracias.
En línea

FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: DEBUG (BATCH)
« Respuesta #28 en: 22 Agosto 2010, 11:20 am »

¿Me lo puede explicar alguien por favor?
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: DEBUG (BATCH)
« Respuesta #29 en: 22 Agosto 2010, 16:26 pm »

Otra cosa...¿cómo hago para que batch detecte las coordenadas del ratón con debug?

para el Debug necesitas ASM, por lo tanto que te cuesta aprender ASM de salto y todo listo
En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] | [Debug.exe] ¿Como hacer una salida ascii a un .txt?
Scripting
klaine 4 5,938 Último mensaje 29 Marzo 2011, 22:57 pm
por klaine
Debug c++
Programación C/C++
inewcl 2 2,297 Último mensaje 7 Noviembre 2016, 16:53 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines