Pregunta

Debo interceptar la ejecución en gran aplicación en muchos lugares.

¿Qué programas puedo utilizar para hacer esto? ¿Qué técnicas existe para este problema?

manual de ingeniería inversa y ganchos adición es tal solución no es óptima para este problema, ya que la aplicación es muy grande y una parte de la aplicación se puede actualizar en algún momento, creo que con algunas herramientas o buenas prácticas para este problema i puede hacerlo más rápido , nadie sabe cómo hacerlo?

¿Alguien me ayuda?

¿Fue útil?

Solución

ya que la parte de herramientas ha sido cubierto, aquí es algo para las técnicas.

Dependiendo de qué es lo que necesita para conectar y si hay o no invloved protección, hay algunos métodos:

  1. llamada relativa / parches JMP en el binario virtualizado: este es el más simple, pero también una gran cantidad de trabajo si no puede encontrar automáticamente todas las referencias a una función, esto probablemente no funcionará en esta causa debido a sus criterios.

  2. IAT / EAT enganchando: esto es el uso de las importaciones (IAT) y exportaciones (EAT), si su gran dirigidas a un conjunto conocido importted / exportados de funciones de la API. un buen ejemplo de esto se puede encontrar aquí o aquí

  3. Hot-Parches: Windows XP SP2 introdujo algo que se llama "en caliente parches" (usado para las actualizaciones de funciones del sistema en tiempo real), donde todas las funciones de su (la WinAPI) comienzan con un 'MOV EDI, EDI', lo que permite una salto relativo a ser parcheado en el espacio libre creado por encima de cada función hot-patchable ( uno puede hacerlo también ). Esto se utiliza generalmente para los programas que la suma de comprobación no IAT de o tener otras formas divertidas de protección, más información se puede encontrar aquí y aquí

  4. Code-espeleología: la captura de flujo de ejecución mediante la colocación de redirecciones en el espacio de código arbitrario. ver aquí , aquí o aquí

  5. VFT / COM redirección: básicamente entradas sobreescritura en una tabla de objetos de función virtual, útil para aplicaciones de programación orientada a objetos COM / base. ver este

Hay una gran cantidad de bibliotecas 3 ª parte, el más famoso, probablemente sería MS desvíos , también se puede mirar a APIHijack o una motor mini-gancho .

Por supuesto nada puede sustituir a auscultar inicial tendrá que ver con un depurador como OllyDbg , pero conocer el método que va a utilizar puede drásticamente corto tiempo que el tiempo hurgando cantidad gastada

Otros consejos

Algunos detalles sobre qué es exactamente lo que tiene que hacer (por ejemplo, ¿cómo determinar dónde romper) estaría bien. Dependiendo de su situación, algo así como Pin trabajo fuerzas.

Deviare API Hook . Es la manera más fácil que puede hacer lo que necesita. Tiene algunos de los objetos COM que se puede utilizar para conectar una aplicación de un proceso diferente. En su proceso de obtener información de parámetros completa y se puede usar en cualquier lenguaje de programación (estoy usando C # y funciona como un encanto). Si necesita API de registro de intercepción se sugiere emplear Deviare de depurar lo que necesita para interceptar, pero entonces tendrá que hacer sus propios ganchos, de lo contrario, encontrará problemas de rendimiento.

Se puede hacer que engancha API Si usted está interesado en la interceptación de llamadas a métodos.

o utilizar algún desensamblador como softice o OllyDbg o win32dasm .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top