2010-06-25 12 views
5

¿Alguien puede explicar cómo un programa engancha y modifica el comportamiento de otros programas en Windows?¿Cómo me conecto a otros programas en Windows?

¿Cómo es posible? ¿Los programas de Windows no se protegen de otros programas que entran en su memoria, etc.? (No conozco el funcionamiento interno, así que acabo de decir "en su memoria" - Apuesto a que es más complejo que eso.)

¿Las ventanas modernas como Windows 7 todavía lo permiten?

Gracias, Boda Cydo

Respuesta

5

Hay varias maneras diferentes para enganchar dentro y modificar el comportamiento de otros programas.

Por ejemplo, se puede escribir directamente en la memoria de otro programa (WriteProcessMemory) o se puede inyectar un hilo en la memoria de otro programa (CreateRemoteThread). Esto supone que tienes algunos derechos para controlar ese otro programa.

También se puede inyectar un gancho a través de la ventana SetWindowsHookEx. Esto supone que se está ejecutando en la sesión del usuario en el mismo o mayor nivel de integridad del programa al que está inyectando.

Esto todavía está permitido por varias razones. Sin una forma de modificar el comportamiento de otros programas, no sería posible implementar un depurador. ganchos de Windows son utilizados por los programas de pruebas, programas de accesibilidad, programas que cambian la apariencia de las ventanas, etc.

+0

¿Puedes hacer eso en Linux? Creo que en Linux no se puede manipular la memoria de otro programa? – bodacydo

+0

No soy un desarrollador de Linux. ¿Cómo podría un depurador de linux del modo de usuario insertar un punto de interrupción en un proceso o leer la pila de un hilo? – Michael

+0

Por lo general, ejecuta el programa a través de 'gdb'. Entonces, dado que gdb bifurca el proceso hijo, de alguna manera tiene acceso a ese programa, pero no estoy seguro, soy nuevo en todo esto. – bodacydo

0

Imagínese una aplicación que guarda los datos para presentar x.txt se puede agarrar el contenido x.txt, e intentará encontrar una diferencia en el x.txt guardado en contra de la corriente x. txt, una vez que cambia puede tener un evento de incendio sabiendo que el programa X modificó su archivo x.txt.

Usted puede hacer esto en un nivel más bajo, pero el concepto sigue siendo el mismo, (vigilar algo para modificar).

+0

¿No es simplemente la manipulación de la memoria? ¿El mismo concepto utilizado para hacer Game Trainers? Pensé que OP estaba hablando de ganchos físicos para ejecutar código (podría ser lo mismo ...) como Steam engancha tus juegos 3D para incrustar su superposición. – Aren

Cuestiones relacionadas