Skip to content

Commit

Permalink
调整针对arm64e中PAC地址矫正操作在模拟器上无需生效
Browse files Browse the repository at this point in the history
  • Loading branch information
mademao committed Sep 7, 2020
1 parent a7aabdd commit 70ba94c
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion MTHawkeye/StackBacktrace/mth_stack_backtrace.mm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#define MT_FRAME_POINTER __fp
#define MT_STACK_POINTER __sp
#define MT_INSTRUCTION_ADDRESS __pc
#define RECTIFY_ARM64E_ADDRESS(A) ((A) & 0x0fffffffff)

#elif defined(__arm__)
#define DETAG_INSTRUCTION_ADDRESS(A) ((A) & ~(1UL))
Expand All @@ -37,6 +38,7 @@
#define MT_FRAME_POINTER __r[7]
#define MT_STACK_POINTER __sp
#define MT_INSTRUCTION_ADDRESS __pc
#define RECTIFY_ARM64E_ADDRESS(A) ((A) & 0x0fffffffff)

#elif defined(__x86_64__)
#define DETAG_INSTRUCTION_ADDRESS(A) (A)
Expand All @@ -45,6 +47,7 @@
#define MT_FRAME_POINTER __rbp
#define MT_STACK_POINTER __rsp
#define MT_INSTRUCTION_ADDRESS __rip
#define RECTIFY_ARM64E_ADDRESS(A) (A)

#elif defined(__i386__)
#define DETAG_INSTRUCTION_ADDRESS(A) (A)
Expand All @@ -53,11 +56,11 @@
#define MT_FRAME_POINTER __ebp
#define MT_STACK_POINTER __esp
#define MT_INSTRUCTION_ADDRESS __eip
#define RECTIFY_ARM64E_ADDRESS(A) (A)

#endif

#define CALL_INSTRUCTION_FROM_RETURN_ADDRESS(A) (DETAG_INSTRUCTION_ADDRESS((A)) - 1)
#define RECTIFY_ARM64E_ADDRESS(A) ((A) & 0x0fffffffff)

typedef struct _mth_stackframe_entity {
const struct _mth_stackframe_entity *const previous;
Expand Down

0 comments on commit 70ba94c

Please sign in to comment.