Skip to content

Instantly share code, notes, and snippets.

@ink-splatters
Created December 25, 2025 11:58
Show Gist options
  • Select an option

  • Save ink-splatters/af142fd07c686aed0c5cf97f84a619ee to your computer and use it in GitHub Desktop.

Select an option

Save ink-splatters/af142fd07c686aed0c5cf97f84a619ee to your computer and use it in GitHub Desktop.
_SecTrustCopyCertificateChain (dyld_shared_cache 25C56)
_SecTrustEvaluateIfNecessary:
0x1839ff360: 7f 23 03 d5 pacibsp
0x1839ff364: ff 03 03 d1 sub sp, sp, #0xc0
0x1839ff368: e9 23 08 6d stp d9, d8, [sp, #0x80]
0x1839ff36c: f6 57 09 a9 stp x22, x21, [sp, #0x90]
0x1839ff370: f4 4f 0a a9 stp x20, x19, [sp, #0xa0]
0x1839ff374: fd 7b 0b a9 stp fp, lr, [sp, #0xb0]
0x1839ff378: fd c3 02 91 add fp, sp, #0xb0
0x1839ff37c: f3 03 00 aa mov x19, x0
0x1839ff380: b4 43 01 d1 sub x20, fp, #0x50
0x1839ff384: bf 53 3b a9 stp xzr, x20, [fp, #-0x50]
0x1839ff388: 88 0f 00 b0 adrp x8, 0x183bf0000
0x1839ff38c: 08 61 43 fd ldr d8, [x8, #0x6c0]
0x1839ff390: a8 03 1c fc stur d8, [fp, #-0x40]
0x1839ff394: e8 f3 01 32 mov w8, #0xaaaaaaaa
0x1839ff398: a8 83 1c b8 stur w8, [fp, #-0x38]
0x1839ff39c: f1 a2 07 94 bl j__pthread_main_np
0x1839ff3a0: 1f 04 00 71 cmp w0, #0x1
0x1839ff3a4: 41 01 00 54 b.ne 0x1839ff3cc
0x1839ff3a8: 48 27 34 f0 adrp x8, 0x1ebeea000
0x1839ff3ac: 08 55 46 f9 ldr x8, [x8, #0xca8] ; SecTrustEvaluateThreadRuntimeCheck.queueToken
0x1839ff3b0: 1f 05 00 b1 cmn x8, #0x1
0x1839ff3b4: 21 06 00 54 b.ne 0x1839ff478
0x1839ff3b8: 48 27 34 f0 adrp x8, 0x1ebeea000
0x1839ff3bc: 00 59 46 f9 ldr x0, [x8, #0xcb0] ; SecTrustEvaluateThreadRuntimeCheck.runtimeLogQueue
0x1839ff3c0: 81 09 36 b0 adrp x1, 0x1efb30000
0x1839ff3c4: 21 c0 02 91 add x1, x1, #0xb0 ; __block_literal_global.565
0x1839ff3c8: 96 9f 07 94 bl j__dispatch_channel_async
0x1839ff3cc: f5 03 01 91 add x21, sp, #0x40
0x1839ff3d0: ff 57 04 a9 stp xzr, x21, [sp, #0x40]
0x1839ff3d4: e8 2b 00 fd str d8, [sp, #0x50]
0x1839ff3d8: e0 03 13 aa mov x0, x19
0x1839ff3dc: 8e ff ff 97 bl _SecTrustGetVerifyTime
0x1839ff3e0: e0 2f 00 fd str d0, [sp, #0x58]
0x1839ff3e4: 60 46 40 f9 ldr x0, [x19, #0x88]
0x1839ff3e8: e8 23 00 91 add x8, sp, #0x8
0x1839ff3ec: 50 2f 32 b0 adrp x16, 0x1e7fe8000
0x1839ff3f0: 10 36 40 f9 ldr x16, [x16, #0x68] ; _ptr.__NSStackBlock__
0x1839ff3f4: f1 03 08 aa mov x17, x8
0x1839ff3f8: 31 5c ed f2 movk x17, #0x6ae1, lsl #0x30
0x1839ff3fc: 30 0a c1 da pacda x16, x17
0x1839ff400: f0 07 00 f9 str x16, [sp, #0x8]
0x1839ff404: 89 0f 00 b0 adrp x9, 0x183bf0000
0x1839ff408: 20 65 43 fd ldr d0, [x9, #0x6c8]
0x1839ff40c: e0 0b 00 fd str d0, [sp, #0x10]
0x1839ff410: 08 41 00 91 add x8, x8, #0x10
0x1839ff414: 10 00 00 90 adrp x16, 0x1839ff000
0x1839ff418: 10 42 12 91 add x16, x16, #0x490 ; ___SecTrustEvaluateIfNecessary_block_invoke
0x1839ff41c: 10 01 c1 da pacia x16, x8
0x1839ff420: 88 09 36 b0 adrp x8, 0x1efb30000
0x1839ff424: 08 81 01 91 add x8, x8, #0x60 ; __block_descriptor_tmp.558
0x1839ff428: f0 a3 01 a9 stp x16, x8, [sp, #0x18]
0x1839ff42c: f4 4f 03 a9 stp x20, x19, [sp, #0x30]
0x1839ff430: f5 17 00 f9 str x21, [sp, #0x28]
0x1839ff434: e1 23 00 91 add x1, sp, #0x8
0x1839ff438: 16 a0 07 94 bl j__dispatch_sync
0x1839ff43c: a8 83 5b f8 ldur x8, [fp, #-0x48]
0x1839ff440: 13 19 40 b9 ldr w19, [x8, #0x18]
0x1839ff444: e0 03 01 91 add x0, sp, #0x40
0x1839ff448: 01 01 80 52 mov w1, #0x8
0x1839ff44c: d5 99 07 94 bl j___Block_object_dispose
0x1839ff450: a0 43 01 d1 sub x0, fp, #0x50
0x1839ff454: 01 01 80 52 mov w1, #0x8
0x1839ff458: d2 99 07 94 bl j___Block_object_dispose
0x1839ff45c: e0 03 13 aa mov x0, x19
0x1839ff460: fd 7b 4b a9 ldp fp, lr, [sp, #0xb0]
0x1839ff464: f4 4f 4a a9 ldp x20, x19, [sp, #0xa0]
0x1839ff468: f6 57 49 a9 ldp x22, x21, [sp, #0x90]
0x1839ff46c: e9 23 48 6d ldp d9, d8, [sp, #0x80]
0x1839ff470: ff 03 03 91 add sp, sp, #0xc0
0x1839ff474: ff 0f 5f d6 retab
0x1839ff478: 40 27 34 f0 adrp x0, 0x1ebeea000
0x1839ff47c: 00 a0 32 91 add x0, x0, #0xca8 ; SecTrustEvaluateThreadRuntimeCheck.queueToken
0x1839ff480: 81 09 36 b0 adrp x1, 0x1efb30000
0x1839ff484: 21 40 02 91 add x1, x1, #0x90 ; __block_literal_global.561
0x1839ff488: aa 9f 07 94 bl j__dispatch_once
0x1839ff48c: cb ff ff 17 b 0x1839ff3b8
___SecTrustEvaluateIfNecessary_block_invoke:
0x1839ff490: 7f 23 03 d5 pacibsp
0x1839ff494: ff 83 01 d1 sub sp, sp, #0x60
0x1839ff498: f4 4f 04 a9 stp x20, x19, [sp, #0x40]
0x1839ff49c: fd 7b 05 a9 stp fp, lr, [sp, #0x50]
0x1839ff4a0: fd 43 01 91 add fp, sp, #0x50
0x1839ff4a4: f3 03 00 aa mov x19, x0
0x1839ff4a8: 00 18 40 f9 ldr x0, [x0, #0x30]
0x1839ff4ac: 68 12 40 f9 ldr x8, [x19, #0x20]
0x1839ff4b0: 08 05 40 f9 ldr x8, [x8, #0x8]
0x1839ff4b4: 00 0d 40 fd ldr d0, [x8, #0x18]
0x1839ff4b8: 44 00 00 94 bl _SecTrustIsTrustResultValid
0x1839ff4bc: a0 00 00 34 cbz w0, 0x1839ff4d0
0x1839ff4c0: 68 16 40 f9 ldr x8, [x19, #0x28]
0x1839ff4c4: 08 05 40 f9 ldr x8, [x8, #0x8]
0x1839ff4c8: 1f 19 00 b9 str wzr, [x8, #0x18]
0x1839ff4cc: 3b 00 00 14 b 0x1839ff5b8
0x1839ff4d0: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff4d4: e9 00 80 52 mov w9, #0x7
0x1839ff4d8: 09 71 00 b9 str w9, [x8, #0x70]
0x1839ff4dc: 00 25 40 f9 ldr x0, [x8, #0x48]
0x1839ff4e0: 80 00 00 b4 cbz x0, 0x1839ff4f0
0x1839ff4e4: 1f 25 00 f9 str xzr, [x8, #0x48]
0x1839ff4e8: 86 97 07 94 bl j__CFRelease
0x1839ff4ec: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff4f0: 00 2d 40 f9 ldr x0, [x8, #0x58]
0x1839ff4f4: 80 00 00 b4 cbz x0, 0x1839ff504
0x1839ff4f8: 1f 2d 00 f9 str xzr, [x8, #0x58]
0x1839ff4fc: 81 97 07 94 bl j__CFRelease
0x1839ff500: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff504: 00 31 40 f9 ldr x0, [x8, #0x60]
0x1839ff508: 80 00 00 b4 cbz x0, 0x1839ff518
0x1839ff50c: 1f 31 00 f9 str xzr, [x8, #0x60]
0x1839ff510: 7c 97 07 94 bl j__CFRelease
0x1839ff514: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff518: 00 3d 40 f9 ldr x0, [x8, #0x78]
0x1839ff51c: a0 00 00 b4 cbz x0, 0x1839ff530
0x1839ff520: 4c a0 07 94 bl j__free
0x1839ff524: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff528: 1f 3d 00 f9 str xzr, [x8, #0x78]
0x1839ff52c: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff530: 00 41 40 f9 ldr x0, [x8, #0x80]
0x1839ff534: a0 00 00 b4 cbz x0, 0x1839ff548
0x1839ff538: 46 a0 07 94 bl j__free
0x1839ff53c: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff540: 1f 41 00 f9 str xzr, [x8, #0x80]
0x1839ff544: 68 1a 40 f9 ldr x8, [x19, #0x30]
0x1839ff548: e9 23 00 91 add x9, sp, #0x8
0x1839ff54c: 50 2f 32 b0 adrp x16, 0x1e7fe8000
0x1839ff550: 10 36 40 f9 ldr x16, [x16, #0x68] ; _ptr.__NSStackBlock__
0x1839ff554: f1 03 09 aa mov x17, x9
0x1839ff558: 31 5c ed f2 movk x17, #0x6ae1, lsl #0x30
0x1839ff55c: 30 0a c1 da pacda x16, x17
0x1839ff560: f0 07 00 f9 str x16, [sp, #0x8]
0x1839ff564: 8a 0f 00 b0 adrp x10, 0x183bf0000
0x1839ff568: 40 65 43 fd ldr d0, [x10, #0x6c8]
0x1839ff56c: e0 0b 00 fd str d0, [sp, #0x10]
0x1839ff570: 29 41 00 91 add x9, x9, #0x10
0x1839ff574: 10 00 00 90 adrp x16, 0x1839ff000
0x1839ff578: 10 52 1b 91 add x16, x16, #0x6d4 ; ___SecTrustEvaluateIfNecessary_block_invoke_2
0x1839ff57c: 30 01 c1 da pacia x16, x9
0x1839ff580: 89 09 36 b0 adrp x9, 0x1efb30000
0x1839ff584: 29 c1 00 91 add x9, x9, #0x30 ; __block_descriptor_tmp.555
0x1839ff588: f0 a7 01 a9 stp x16, x9, [sp, #0x18]
0x1839ff58c: e8 1f 00 f9 str x8, [sp, #0x38]
0x1839ff590: 60 0a c0 3d ldr q0, [x19, #0x20]
0x1839ff594: 00 40 00 6e ext v0.16b, v0.16b, v0.16b, #0x8
0x1839ff598: e0 83 82 3c stur q0, [sp, #0x28]
0x1839ff59c: 20 f5 ff 90 adrp x0, 0x1838a3000
0x1839ff5a0: 00 00 00 91 add x0, x0, #0 ; "\xcf\xfa\xed\xfe\f"
0x1839ff5a4: c1 11 00 f0 adrp x1, 0x183c3a000
0x1839ff5a8: 21 18 0e 91 add x1, x1, #0x386 ; "SecTrustEvaluateIfNecessary"
0x1839ff5ac: e3 23 00 91 add x3, sp, #0x8
0x1839ff5b0: 02 00 80 52 mov w2, #0
0x1839ff5b4: ff 9a 07 94 bl j___os_activity_initiate
0x1839ff5b8: fd 7b 45 a9 ldp fp, lr, [sp, #0x50]
0x1839ff5bc: f4 4f 44 a9 ldp x20, x19, [sp, #0x40]
0x1839ff5c0: ff 83 01 91 add sp, sp, #0x60
0x1839ff5c4: ff 0f 5f d6 retab
_SecTrustIsTrustResultValid:
0x1839ff5c8: 08 70 40 b9 ldr w8, [x0, #0x70]
0x1839ff5cc: c8 02 00 34 cbz w8, 0x1839ff624
0x1839ff5d0: 7f 23 03 d5 pacibsp
0x1839ff5d4: e9 23 bc 6d stp d9, d8, [sp, #-0x40]!
0x1839ff5d8: f6 57 01 a9 stp x22, x21, [sp, #0x10]
0x1839ff5dc: f4 4f 02 a9 stp x20, x19, [sp, #0x20]
0x1839ff5e0: fd 7b 03 a9 stp fp, lr, [sp, #0x30]
0x1839ff5e4: fd c3 00 91 add fp, sp, #0x30
0x1839ff5e8: 09 40 60 1e fmov d9, d0
0x1839ff5ec: f3 03 00 aa mov x19, x0
0x1839ff5f0: 0c 95 07 94 bl j__CFAbsoluteTimeGetCurrent
0x1839ff5f4: 08 40 60 1e fmov d8, d0
0x1839ff5f8: 88 0f 00 d0 adrp x8, 0x183bf1000
0x1839ff5fc: 00 41 42 fd ldr d0, [x8, #0x480]
0x1839ff600: 00 29 60 1e fadd d0, d8, d0
0x1839ff604: 88 0f 00 d0 adrp x8, 0x183bf1000
0x1839ff608: 01 45 42 fd ldr d1, [x8, #0x488]
0x1839ff60c: 01 29 61 1e fadd d1, d8, d1
0x1839ff610: 00 20 69 1e fcmp d0, d9
0x1839ff614: 20 54 69 1e fccmp d1, d9, #0, pl
0x1839ff618: ad 00 00 54 b.le 0x1839ff62c
0x1839ff61c: 20 00 80 52 mov w0, #0x1
0x1839ff620: 27 00 00 14 b 0x1839ff6bc
0x1839ff624: 00 00 80 52 mov w0, #0
0x1839ff628: c0 03 5f d6 ret
0x1839ff62c: 74 32 40 f9 ldr x20, [x19, #0x60]
0x1839ff630: 54 04 00 b4 cbz x20, 0x1839ff6b8
0x1839ff634: a1 0a 36 90 adrp x1, 0x1efb53000
0x1839ff638: 21 60 2e 91 add x1, x1, #0xb98 ; "TrustResultNotBefore"
0x1839ff63c: e0 03 14 aa mov x0, x20
0x1839ff640: 80 96 07 94 bl j__CFDictionaryGetValue
0x1839ff644: f3 03 00 aa mov x19, x0
0x1839ff648: a1 0a 36 90 adrp x1, 0x1efb53000
0x1839ff64c: 21 e0 2e 91 add x1, x1, #0xbb8 ; "TrustResultNotAfter"
0x1839ff650: e0 03 14 aa mov x0, x20
0x1839ff654: 7b 96 07 94 bl j__CFDictionaryGetValue
0x1839ff658: f4 03 00 aa mov x20, x0
0x1839ff65c: 00 00 80 52 mov w0, #0
0x1839ff660: f3 02 00 b4 cbz x19, 0x1839ff6bc
0x1839ff664: d4 02 00 b4 cbz x20, 0x1839ff6bc
0x1839ff668: e0 03 13 aa mov x0, x19
0x1839ff66c: b5 96 07 94 bl j__CFGetTypeID
0x1839ff670: f5 03 00 aa mov x21, x0
0x1839ff674: 47 96 07 94 bl j__CFDateGetTypeID
0x1839ff678: bf 02 00 eb cmp x21, x0
0x1839ff67c: e1 01 00 54 b.ne 0x1839ff6b8
0x1839ff680: e0 03 14 aa mov x0, x20
0x1839ff684: af 96 07 94 bl j__CFGetTypeID
0x1839ff688: f5 03 00 aa mov x21, x0
0x1839ff68c: 41 96 07 94 bl j__CFDateGetTypeID
0x1839ff690: bf 02 00 eb cmp x21, x0
0x1839ff694: 21 01 00 54 b.ne 0x1839ff6b8
0x1839ff698: e0 03 14 aa mov x0, x20
0x1839ff69c: 35 96 07 94 bl j__CFDateGetAbsoluteTime
0x1839ff6a0: 00 21 60 1e fcmp d8, d0
0x1839ff6a4: a5 00 00 54 b.pl 0x1839ff6b8
0x1839ff6a8: e0 03 13 aa mov x0, x19
0x1839ff6ac: 31 96 07 94 bl j__CFDateGetAbsoluteTime
0x1839ff6b0: 00 21 60 1e fcmp d8, d0
0x1839ff6b4: 4c fb ff 54 b.gt 0x1839ff61c
0x1839ff6b8: 00 00 80 52 mov w0, #0
0x1839ff6bc: fd 7b 43 a9 ldp fp, lr, [sp, #0x30]
0x1839ff6c0: f4 4f 42 a9 ldp x20, x19, [sp, #0x20]
0x1839ff6c4: f6 57 41 a9 ldp x22, x21, [sp, #0x10]
0x1839ff6c8: e9 23 c4 6c ldp d9, d8, [sp], #0x40
0x1839ff6cc: ff 23 03 d5 autibsp
0x1839ff6d0: c0 03 5f d6 ret
_SecTrustCopyCertificateChain:
0x183a03e98: 7f 23 03 d5 pacibsp
0x183a03e9c: ff c3 01 d1 sub sp, sp, #0x70
0x183a03ea0: f4 4f 05 a9 stp x20, x19, [sp, #0x50]
0x183a03ea4: fd 7b 06 a9 stp fp, lr, [sp, #0x60]
0x183a03ea8: fd 83 01 91 add fp, sp, #0x60
0x183a03eac: f3 03 00 aa mov x19, x0
0x183a03eb0: 60 04 00 b4 cbz x0, 0x183a03f3c
0x183a03eb4: f4 c3 00 91 add x20, sp, #0x30
0x183a03eb8: ff 53 03 a9 stp xzr, x20, [sp, #0x30]
0x183a03ebc: 68 0f 00 b0 adrp x8, 0x183bf0000
0x183a03ec0: 00 61 43 fd ldr d0, [x8, #0x6c0]
0x183a03ec4: e0 23 00 fd str d0, [sp, #0x40]
0x183a03ec8: ff 27 00 f9 str xzr, [sp, #0x48]
0x183a03ecc: e0 03 13 aa mov x0, x19
0x183a03ed0: 24 ed ff 97 bl _SecTrustEvaluateIfNecessary
0x183a03ed4: 60 46 40 f9 ldr x0, [x19, #0x88]
0x183a03ed8: e8 03 00 91 mov x8, sp
0x183a03edc: 30 2f 32 b0 adrp x16, 0x1e7fe8000
0x183a03ee0: 10 36 40 f9 ldr x16, [x16, #0x68] ; _ptr.__NSStackBlock__
0x183a03ee4: f1 03 08 aa mov x17, x8
0x183a03ee8: 31 5c ed f2 movk x17, #0x6ae1, lsl #0x30
0x183a03eec: 30 0a c1 da pacda x16, x17
0x183a03ef0: f0 03 00 f9 str x16, [sp]
0x183a03ef4: 69 0f 00 b0 adrp x9, 0x183bf0000
0x183a03ef8: 20 65 43 fd ldr d0, [x9, #0x6c8]
0x183a03efc: e0 07 00 fd str d0, [sp, #0x8]
0x183a03f00: 08 41 00 91 add x8, x8, #0x10
0x183a03f04: 69 09 36 90 adrp x9, 0x1efb2f000
0x183a03f08: 29 c1 2f 91 add x9, x9, #0xbf0 ; __block_descriptor_tmp.359
0x183a03f0c: 10 00 00 90 adrp x16, 0x183a03000
0x183a03f10: 10 42 3d 91 add x16, x16, #0xf50 ; ___SecTrustCopyCertificateChain_block_invoke
0x183a03f14: 10 01 c1 da pacia x16, x8
0x183a03f18: f0 27 01 a9 stp x16, x9, [sp, #0x10]
0x183a03f1c: f4 4f 02 a9 stp x20, x19, [sp, #0x20]
0x183a03f20: e1 03 00 91 mov x1, sp
0x183a03f24: 5b 8d 07 94 bl j__dispatch_sync
0x183a03f28: e8 1f 40 f9 ldr x8, [sp, #0x38]
0x183a03f2c: 13 0d 40 f9 ldr x19, [x8, #0x18]
0x183a03f30: e0 c3 00 91 add x0, sp, #0x30
0x183a03f34: 01 01 80 52 mov w1, #0x8
0x183a03f38: 1a 87 07 94 bl j___Block_object_dispose
0x183a03f3c: e0 03 13 aa mov x0, x19
0x183a03f40: fd 7b 46 a9 ldp fp, lr, [sp, #0x60]
0x183a03f44: f4 4f 45 a9 ldp x20, x19, [sp, #0x50]
0x183a03f48: ff c3 01 91 add sp, sp, #0x70
0x183a03f4c: ff 0f 5f d6 retab
___SecTrustCopyCertificateChain_block_invoke:
0x183a03f50: 7f 23 03 d5 pacibsp
0x183a03f54: f4 4f be a9 stp x20, x19, [sp, #-0x20]!
0x183a03f58: fd 7b 01 a9 stp fp, lr, [sp, #0x10]
0x183a03f5c: fd 43 00 91 add fp, sp, #0x10
0x183a03f60: f3 03 00 aa mov x19, x0
0x183a03f64: 08 14 40 f9 ldr x8, [x0, #0x28]
0x183a03f68: 00 25 40 f9 ldr x0, [x8, #0x48]
0x183a03f6c: 60 01 00 b4 cbz x0, 0x183a03f98
0x183a03f70: ec 82 07 94 bl j__CFArrayGetCount
0x183a03f74: 1f 04 00 f1 cmp x0, #0x1
0x183a03f78: 0b 01 00 54 b.lt 0x183a03f98
0x183a03f7c: 68 16 40 f9 ldr x8, [x19, #0x28]
0x183a03f80: 01 25 40 f9 ldr x1, [x8, #0x48]
0x183a03f84: 00 00 80 d2 mov x0, #0
0x183a03f88: d6 82 07 94 bl j__CFArrayCreateCopy
0x183a03f8c: 68 12 40 f9 ldr x8, [x19, #0x20]
0x183a03f90: 08 05 40 f9 ldr x8, [x8, #0x8]
0x183a03f94: 00 0d 00 f9 str x0, [x8, #0x18]
0x183a03f98: fd 7b 41 a9 ldp fp, lr, [sp, #0x10]
0x183a03f9c: f4 4f c2 a8 ldp x20, x19, [sp], #0x20
0x183a03fa0: ff 0f 5f d6 retab
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment