Estoy escribiendo un script para el desensamblador IDA Pro en Python usando el plugin idapython
. Usando esto, puedo llenar los vacíos donde el autoanálisis de IDA se queda corto.C++ nombre mangling a mano
Un área que me ha dejado perplejo es nombrar ubicaciones/funciones con (a falta de un mejor término) "nombres bonitos". Un ejemplo de lo que quiero decir se ilustra a continuación:
idapython
e IDA Pro en sí sólo me permite entrar nombres básicas de la función C-ish. Si ingreso símbolos no permitidos (por ejemplo, el operador de resolución del alcance), se reemplazan con guiones bajos. Sin embargo,, si ingreso un nombre destruido a mano (por ejemplo, __ZN9IOService15powerChangeDoneEm
), IDA Pro será pretifique esto por mí.
De ahí mi pregunta: ¿cómo puedo generar nombres destrozados para pasar por idapython
? ¿Hay una biblioteca de creación de nombres disponible? ¿Hay uno disponible en Python? ¿Mi única esperanza es romper la funcionalidad de mapeo de g++
y solucionarlo?
Yo espero que haya algún documento en torno a que usted podría mirar en ... buena suerte! –