Diga, hay un cuadro de entrada e ingreso un texto. ¿Puedo encontrar de alguna manera la ubicación en la que se ingresó el texto?
Diga, hay un cuadro de entrada e ingreso un texto. ¿Puedo encontrar de alguna manera la ubicación en la que se ingresó el texto?
Establezca puntos de interrupción en GetWindowText ()
y GetDlgItemText ()
y haga que el programa de destino lea su texto de entrada . Si se alcanza el punto de interrupción, puede rastrear la pila de llamadas para ver qué código está leyendo su texto de entrada y en qué parte de la memoria se almacena. Si no se alcanza ningún punto de interrupción, puede intentar establecer un punto de interrupción condicional en SendMessage ()
y filtrarlo para que solo se rompa en WM_GETTEXT
.
Si los métodos anteriores fallan, es posible que desee analizar estáticamente el programa para encontrar dónde está creando la ventana del cuadro de texto y cómo está manejando la entrada al cuadro de texto. Puede resultar útil buscar llamadas a la API de creación de ventanas y / o referencias cruzadas a cadenas relacionadas con el cuadro de texto (etiquetas estáticas, cadenas de mensajes de error, etc.).
Además de lo que dijo Jason, agregaría que hay otra forma potencialmente útil:
ExitProcess ()
(y probablemente HeapFree ()
también) "bla bla bla"
Estoy de acuerdo en que esto podría ser una exageración, pero aún así podría ser útil en algunas situaciones.
además de todas las soluciones anteriores después de haber ingresado su cadena de texto presione f12
y pause la depuración
ahora hay varias opciones para buscar la cadena ver pila de llamadas ( ctl + k)
y establezca un punto de interrupción en la dirección de retorno
en la pila y presione f9 para ejecutar
ollydbg probablemente se romperá en alguna llamada del sistema
cuando se rompa puede buscar en toda la memoria del proceso
( alt + m clic derecho buscar ctrl + l para repetir)
para la cadena que ingresó
establecer un punto de interrupción de acceso ( interrupción de hardware apuntar al leer)
en la ubicación si la aplicación no está muy ofuscada, la pila de llamadas puede mostrarle el código de la aplicación donde ingresó al sistema, también puede seguir desde allí
si la aplicación no ha subclasificado su configuración de controles un punto de interrupción en windowproc
o classproc
también le dará el contexto correcto para seguir su cadena. Si la aplicación usa directx, puede establecer interrupciones en SendInpu t () apis o DrawText (...) apis