-
Notifications
You must be signed in to change notification settings - Fork 328
Description
If the function is using PLT, then interceptor will fail.
First problem is that the function is just an unconditional branch function, only 4 bytes available.
Error: Interceptor error: Intercepting function at 0x7f488308cc failed: End of function reached after 4 byte when rewriting 12 bytes
After modify some code to using the actually function in plt (glPointSizePointerOES@plt in this example), we got a different error:
Interceptor error: Intercepting function at 0x7f488308cc failed: Instruction not handled yet when one of the operand is IP1 ( ldr x17, [x16, #4080] (OpcodeId: 1384))
0000000000004308 glPointSizePointerOES@plt:
4308: b0000030 adrp x16, 9000 <glGetString+0x3030>
430c: f947fa11 ldr x17, [x16,#4080]
4310: 913fc210 add x16, x16, #0xff0
4314: d61f0220 br x17
00000000000058cc :
58cc: 17fffa8f b 4308 glPointSizePointerOES@plt