763 lines
23 KiB
Text
763 lines
23 KiB
Text
NAME=dyldcache loading
|
|
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS
|
|
CMDS=<<EOF
|
|
i
|
|
is
|
|
iS
|
|
iH
|
|
oml
|
|
pi 4@ sym._what_is_cool
|
|
EOF
|
|
EXPECT=<<EOF
|
|
fd 3
|
|
file bins/dyldcache/dyld_shared_cache_arm64-macOS
|
|
size 0x34000
|
|
humansz 208K
|
|
mode r-x
|
|
format dyldcache
|
|
iorw false
|
|
block 0x100
|
|
type production
|
|
arch arm
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x180000000
|
|
binsz 0x00034000
|
|
bintype N/A
|
|
bits 64
|
|
retguard false
|
|
class dyldcache
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid 857bce1a017e34649909d58ee21cf8dc
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang c
|
|
machine arm
|
|
maxopsz 4
|
|
minopsz 4
|
|
os macOS
|
|
cc N/A
|
|
pcalign 4
|
|
rpath N/A
|
|
subsys xnu
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static true
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE false
|
|
RELROCS false
|
|
NX false
|
|
nth paddr vaddr bind type size lib name
|
|
--------------------------------------------------------------
|
|
0 0x00004f60 0x180004f60 GLOBAL FUNC 0 _func_in_liba
|
|
1 0x00004f9c 0x180004f9c GLOBAL FUNC 0 _what_is_cool
|
|
0 0x00008fa0 0x180008fa0 GLOBAL FUNC 0 _func_in_libb
|
|
paddr size vaddr vsize align perm name type flags
|
|
--------------------------------------------------------------------------------------------------
|
|
0x00004f60 0x48 0x180004f60 0x48 0x0 -r-x lib_liba-1.0.dylib.0.__TEXT.__text
|
|
0x00004fa8 0x6 0x180004fa8 0x6 0x0 -r-x lib_liba-1.0.dylib.1.__TEXT.__cstring
|
|
0x00004fb0 0x50 0x180004fb0 0x50 0x0 -r-x lib_liba-1.0.dylib.2.__TEXT.__unwind_info
|
|
0x00008fa0 0x18 0x180008fa0 0x18 0x0 -r-x lib_libb-1.0.dylib.0.__TEXT.__text
|
|
0x00008fb8 0x48 0x180008fb8 0x48 0x0 -r-x lib_libb-1.0.dylib.1.__TEXT.__unwind_info
|
|
dyldcache:
|
|
version: "<940"
|
|
header:
|
|
magic: "dyld_v1 arm64"
|
|
mappingOffset: 0x140
|
|
mappingCount: 3
|
|
imagesOffset: 0x290
|
|
imagesCount: 2
|
|
dyldBaseAddress: 0x0
|
|
codeSignatureOffset: 0x30000
|
|
codeSignatureSize: 16384
|
|
slideInfoOffset: 0x0
|
|
slideInfoSize: 0
|
|
localSymbolsOffset: 0x0
|
|
localSymbolsSize: 0
|
|
uuid: "857bce1a017e34649909d58ee21cf8dc"
|
|
cacheType: "production"
|
|
branchPoolsOffset: 0x0
|
|
branchPoolsCount: 0
|
|
accelerateInfoAddr: 0
|
|
accelerateInfoSize: 0
|
|
imagesTextOffset: 0x2d0
|
|
imagesTextCount: 2
|
|
patchInfoAddr: 6509723956
|
|
patchInfoSize: 80
|
|
otherImageGroupAddrUnused: 0x0
|
|
otherImageGroupSizeUnused: 0
|
|
progClosuresAddr: 0x18402c000
|
|
progClosuresSize: 0
|
|
progClosuresTrieAddr: 0x18402c000
|
|
progClosuresTrieSize: 8
|
|
platform: 1
|
|
formatVersion: 10
|
|
dylibsExpectedOnDisk: 0
|
|
simulator: 0
|
|
locallyBuiltCache: 1
|
|
builtFromChainedFixups: 0
|
|
padding: 0x0
|
|
sharedRegionStart: 6442450944
|
|
sharedRegionSize: 4294967296
|
|
maxSlide: 2147385344
|
|
dylibsImageArrayAddr: 0x184028000
|
|
dylibsImageArraySize: 240
|
|
dylibsTrieAddr: 0x1840280f0
|
|
dylibsTrieSize: 68
|
|
otherImageArrayAddr: 0x0
|
|
otherImageArraySize: 0
|
|
otherTrieAddr: 0x0
|
|
otherTrieSize: 0
|
|
mappingWithSlideOffset: 0x1e8
|
|
mappingWithSlideCount: 3
|
|
slideInfo:
|
|
- start: 0x18000
|
|
end: 0x1c000
|
|
version: 2
|
|
slide: 0
|
|
page_starts_count: 4
|
|
page_extras_count: 0
|
|
delta_mask: 0xffff0000000000
|
|
value_mask: 0xff0000ffffffffff
|
|
value_add: 0
|
|
delta_shift: 38
|
|
page_size: 4096
|
|
images:
|
|
- uuid: "ccbf29d455693a1592314e14d41a542a"
|
|
address: 0x180001000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/liba-1.0.dylib"
|
|
name: "liba-1.0.dylib"
|
|
- uuid: "60d2f3d644a2391087503a56a3d8ff07"
|
|
address: 0x180005000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/libb-1.0.dylib"
|
|
name: "libb-1.0.dylib"
|
|
|
|
1 fd: 4 +0x00000000 0x180000000 - 0x180017fff r-x vmap.cache_map.0
|
|
2 fd: 4 +0x00018000 0x182018000 - 0x18201bfff r-- vmap.cache_map.1
|
|
3 fd: 4 +0x0001c000 0x18401c000 - 0x18402ffff r-- vmap.cache_map.2
|
|
adrp x0, 0x180004000
|
|
add x0, x0, 0xfa8
|
|
ret
|
|
ldpsw x18, x26, [x11, -0x30]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=dyldcache filter
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
env RZ_DYLDCACHE_FILTER=liba-1.0.dylib
|
|
o bins/dyldcache/dyld_shared_cache_arm64-macOS
|
|
i
|
|
is
|
|
iS
|
|
iH
|
|
oml
|
|
pi 4@ sym._what_is_cool
|
|
EOF
|
|
EXPECT=<<EOF
|
|
fd 3
|
|
file bins/dyldcache/dyld_shared_cache_arm64-macOS
|
|
size 0x34000
|
|
humansz 208K
|
|
mode r-x
|
|
format dyldcache
|
|
iorw false
|
|
block 0x100
|
|
type production
|
|
arch arm
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x180000000
|
|
binsz 0x00034000
|
|
bintype N/A
|
|
bits 64
|
|
retguard false
|
|
class dyldcache
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid 857bce1a017e34649909d58ee21cf8dc
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang c
|
|
machine arm
|
|
maxopsz 4
|
|
minopsz 4
|
|
os macOS
|
|
cc N/A
|
|
pcalign 4
|
|
rpath N/A
|
|
subsys xnu
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static true
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE false
|
|
RELROCS false
|
|
NX false
|
|
nth paddr vaddr bind type size lib name
|
|
--------------------------------------------------------------
|
|
0 0x00004f60 0x180004f60 GLOBAL FUNC 0 _func_in_liba
|
|
1 0x00004f9c 0x180004f9c GLOBAL FUNC 0 _what_is_cool
|
|
paddr size vaddr vsize align perm name type flags
|
|
--------------------------------------------------------------------------------------------------
|
|
0x00004f60 0x48 0x180004f60 0x48 0x0 -r-x lib_liba-1.0.dylib.0.__TEXT.__text
|
|
0x00004fa8 0x6 0x180004fa8 0x6 0x0 -r-x lib_liba-1.0.dylib.1.__TEXT.__cstring
|
|
0x00004fb0 0x50 0x180004fb0 0x50 0x0 -r-x lib_liba-1.0.dylib.2.__TEXT.__unwind_info
|
|
dyldcache:
|
|
version: "<940"
|
|
header:
|
|
magic: "dyld_v1 arm64"
|
|
mappingOffset: 0x140
|
|
mappingCount: 3
|
|
imagesOffset: 0x290
|
|
imagesCount: 2
|
|
dyldBaseAddress: 0x0
|
|
codeSignatureOffset: 0x30000
|
|
codeSignatureSize: 16384
|
|
slideInfoOffset: 0x0
|
|
slideInfoSize: 0
|
|
localSymbolsOffset: 0x0
|
|
localSymbolsSize: 0
|
|
uuid: "857bce1a017e34649909d58ee21cf8dc"
|
|
cacheType: "production"
|
|
branchPoolsOffset: 0x0
|
|
branchPoolsCount: 0
|
|
accelerateInfoAddr: 0
|
|
accelerateInfoSize: 0
|
|
imagesTextOffset: 0x2d0
|
|
imagesTextCount: 2
|
|
patchInfoAddr: 6509723956
|
|
patchInfoSize: 80
|
|
otherImageGroupAddrUnused: 0x0
|
|
otherImageGroupSizeUnused: 0
|
|
progClosuresAddr: 0x18402c000
|
|
progClosuresSize: 0
|
|
progClosuresTrieAddr: 0x18402c000
|
|
progClosuresTrieSize: 8
|
|
platform: 1
|
|
formatVersion: 10
|
|
dylibsExpectedOnDisk: 0
|
|
simulator: 0
|
|
locallyBuiltCache: 1
|
|
builtFromChainedFixups: 0
|
|
padding: 0x0
|
|
sharedRegionStart: 6442450944
|
|
sharedRegionSize: 4294967296
|
|
maxSlide: 2147385344
|
|
dylibsImageArrayAddr: 0x184028000
|
|
dylibsImageArraySize: 240
|
|
dylibsTrieAddr: 0x1840280f0
|
|
dylibsTrieSize: 68
|
|
otherImageArrayAddr: 0x0
|
|
otherImageArraySize: 0
|
|
otherTrieAddr: 0x0
|
|
otherTrieSize: 0
|
|
mappingWithSlideOffset: 0x1e8
|
|
mappingWithSlideCount: 3
|
|
slideInfo:
|
|
- start: 0x18000
|
|
end: 0x1c000
|
|
version: 2
|
|
slide: 0
|
|
page_starts_count: 4
|
|
page_extras_count: 0
|
|
delta_mask: 0xffff0000000000
|
|
value_mask: 0xff0000ffffffffff
|
|
value_add: 0
|
|
delta_shift: 38
|
|
page_size: 4096
|
|
images:
|
|
- uuid: "ccbf29d455693a1592314e14d41a542a"
|
|
address: 0x180001000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/liba-1.0.dylib"
|
|
name: "liba-1.0.dylib"
|
|
- uuid: "60d2f3d644a2391087503a56a3d8ff07"
|
|
address: 0x180005000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/libb-1.0.dylib"
|
|
name: "libb-1.0.dylib"
|
|
|
|
1 fd: 4 +0x00000000 0x180000000 - 0x180017fff r-x vmap.cache_map.0
|
|
2 fd: 4 +0x00018000 0x182018000 - 0x18201bfff r-- vmap.cache_map.1
|
|
3 fd: 4 +0x0001c000 0x18401c000 - 0x18402ffff r-- vmap.cache_map.2
|
|
adrp x0, 0x180004000
|
|
add x0, x0, 0xfa8
|
|
ret
|
|
ldpsw x18, x26, [x11, -0x30]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=dyldcache arm64 with objc
|
|
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS-objc
|
|
CMDS=<<EOF
|
|
i
|
|
echo --
|
|
ic
|
|
icf Test
|
|
icm Test
|
|
icf __NSUnrecognizedTaggedPointer
|
|
icm __NSUnrecognizedTaggedPointer
|
|
echo --
|
|
pxr 8 @ section.lib_libhello_1.0.dylib.11.__DATA_CONST.__objc_classlist
|
|
EOF
|
|
EXPECT=<<EOF
|
|
fd 3
|
|
file bins/dyldcache/dyld_shared_cache_arm64-macOS-objc
|
|
size 0x98000
|
|
humansz 608K
|
|
mode r-x
|
|
format dyldcache
|
|
iorw false
|
|
block 0x100
|
|
type production
|
|
arch arm
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x180000000
|
|
binsz 0x00098000
|
|
bintype N/A
|
|
bits 64
|
|
retguard false
|
|
class dyldcache
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid 0051c062211e3a669af7d590307d245c
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang objc
|
|
machine arm
|
|
maxopsz 4
|
|
minopsz 4
|
|
os macOS
|
|
cc N/A
|
|
pcalign 4
|
|
rpath N/A
|
|
subsys xnu
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static true
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE false
|
|
RELROCS false
|
|
NX false
|
|
--
|
|
address min max name super
|
|
---------------------------------------------------------------------------
|
|
0x182068040 0x1800189f8 0x180018b90 Test NSObject
|
|
0x18206a028 0x18003aa78 0x18003aa94 Object Object
|
|
0x18206a050 0x18206a050 0x18206a050 __IncompleteProtocol NSObject
|
|
0x18206a0a0 0x18003aa98 0x18003ab98 Protocol NSObject
|
|
0x18206a140 0x18003e8dc 0x18003e8e4 __NSUnrecognizedTaggedPointer NSObject
|
|
0x18206a0f0 0x18003cfc4 0x18003d788 NSObject NSObject
|
|
address index class flags name type
|
|
------------------------------------------------------------------------
|
|
---------- 0 Test isa struct objc_class *
|
|
0x182068038 1 Test Test::(ivar)someField i
|
|
address index class flags name
|
|
-----------------------------------------------------------
|
|
0x1800189f8 0 Test init
|
|
0x180018a1c 1 Test c someStaticMethod
|
|
0x180018a58 2 Test methodWithoutArgs
|
|
0x180018ab0 3 Test methodWithOneArg:
|
|
0x180018b0c 4 Test methodWithTwoArgs:secondArg:
|
|
0x180018b90 5 Test methodWithReturn
|
|
address index class flags name type
|
|
------------------------------------
|
|
address index class flags name
|
|
------------------------------------------------------------------
|
|
0x18003e8dc 0 __NSUnrecognizedTaggedPointer retain
|
|
0x18003e8e0 1 __NSUnrecognizedTaggedPointer release
|
|
0x18003e8e4 2 __NSUnrecognizedTaggedPointer autorelease
|
|
--
|
|
0x182064028 0x0000000182068068 h....... @ section.lib_libhello_1.0.dylib.11.__DATA_CONST.__objc_classlist 6476431464 lib_libhello-1.0.dylib.17.__DATA.__objc_data class Test R 0x182068040
|
|
EOF
|
|
RUN
|
|
|
|
NAME=dyldcache arm64e with objc
|
|
FILE=bins/dyldcache/dyld_shared_cache_arm64e-macOS-objc
|
|
CMDS=<<EOF
|
|
i
|
|
echo --
|
|
ic
|
|
icf Test
|
|
icm Test
|
|
icf NSObject
|
|
icm NSObject
|
|
echo --
|
|
pxr 8 @ section.lib_libhello_1.0.dylib.8.__DATA_CONST.__objc_classlist
|
|
EOF
|
|
EXPECT=<<EOF
|
|
fd 3
|
|
file bins/dyldcache/dyld_shared_cache_arm64e-macOS-objc
|
|
size 0xa8000
|
|
humansz 672K
|
|
mode r-x
|
|
format dyldcache
|
|
iorw false
|
|
block 0x100
|
|
type production
|
|
arch arm
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x180000000
|
|
binsz 0x000a8000
|
|
bintype N/A
|
|
bits 64
|
|
retguard false
|
|
class dyldcache
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid b3d4bd16c88a378c961fcfefb34344b9
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang objc
|
|
machine arm
|
|
maxopsz 4
|
|
minopsz 4
|
|
os macOS
|
|
cc N/A
|
|
pcalign 4
|
|
rpath N/A
|
|
subsys xnu
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static true
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE false
|
|
RELROCS false
|
|
NX false
|
|
--
|
|
address min max name super
|
|
---------------------------------------------------------------------------
|
|
0x184078000 0x180018a14 0x180018bbc Test NSObject
|
|
0x184079098 0x18003e224 0x18003e240 Object Object
|
|
0x1840790c0 0x1840790c0 0x1840790c0 __IncompleteProtocol NSObject
|
|
0x184079110 0x18003e244 0x18003e3b4 Protocol NSObject
|
|
0x1840791b0 0x180042ac8 0x180042ad0 __NSUnrecognizedTaggedPointer NSObject
|
|
0x184079160 0x180040eb8 0x180042ac4 NSObject NSObject
|
|
address index class flags name type
|
|
------------------------------------------------------------------------
|
|
---------- 0 Test isa struct objc_class *
|
|
0x18206c038 1 Test Test::(ivar)someField i
|
|
address index class flags name
|
|
-----------------------------------------------------------
|
|
0x180018a14 0 Test init
|
|
0x180018a38 1 Test c someStaticMethod
|
|
0x180018a78 2 Test methodWithoutArgs
|
|
0x180018ad4 3 Test methodWithOneArg:
|
|
0x180018b34 4 Test methodWithTwoArgs:secondArg:
|
|
0x180018bbc 5 Test methodWithReturn
|
|
address index class flags name type
|
|
------------------------------------------------------------------------------------------
|
|
0x18206d1c4 0 NSObject NSObject::(ivar)isa #
|
|
---------- 1 NSObject NSObject::(property)debugDescription
|
|
---------- 2 NSObject NSObject::(property)description
|
|
---------- 3 NSObject NSObject::(property)hash
|
|
---------- 4 NSObject NSObject::(property)superclass
|
|
---------- 5 NSObject isa struct objc_class *
|
|
address index class flags name
|
|
------------------------------------------------------------------------
|
|
0x180040eb8 0 NSObject c mutableCopyWithZone:
|
|
0x180040ebc 1 NSObject c mutableCopy
|
|
0x180040ec0 2 NSObject c copyWithZone:
|
|
0x180040ec4 3 NSObject c copy
|
|
0x180040ec8 4 NSObject c zone
|
|
0x180040ecc 5 NSObject c dealloc
|
|
0x180040ed0 6 NSObject c init
|
|
0x180040ed4 7 NSObject c allocWithZone:
|
|
0x180040ed8 8 NSObject c alloc
|
|
0x180040ee0 9 NSObject c retainCount
|
|
0x180040ee8 10 NSObject c autorelease
|
|
0x180040eec 11 NSObject c release
|
|
0x180040ef0 12 NSObject c retainWeakReference
|
|
0x180040ef8 13 NSObject c allowsWeakReference
|
|
0x180040f00 14 NSObject c _isDeallocating
|
|
0x180040f08 15 NSObject c _tryRetain
|
|
0x180040f10 16 NSObject c retain
|
|
0x180040f14 17 NSObject c new
|
|
0x180040f64 18 NSObject c debugDescription
|
|
0x180040f70 19 NSObject c description
|
|
0x180040f78 20 NSObject c forwardingTargetForSelector:
|
|
0x180040f80 21 NSObject c forwardInvocation:
|
|
0x180040fd4 22 NSObject c methodSignatureForSelector:
|
|
0x180040fec 23 NSObject c instanceMethodSignatureForSelector:
|
|
0x180041004 24 NSObject c performSelector:withObject:withObject:
|
|
0x18004106c 25 NSObject c performSelector:withObject:
|
|
0x1800410cc 26 NSObject c performSelector:
|
|
0x18004111c 27 NSObject c doesNotRecognizeSelector:
|
|
0x180041160 28 NSObject c resolveInstanceMethod:
|
|
0x180041168 29 NSObject c resolveClassMethod:
|
|
0x180041170 30 NSObject c methodForSelector:
|
|
0x1800411ac 31 NSObject c instanceMethodForSelector:
|
|
0x1800411e8 32 NSObject c isProxy
|
|
0x1800411f0 33 NSObject c isFault
|
|
0x1800411f8 34 NSObject c isEqual:
|
|
0x180041204 35 NSObject c hash
|
|
0x180041208 36 NSObject c conformsToProtocol:
|
|
0x180041284 37 NSObject c respondsToSelector:
|
|
0x180041294 38 NSObject c instancesRespondToSelector:
|
|
0x1800412a4 39 NSObject c isAncestorOfObject:
|
|
0x180041320 40 NSObject c isSubclassOfClass:
|
|
0x180041370 41 NSObject c isKindOfClass:
|
|
0x1800413c4 42 NSObject c isMemberOfClass:
|
|
0x1800413d8 43 NSObject c superclass
|
|
0x180041410 44 NSObject c class
|
|
0x180041414 45 NSObject c self
|
|
0x180041418 46 NSObject c initialize
|
|
0x18004141c 47 NSObject mutableCopy
|
|
0x18004142c 48 NSObject copy
|
|
0x18004143c 49 NSObject zone
|
|
0x180041440 50 NSObject finalize
|
|
0x180041444 51 NSObject dealloc
|
|
0x18004144c 52 NSObject init
|
|
0x180041450 53 NSObject retainCount
|
|
0x1800415d4 54 NSObject autorelease
|
|
0x180041adc 55 NSObject release
|
|
0x180042250 56 NSObject retainWeakReference
|
|
0x18004225c 57 NSObject allowsWeakReference
|
|
0x180042280 58 NSObject _isDeallocating
|
|
0x18004233c 59 NSObject _tryRetain
|
|
0x180042658 60 NSObject retain
|
|
0x180042664 61 NSObject debugDescription
|
|
0x180042670 62 NSObject description
|
|
0x180042678 63 NSObject forwardingTargetForSelector:
|
|
0x180042680 64 NSObject forwardInvocation:
|
|
0x1800426d4 65 NSObject methodSignatureForSelector:
|
|
0x1800426ec 66 NSObject performSelector:withObject:withObject:
|
|
0x180042754 67 NSObject performSelector:withObject:
|
|
0x1800427b4 68 NSObject performSelector:
|
|
0x180042804 69 NSObject doesNotRecognizeSelector:
|
|
0x180042848 70 NSObject methodForSelector:
|
|
0x180042884 71 NSObject isProxy
|
|
0x18004288c 72 NSObject isFault
|
|
0x180042894 73 NSObject isEqual:
|
|
0x1800428a0 74 NSObject hash
|
|
0x1800428a4 75 NSObject conformsToProtocol:
|
|
0x180042928 76 NSObject respondsToSelector:
|
|
0x180042974 77 NSObject isKindOfClass:
|
|
0x1800429ec 78 NSObject isMemberOfClass:
|
|
0x180042a20 79 NSObject superclass
|
|
0x180042a74 80 NSObject class
|
|
0x180042ac4 81 NSObject self
|
|
--
|
|
0x182068000 0x0000000184078028 (....... @ section.lib_libhello_1.0.dylib.8.__DATA_CONST.__objc_classlist 6510051368 lib_libhello-1.0.dylib.18.__AUTH.__objc_data class Test R 0x184078000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=dyldcache CVE-2022-1244
|
|
FILE=bins/dyldcache/CVE-2022-1244
|
|
CMDS=<<EOF
|
|
aaa
|
|
q
|
|
EOF
|
|
EXPECT=
|
|
RUN
|
|
|
|
NAME=dyldcache 1042.1 header
|
|
FILE=bins/dyldcache/dyld_shared_cache_arm64-macOS-1042.1
|
|
CMDS=<<EOF
|
|
i
|
|
is
|
|
iS
|
|
iH
|
|
oml
|
|
EOF
|
|
EXPECT=<<EOF
|
|
fd 3
|
|
file bins/dyldcache/dyld_shared_cache_arm64-macOS-1042.1
|
|
size 0x20000
|
|
humansz 128K
|
|
mode r-x
|
|
format dyldcache
|
|
iorw false
|
|
block 0x100
|
|
type development
|
|
arch arm
|
|
cpu N/A
|
|
features N/A
|
|
baddr 0x180000000
|
|
binsz 0x00020000
|
|
bintype N/A
|
|
bits 64
|
|
retguard false
|
|
class dyldcache
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid c0a042e3c0db394caa455cd7e767643f
|
|
intrp N/A
|
|
laddr 0x00000000
|
|
lang c++
|
|
machine arm
|
|
maxopsz 4
|
|
minopsz 4
|
|
os macOS
|
|
cc N/A
|
|
pcalign 4
|
|
rpath N/A
|
|
subsys xnu
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static true
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE false
|
|
RELROCS false
|
|
NX false
|
|
nth paddr vaddr bind type size lib name
|
|
--------------------------------------------------------------------------
|
|
0 0x00007fb4 0x180007fb4 GLOBAL FUNC 0 _i_am_libSystem
|
|
0 0x0000bfb0 0x18000bfb0 GLOBAL FUNC 0 _say_hello
|
|
0 0x0000ff38 0x18000ff38 GLOBAL FUNC 0 dyld3::entryVectorForDyld
|
|
1 0x0000ff34 0x18000ff34 GLOBAL FUNC 0 _i_am_libdyld
|
|
0 0x00013fb4 0x180013fb4 GLOBAL FUNC 0 _i_am_libsystem_kernel
|
|
paddr size vaddr vsize align perm name type flags
|
|
-------------------------------------------------------------------------------------------------------------
|
|
0x00007fb4 0x4 0x180007fb4 0x4 0x0 -r-x lib_libSystem.B.dylib.0.__TEXT.__text
|
|
0x00007fb8 0x48 0x180007fb8 0x48 0x0 -r-x lib_libSystem.B.dylib.1.__TEXT.__unwind_info
|
|
0x0000bfb0 0x8 0x18000bfb0 0x8 0x0 -r-x lib_libhello.dylib.0.__TEXT.__text
|
|
0x0000bfb8 0x48 0x18000bfb8 0x48 0x0 -r-x lib_libhello.dylib.1.__TEXT.__unwind_info
|
|
0x0000ff34 0x4 0x18000ff34 0x4 0x0 -r-x system_libdyld.dylib.0.__TEXT.__text
|
|
0x0000ff38 0x80 0x18000ff38 0x80 0x0 -r-x system_libdyld.dylib.1.__TEXT.__const
|
|
0x0000ffb8 0x48 0x18000ffb8 0x48 0x0 -r-x system_libdyld.dylib.2.__TEXT.__unwind_info
|
|
0x00013fb4 0x4 0x180013fb4 0x4 0x0 -r-x system_libsystem_kernel.dylib.0.__TEXT.__text
|
|
0x00013fb8 0x48 0x180013fb8 0x48 0x0 -r-x system_libsystem_kernel.dylib.1.__TEXT.__unwind_info
|
|
dyldcache:
|
|
version: "1042.1"
|
|
header:
|
|
magic: "dyld_v1 arm64"
|
|
mappingOffset: 0x200
|
|
mappingCount: 2
|
|
imagesOffset: 0x2e0
|
|
imagesCount: 4
|
|
dyldBaseAddress: 0x0
|
|
codeSignatureOffset: 0x1c000
|
|
codeSignatureSize: 16384
|
|
slideInfoOffset: 0x0
|
|
slideInfoSize: 0
|
|
localSymbolsOffset: 0x0
|
|
localSymbolsSize: 0
|
|
uuid: "c0a042e3c0db394caa455cd7e767643f"
|
|
cacheType: "development"
|
|
branchPoolsOffset: 0x0
|
|
branchPoolsCount: 0
|
|
dyldInCacheMH: 0x0
|
|
dyldInCacheEntry: 0x0
|
|
imagesTextOffset: 0x360
|
|
imagesTextCount: 4
|
|
patchInfoAddr: 6442532976
|
|
patchInfoSize: 264
|
|
otherImageGroupAddrUnused: 0x0
|
|
otherImageGroupSizeUnused: 0
|
|
progClosuresAddr: 0x0
|
|
progClosuresSize: 0
|
|
progClosuresTrieAddr: 0x0
|
|
progClosuresTrieSize: 0
|
|
platform: 1
|
|
formatVersion: 0
|
|
dylibsExpectedOnDisk: 0
|
|
simulator: 0
|
|
locallyBuiltCache: 1
|
|
builtFromChainedFixups: 0
|
|
padding: 0x0
|
|
sharedRegionStart: 6442450944
|
|
sharedRegionSize: 131072
|
|
maxSlide: 2147401728
|
|
dylibsImageArrayAddr: 0x0
|
|
dylibsImageArraySize: 0
|
|
dylibsTrieAddr: 0x180014000
|
|
dylibsTrieSize: 112
|
|
otherImageArrayAddr: 0x0
|
|
otherImageArraySize: 0
|
|
otherTrieAddr: 0x0
|
|
otherTrieSize: 0
|
|
mappingWithSlideOffset: 0x270
|
|
mappingWithSlideCount: 2
|
|
dylibsPBLStateArrayAddrUnused: 0x0
|
|
dylibsPBLSetAddr: 0x180014178
|
|
programsPBLSetPoolAddr: 0x180014588
|
|
programsPBLSetPoolSize: 16384
|
|
programTrieAddr: 0x180018588
|
|
programTrieSize: 88
|
|
osVersion: 851968
|
|
altPlatform: 0
|
|
altOsVersion: 0
|
|
swiftOptsOffset: 0x0
|
|
swiftOptsSize: 0
|
|
subCacheArrayOffset: 0x3e0
|
|
subCacheArrayCount: 0
|
|
symbolFileUUID: "00000000000000000000000000000000"
|
|
rosettaReadOnlyAddr: 0x0
|
|
rosettaReadOnlySize: 0
|
|
rosettaReadWriteAddr: 0x0
|
|
rosettaReadWriteSize: 0
|
|
cacheSubType: 0
|
|
objcOptsOffset: 0x0
|
|
objcOptsSize: 0
|
|
cacheAtlasOffset: 0x0
|
|
cacheAtlasSize: 0
|
|
dynamicDataOffset: 0x1c000
|
|
dynamicDataMaxSize: 16384
|
|
images:
|
|
- uuid: "e0a310e1c61e3b289c5df43f04e71a44"
|
|
address: 0x180004000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/libSystem.B.dylib"
|
|
name: "libSystem.B.dylib"
|
|
- uuid: "f2c8e54bd02937e69928edd8b4bbec63"
|
|
address: 0x180008000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/libhello.dylib"
|
|
name: "libhello.dylib"
|
|
- uuid: "439351ae77ca308ebf1da32729a79709"
|
|
address: 0x18000c000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/system/libdyld.dylib"
|
|
name: "libdyld.dylib"
|
|
- uuid: "4ce071b5dd373397aca699d517bdb6e7"
|
|
address: 0x180010000
|
|
textSegmentSize: 16384
|
|
path: "/usr/lib/system/libsystem_kernel.dylib"
|
|
name: "libsystem_kernel.dylib"
|
|
|
|
1 fd: 3 +0x00000000 0x180000000 - 0x180013fff r-x fmap.cache_map.0
|
|
2 fd: 3 +0x00014000 0x180014000 - 0x18001bfff r-- fmap.cache_map.1
|
|
EOF
|
|
RUN
|