EDITAR:¿Cómo distinguir las funciones definidas por el usuario/biblioteca de un archivo compilado?
Lo que quiero es distinguir enlazados estáticamente funciones de biblioteca y de usuario auto-escrita funciones dentro un archivo compilado (por ejemplo archivo PE).
¿Cómo lograr eso? (Estoy pensando en la comparación de bases de datos, pero no sé ninguna base de datos.)
Por cierto, (ya he sabido mucho antes de hacer esta pregunta) para las funciones de biblioteca vinculadas dinámicamente, son solo una entrada en la importación mesa (de PE).
Por funciones de la biblioteca, me refiero a los definidos en las bibliotecas, tales como STL (sé que esto es un mal nombre).
Por funciones definidas por el usuario, quiero decir aquellas escritas por programadores individuales.
¿Hay alguna forma programática para lograr este objetivo?
En este momento estoy pensando en comparar binarios con una base de datos, pero no conozco ninguna base de datos hasta el momento.
Por favor, recomiende una base de datos o una respuesta diferente. Gracias.
solo a modo de información: IDA disassembler tiene archivos de "firma FLIRT" que utiliza para tratar de determinar este tipo de información, y es moderadamente exitoso. entonces, como ha sido programado antes, sí, es posible. Sin embargo, estoy seguro de que es un esfuerzo enorme hacer esto, y necesitarás generar el tuyo o usar las firmas de otra persona. además, no es una tasa de éxito del 100%, * especialmente para archivos optimizados *. si el archivo ha sido optimizado, es casi imposible (incluso a mano usando una buena herramienta como IDA) averiguar exactamente qué funciones son las que provienen de las bibliotecas. – shelleybutterfly
para compilaciones de depuración, podría ser más factible. pero diría que si una herramienta que ha existido tanto tiempo como IDA todavía no puede hacerlo, tendrá un largo camino por recorrer si intenta implementar su propia solución aquí, y es probable que siga siendo así. bastante imperfecto y no llega ni cerca del 100% en archivos altamente optimizados. enlace a ida si desea verificarlo: http://www.hex-rays.com/idapro/ (no estoy seguro de cuánta funcionalidad tiene la versión demo, pero al menos debería darle una idea, creo, de lo que estoy describiendo) – shelleybutterfly
@shelleybutterfly en realidad, mi propósito de esta pregunta es preguntar cómo IDA logra esto .... –