Decodificación de instrucción BLX en brazo/pulgar (iOS)
Pregunta
He leído gran parte de la documentación del brazo pero aún tengo problemas para decodificar una instrucción BLX. Aquí hay dos ejemplos:
__text:0000347C 02 F0 B2 ED BLX _objc_msgSend
__text:0000469C 01 F0 A2 EC BLX _objc_msgSend
Se supone que ambos van al mismo lugar, la dirección virtual 0x5fe4 como se ve aquí:
__symbolstub1:00005FE4 38 F0 9F E5 LDR PC, =__imp__objc_msgSend
Sin embargo, no puedo entender qué cálculo se usa para obtener de las dos direcciones anteriores (0x347c y 0x469c) usando sus bytes de instrucción. Según la documentación del brazo, se supone que es un salto relativo, usando un cambio correcto en 2, pero los números no funcionan.
¿Alguien puede ayudar?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow