Tienes alguna oportunidad
Supongo que tiene un ejecutable nativo (los ejecutables vm son lo mismo, pero más fácil).
En primer lugar, recopile toda la información posible del sistema sobre la falla de segmentación: un sistema operativo normal al menos debería ofrecer el estado de los registros (eax, ebx, … y especialmente eip) y algún volcado de la memoria (seguimiento de pila, volcado de memoria, etc.) después de eso Puedes hacer un análisis estático y / o dinámico:
Estático
Vuelca el código de ensamblaje de su ejecutable y usa la información de eip para localizar la línea ofensiva. Esta información puede ser muy útil: es razonable que de esta manera también pueda comprender qué función contiene la línea ofensiva (especialmente si el binario no está despojado), que puede brindar mucha ayuda para intentar reproducir el problema (puede estresarse una parte específica del código)
Dinámica
Si tiene un buen depurador, puede ejecutar sus archivos binarios debajo y poner un punto de interrupción en la parte infractora del código. Si bien, en general, no puede reproducir siempre, el problema al ejecutar el código bajo un depurador le permite comprender el comportamiento normal de la función, es el seguimiento normal de la pila, etc.
- ¿Qué lenguaje de programación se usa para hacer pequeños programas de utilidad para Windows?
- ¿Existen aplicaciones o sitios dedicados a expertos en la materia y que los vinculen con personas que buscan expertos?
- ¿Qué aplicaciones y software deberían conocer los proveedores de atención para personas mayores?
- ¿Cuál es el mejor software de creación y edición de video?
- ¿Cuáles son los softwares de plataformas de redes sociales disponibles para configurar su comunidad?
En general, necesita el mismo conjunto de habilidades y herramientas necesarias para realizar la ingeniería inversa de los ejecutables.
También puedes practicar este conjunto de habilidades con el llamado Crackme