Estoy tratando de verificar si una aplicación intenta manipular un proceso en particular (por ejemplo, se engancha a ella). No pude encontrar un enfoque adecuado para lograr esto. ¿Es posible calcular la suma de comprobación durante el proceso de ejecución? Si no es así, ¿cómo puedo detectar esta situación?Detectando el acceso a la memoria a un proceso
Respuesta
Otro proceso no puede hacer hooks en su proceso, puede modificar la memoria pero para hacer hooks este código debe estar en su espacio de direcciones, esto puede hacerse para inyectar DLL a su proceso cuando se inicia (en tiempo de ejecución inject dll es uno difícil), puede verificarlo fácilmente al listar las DLL en su proceso y buscar algunas de las llamadas de funciones en sus códigos. Para hacerlo, obtenga la dirección (GetProcAddress
) de la función y el valor de búsqueda en el código (puede agregar algunas predicciones asm call
para obtener un resultado de rango estrecho).
se puede comprobar lo que está mal con su archivo PE en el disco y en la memoria, cuando la inyección de DLL en tiempo de inicio fue ocurrencia entonces su archivo PE después se ha copiado en la memoria del archivo debe estar dañado, después de la última biblioteca dll debería haber sobrescrito los símbolos de depuración con importación dll adicional. Esta modificación se puede hacer en el archivo igual que en la memoria.
El mejor método, pero probablemente no le resulte fácil cuando usa el lenguaje C# es , ofusque su código. Creo que este es un buen método porque no engancha algo que no sabe cómo funciona, porque no sabe qué anzuelo debe hacer y dónde. Pero para un buen código de C#, debes encontrar un buen software para eso y probablemente no pagues un precio bajo.
@gcx: ReadProcessMemory, WriteProcessMemory capturará las inyecciones de tiempo de ejecución también, la inyección de tiempo de ejecución es de otra función de inyección de proceso para colocar cuando se ejecutará con código de biblioteca de carga (en la memoria objetivo no como ganchos en destino función de memoria pero llamada ubicada en dll) – Svisstack
Veo que mencionaste ofuscación. Creo que dijiste eso debido a mi referencia a "mi proceso". Remití un proceso en particular al decir mi proceso. Edité la publicación original. Perdón por la confusion. –
Aquí está el mejor ofuscador gratuito que conozco: [Eazfuscator.NET] (http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx) – ken2k
- 1. código C - acceso a la memoria/apropiación
- 2. acceso a memoria vs. copia de memoria
- 3. Acceso atómico a la memoria compartida
- 4. ¿Cuál es el costo del acceso a la memoria?
- 5. CUDA fundió el acceso a la memoria global
- 6. Acceso directo a memoria en Linux
- 7. Espacio de dirección del proceso frente a la memoria virtual
- 8. ¿Ejecuta un proceso desde la memoria dentro de otro proceso?
- 9. Obtener acceso a la memoria caché del reproductor multimedia
- 10. La manera más simple de configurar el acceso de administrador remoto a un proceso web2py
- 11. detectando el tamaño de página de memoria
- 12. ¿Cuántos bytes trae un Xeon en el caché por acceso a la memoria?
- 13. Detectando bloqueo del proceso en .NET
- 14. ¿AppDomain es equivalente a un proceso para el código .NET?
- 15. ¿Puedo pasar un objeto a otro proceso simplemente pasando su puntero a una memoria compartida?
- 16. Cómo averiguo si mi proceso está vinculado a la CPU, a la E/S, a la Memoria o
- 17. Win 7 DllImport C# Error impar, ¿Acceso no válido a la ubicación de la memoria?
- 18. Acceso a un servidor MBean remoto
- 19. sincronizar el acceso a un campo estático
- 20. .htaccess denegar el acceso a todos excepto a un archivo
- 21. El acceso a la ruta **** está denegado
- 22. ¿Cómo se puede acceder a la memoria de otro proceso y llamar a sus funciones?
- 23. Permisos de acceso a memoria compartida en Windows
- 24. iOS - Acceso concurrente a los recursos de memoria
- 25. Acceso a la sesión en el modelo
- 26. Detectando el nombre de usuario del proceso ID
- 27. ¿Cómo limitar el acceso a la página solo a localhost?
- 28. Deshabilitar el acceso de registro para un proceso específico (WinAPI)
- 29. ¿Uso de memoria de un proceso hijo?
- 30. ¿El acceso a la memoria no alineada siempre causa errores de bus?
¿Conoces la aplicación ofensiva? ¿Y sabes cómo detectar en la aplicación que se produjo la manipulación? – rene
Lo siento, no recibí tu pregunta. No sé cómo detectar la manipulación, así que no tengo idea de detectar ocurrencias de manipulación. Es por eso que pedí ayuda. –
¿Cuál es el objetivo real que intentas lograr? Si intentas evitar/detectar alteraciones en tu propia aplicación, no hay nada que funcione al 100%. –