Skip to content

Improve the interceptor for short functions #355

@ek9852

Description

@ek9852

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions