2238 字
11 分钟
去符号与恢复符号
一、去符号
我们在做逆向的时候,App的符号都被去掉了,所以我们需要对符号进行符号恢复。 去符号会使应用包更小。
动态库:保留全局符号
1.1 设置去符号的类型

Deployment Postprocessing- YES: 编译也去符号
- NO: 只在打包时去符号
Strip StyleAll Symbols- 所有符号
Non-Global Symbols- 除了全局符号
Debugging Symbols- 调试符号
1.2 去符号前后的MachO
a.去符号之前

b.去符号之后


只剩下间接符号和一个全局、一个本地
1.3 函数的实现地址

- 这里是函数的实现地址
- 间接符号的地址这里全是0,调用的时候会先去找桩
- 详情参考
- 去符号之前可以看到全局符和本地符号的地址
二、符号类型
3.1 全局符号
我们定义的基本都是全集符号
3.2 本地符号
static 是本地符号
3.3 命令查看类型

objdump --macho -t 你的macho文件名
SymbolBind:SYMBOL TABLE:0000000100005f18 l F __TEXT,__text -[ViewController viewDidLoad]0000000100005f88 l F __TEXT,__text -[ViewController test]0000000100005fd0 l F __TEXT,__text -[AppDelegate application:didFinishLaunchingWithOptions:]000000010000604c l F __TEXT,__text -[AppDelegate application:configurationForConnectingSceneSession:options:]000000010000614c l F __TEXT,__text -[AppDelegate application:didDiscardSceneSessions:]000000010000625c l F __TEXT,__text -[SceneDelegate scene:willConnectToSession:options:]00000001000062f8 l F __TEXT,__text -[SceneDelegate sceneDidDisconnect:]0000000100006344 l F __TEXT,__text -[SceneDelegate sceneDidBecomeActive:]0000000100006390 l F __TEXT,__text -[SceneDelegate sceneWillResignActive:]00000001000063dc l F __TEXT,__text -[SceneDelegate sceneWillEnterForeground:]0000000100006428 l F __TEXT,__text -[SceneDelegate sceneDidEnterBackground:]0000000100006474 l F __TEXT,__text -[SceneDelegate window]0000000100006498 l F __TEXT,__text -[SceneDelegate setWindow:]00000001000064d4 l F __TEXT,__text -[SceneDelegate .cxx_destruct]00000001000080c0 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_NSObject00000001000080c8 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UIApplicationDelegate00000001000080d0 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UISceneDelegate00000001000080d8 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UIWindowSceneDelegate000000010000c068 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_ViewController000000010000c0b0 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_ViewController000000010000c0e8 l O __DATA,__objc_const __OBJC_CLASS_RO_$_ViewController000000010000c130 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000c300 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000c320 l O __DATA,__objc_const __OBJC_$_PROP_LIST_NSObject000000010000c368 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000c408 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UIApplicationDelegate000000010000c420 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIApplicationDelegate000000010000c938 l O __DATA,__objc_const __OBJC_$_PROP_LIST_UIApplicationDelegate000000010000c950 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UIApplicationDelegate000000010000cb00 l O __DATA,__objc_const __OBJC_CLASS_PROTOCOLS_$_AppDelegate000000010000cb18 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_AppDelegate000000010000cb60 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_AppDelegate000000010000cbb0 l O __DATA,__objc_const __OBJC_$_PROP_LIST_AppDelegate000000010000cc08 l O __DATA,__objc_const __OBJC_CLASS_RO_$_AppDelegate000000010000cc50 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000ce20 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000ce40 l O __DATA,__objc_const __OBJC_$_PROP_LIST_NSObject000000010000ce88 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000cf28 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UISceneDelegate000000010000cf40 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UISceneDelegate000000010000d068 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UISceneDelegate000000010000d0c8 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UIWindowSceneDelegate000000010000d0e0 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIWindowSceneDelegate000000010000d160 l O __DATA,__objc_const __OBJC_$_PROP_LIST_UIWindowSceneDelegate000000010000d178 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UIWindowSceneDelegate000000010000d1a0 l O __DATA,__objc_const __OBJC_CLASS_PROTOCOLS_$_SceneDelegate000000010000d1b8 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_SceneDelegate000000010000d200 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_SceneDelegate000000010000d2e0 l O __DATA,__objc_const __OBJC_$_INSTANCE_VARIABLES_SceneDelegate000000010000d308 l O __DATA,__objc_const __OBJC_$_PROP_LIST_SceneDelegate000000010000d360 l O __DATA,__objc_const __OBJC_CLASS_RO_$_SceneDelegate000000010000d3e0 l O __DATA,__objc_ivar _OBJC_IVAR_$_SceneDelegate._window000000010000d4d8 l O __DATA,__data __dyld_private000000010000d4e0 w O __DATA,__data __OBJC_PROTOCOL_$_NSObject000000010000d540 w O __DATA,__data __OBJC_PROTOCOL_$_UIApplicationDelegate000000010000d5a0 w O __DATA,__data __OBJC_PROTOCOL_$_UISceneDelegate000000010000d600 w O __DATA,__data __OBJC_PROTOCOL_$_UIWindowSceneDelegate0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* ViewController.m0000000060a0b161 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/ViewController.o0000000100005f18 d *UND*0000000100005f18 d *UND* -[ViewController viewDidLoad]0000000000000070 d *UND*0000000000000070 d *UND*0000000100005f88 d *UND*0000000100005f88 d *UND* -[ViewController test]000000000000002c d *UND*000000000000002c d *UND*0000000100005fb4 d *UND*0000000100005fb4 d *UND* _testLocalFunction000000000000001c d *UND*000000000000001c d *UND*000000010000c068 d *UND* __OBJC_METACLASS_RO_$_ViewController000000010000c0b0 d *UND* __OBJC_$_INSTANCE_METHODS_ViewController000000010000c0e8 d *UND* __OBJC_CLASS_RO_$_ViewController0000000000000000 d *UND* _OBJC_CLASS_$_ViewController0000000000000000 d *UND* _OBJC_METACLASS_$_ViewController0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* AppDelegate.m0000000060a0b161 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/AppDelegate.o0000000100005fd0 d *UND*0000000100005fd0 d *UND* -[AppDelegate application:didFinishLaunchingWithOptions:]000000000000007c d *UND*000000000000007c d *UND*000000010000604c d *UND*000000010000604c d *UND* -[AppDelegate application:configurationForConnectingSceneSession:options:]0000000000000100 d *UND*0000000000000100 d *UND*000000010000614c d *UND*000000010000614c d *UND* -[AppDelegate application:didDiscardSceneSessions:]0000000000000074 d *UND*0000000000000074 d *UND*0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_NSObject0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UIApplicationDelegate000000010000c130 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000c300 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000c320 d *UND* __OBJC_$_PROP_LIST_NSObject000000010000c368 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000c408 d *UND* __OBJC_$_PROTOCOL_REFS_UIApplicationDelegate000000010000c420 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIApplicationDelegate000000010000c938 d *UND* __OBJC_$_PROP_LIST_UIApplicationDelegate000000010000c950 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UIApplicationDelegate000000010000cb00 d *UND* __OBJC_CLASS_PROTOCOLS_$_AppDelegate000000010000cb18 d *UND* __OBJC_METACLASS_RO_$_AppDelegate000000010000cb60 d *UND* __OBJC_$_INSTANCE_METHODS_AppDelegate000000010000cbb0 d *UND* __OBJC_$_PROP_LIST_AppDelegate000000010000cc08 d *UND* __OBJC_CLASS_RO_$_AppDelegate0000000000000000 d *UND* _OBJC_METACLASS_$_AppDelegate0000000000000000 d *UND* _OBJC_CLASS_$_AppDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_NSObject0000000000000000 d *UND* __OBJC_PROTOCOL_$_UIApplicationDelegate0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* main.m0000000060a0b161 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/main.o00000001000061c0 d *UND*00000001000061c0 d *UND* _main000000000000009c d *UND*000000000000009c d *UND*0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* SceneDelegate.m0000000060a0b161 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/SceneDelegate.o000000010000625c d *UND*000000010000625c d *UND* -[SceneDelegate scene:willConnectToSession:options:]000000000000009c d *UND*000000000000009c d *UND*00000001000062f8 d *UND*00000001000062f8 d *UND* -[SceneDelegate sceneDidDisconnect:]000000000000004c d *UND*000000000000004c d *UND*0000000100006344 d *UND*0000000100006344 d *UND* -[SceneDelegate sceneDidBecomeActive:]000000000000004c d *UND*000000000000004c d *UND*0000000100006390 d *UND*0000000100006390 d *UND* -[SceneDelegate sceneWillResignActive:]000000000000004c d *UND*000000000000004c d *UND*00000001000063dc d *UND*00000001000063dc d *UND* -[SceneDelegate sceneWillEnterForeground:]000000000000004c d *UND*000000000000004c d *UND*0000000100006428 d *UND*0000000100006428 d *UND* -[SceneDelegate sceneDidEnterBackground:]000000000000004c d *UND*000000000000004c d *UND*0000000100006474 d *UND*0000000100006474 d *UND* -[SceneDelegate window]0000000000000024 d *UND*0000000000000024 d *UND*0000000100006498 d *UND*0000000100006498 d *UND* -[SceneDelegate setWindow:]000000000000003c d *UND*000000000000003c d *UND*00000001000064d4 d *UND*00000001000064d4 d *UND* -[SceneDelegate .cxx_destruct]000000000000003c d *UND*000000000000003c d *UND*0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UISceneDelegate0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UIWindowSceneDelegate000000010000cc50 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000ce20 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000ce40 d *UND* __OBJC_$_PROP_LIST_NSObject000000010000ce88 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000cf28 d *UND* __OBJC_$_PROTOCOL_REFS_UISceneDelegate000000010000cf40 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UISceneDelegate000000010000d068 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UISceneDelegate000000010000d0c8 d *UND* __OBJC_$_PROTOCOL_REFS_UIWindowSceneDelegate000000010000d0e0 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIWindowSceneDelegate000000010000d160 d *UND* __OBJC_$_PROP_LIST_UIWindowSceneDelegate000000010000d178 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UIWindowSceneDelegate000000010000d1a0 d *UND* __OBJC_CLASS_PROTOCOLS_$_SceneDelegate000000010000d1b8 d *UND* __OBJC_METACLASS_RO_$_SceneDelegate000000010000d200 d *UND* __OBJC_$_INSTANCE_METHODS_SceneDelegate000000010000d2e0 d *UND* __OBJC_$_INSTANCE_VARIABLES_SceneDelegate000000010000d308 d *UND* __OBJC_$_PROP_LIST_SceneDelegate000000010000d360 d *UND* __OBJC_CLASS_RO_$_SceneDelegate0000000000000000 d *UND* _OBJC_IVAR_$_SceneDelegate._window0000000000000000 d *UND* _OBJC_METACLASS_$_SceneDelegate0000000000000000 d *UND* _OBJC_CLASS_$_SceneDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_UISceneDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_UIWindowSceneDelegate0000000000000000 d *UND*000000010000d460 g O __DATA,__objc_data _OBJC_CLASS_$_AppDelegate000000010000d4b0 g O __DATA,__objc_data _OBJC_CLASS_$_SceneDelegate000000010000d3e8 g O __DATA,__objc_data _OBJC_CLASS_$_ViewController000000010000d438 g O __DATA,__objc_data _OBJC_METACLASS_$_AppDelegate000000010000d488 g O __DATA,__objc_data _OBJC_METACLASS_$_SceneDelegate000000010000d410 g O __DATA,__objc_data _OBJC_METACLASS_$_ViewController0000000100000000 g F __TEXT,__text __mh_execute_header00000001000061c0 g F __TEXT,__text _main0000000100005fb4 g F __TEXT,__text _testLocalFunction0000000000000000 *UND* _NSLog0000000000000000 *UND* _NSStringFromClass0000000000000000 *UND* _OBJC_CLASS_$_UIResponder0000000000000000 *UND* _OBJC_CLASS_$_UISceneConfiguration0000000000000000 *UND* _OBJC_CLASS_$_UIViewController0000000000000000 *UND* _OBJC_METACLASS_$_NSObject0000000000000000 *UND* _OBJC_METACLASS_$_UIResponder0000000000000000 *UND* _OBJC_METACLASS_$_UIViewController0000000000000000 *UND* _UIApplicationMain0000000000000000 *UND* ___CFConstantStringClassReference0000000000000000 *UND* __objc_empty_cache0000000000000000 *UND* _objc_alloc0000000000000000 *UND* _objc_autoreleasePoolPop0000000000000000 *UND* _objc_autoreleasePoolPush0000000000000000 *UND* _objc_autoreleaseReturnValue0000000000000000 *UND* _objc_msgSend0000000000000000 *UND* _objc_msgSendSuper20000000000000000 *UND* _objc_opt_class0000000000000000 *UND* _objc_release0000000000000000 *UND* _objc_retainAutoreleasedReturnValue0000000000000000 *UND* _objc_storeStrong0000000000000000 *UND* dyld_stub_binder➜ 11 clear➜ 11 objdump --macho -t SymbolBindSymbolBind:SYMBOL TABLE:0000000100005f10 l F __TEXT,__text -[ViewController viewDidLoad]0000000100005f80 l F __TEXT,__text -[ViewController test]0000000100005fc8 l F __TEXT,__text -[AppDelegate application:didFinishLaunchingWithOptions:]0000000100006044 l F __TEXT,__text -[AppDelegate application:configurationForConnectingSceneSession:options:]0000000100006144 l F __TEXT,__text -[AppDelegate application:didDiscardSceneSessions:]0000000100006254 l F __TEXT,__text -[SceneDelegate scene:willConnectToSession:options:]00000001000062f0 l F __TEXT,__text -[SceneDelegate sceneDidDisconnect:]000000010000633c l F __TEXT,__text -[SceneDelegate sceneDidBecomeActive:]0000000100006388 l F __TEXT,__text -[SceneDelegate sceneWillResignActive:]00000001000063d4 l F __TEXT,__text -[SceneDelegate sceneWillEnterForeground:]0000000100006420 l F __TEXT,__text -[SceneDelegate sceneDidEnterBackground:]000000010000646c l F __TEXT,__text -[SceneDelegate window]0000000100006490 l F __TEXT,__text -[SceneDelegate setWindow:]00000001000064cc l F __TEXT,__text -[SceneDelegate .cxx_destruct]00000001000080c0 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_NSObject00000001000080c8 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UIApplicationDelegate00000001000080d0 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UISceneDelegate00000001000080d8 w O __DATA_CONST,__objc_protolist __OBJC_LABEL_PROTOCOL_$_UIWindowSceneDelegate000000010000c068 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_ViewController000000010000c0b0 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_ViewController000000010000c0e8 l O __DATA,__objc_const __OBJC_CLASS_RO_$_ViewController000000010000c130 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000c300 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000c320 l O __DATA,__objc_const __OBJC_$_PROP_LIST_NSObject000000010000c368 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000c408 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UIApplicationDelegate000000010000c420 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIApplicationDelegate000000010000c938 l O __DATA,__objc_const __OBJC_$_PROP_LIST_UIApplicationDelegate000000010000c950 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UIApplicationDelegate000000010000cb00 l O __DATA,__objc_const __OBJC_CLASS_PROTOCOLS_$_AppDelegate000000010000cb18 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_AppDelegate000000010000cb60 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_AppDelegate000000010000cbb0 l O __DATA,__objc_const __OBJC_$_PROP_LIST_AppDelegate000000010000cc08 l O __DATA,__objc_const __OBJC_CLASS_RO_$_AppDelegate000000010000cc50 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000ce20 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000ce40 l O __DATA,__objc_const __OBJC_$_PROP_LIST_NSObject000000010000ce88 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000cf28 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UISceneDelegate000000010000cf40 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UISceneDelegate000000010000d068 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UISceneDelegate000000010000d0c8 l O __DATA,__objc_const __OBJC_$_PROTOCOL_REFS_UIWindowSceneDelegate000000010000d0e0 l O __DATA,__objc_const __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIWindowSceneDelegate000000010000d160 l O __DATA,__objc_const __OBJC_$_PROP_LIST_UIWindowSceneDelegate000000010000d178 l O __DATA,__objc_const __OBJC_$_PROTOCOL_METHOD_TYPES_UIWindowSceneDelegate000000010000d1a0 l O __DATA,__objc_const __OBJC_CLASS_PROTOCOLS_$_SceneDelegate000000010000d1b8 l O __DATA,__objc_const __OBJC_METACLASS_RO_$_SceneDelegate000000010000d200 l O __DATA,__objc_const __OBJC_$_INSTANCE_METHODS_SceneDelegate000000010000d2e0 l O __DATA,__objc_const __OBJC_$_INSTANCE_VARIABLES_SceneDelegate000000010000d308 l O __DATA,__objc_const __OBJC_$_PROP_LIST_SceneDelegate000000010000d360 l O __DATA,__objc_const __OBJC_CLASS_RO_$_SceneDelegate000000010000d3e0 l O __DATA,__objc_ivar _OBJC_IVAR_$_SceneDelegate._window000000010000d4d8 l O __DATA,__data __dyld_private000000010000d4e0 w O __DATA,__data __OBJC_PROTOCOL_$_NSObject000000010000d540 w O __DATA,__data __OBJC_PROTOCOL_$_UIApplicationDelegate000000010000d5a0 w O __DATA,__data __OBJC_PROTOCOL_$_UISceneDelegate000000010000d600 w O __DATA,__data __OBJC_PROTOCOL_$_UIWindowSceneDelegate0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* ViewController.m0000000060a0b259 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/ViewController.o0000000100005f10 d *UND*0000000100005f10 d *UND* -[ViewController viewDidLoad]0000000000000070 d *UND*0000000000000070 d *UND*0000000100005f80 d *UND*0000000100005f80 d *UND* -[ViewController test]000000000000002c d *UND*000000000000002c d *UND*0000000100005fac d *UND*0000000100005fac d *UND* _testGlobalFunction000000000000001c d *UND*000000000000001c d *UND*000000010000c068 d *UND* __OBJC_METACLASS_RO_$_ViewController000000010000c0b0 d *UND* __OBJC_$_INSTANCE_METHODS_ViewController000000010000c0e8 d *UND* __OBJC_CLASS_RO_$_ViewController0000000000000000 d *UND* _OBJC_CLASS_$_ViewController0000000000000000 d *UND* _OBJC_METACLASS_$_ViewController0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* AppDelegate.m0000000060a0b259 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/AppDelegate.o0000000100005fc8 d *UND*0000000100005fc8 d *UND* -[AppDelegate application:didFinishLaunchingWithOptions:]000000000000007c d *UND*000000000000007c d *UND*0000000100006044 d *UND*0000000100006044 d *UND* -[AppDelegate application:configurationForConnectingSceneSession:options:]0000000000000100 d *UND*0000000000000100 d *UND*0000000100006144 d *UND*0000000100006144 d *UND* -[AppDelegate application:didDiscardSceneSessions:]0000000000000074 d *UND*0000000000000074 d *UND*0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_NSObject0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UIApplicationDelegate000000010000c130 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000c300 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000c320 d *UND* __OBJC_$_PROP_LIST_NSObject000000010000c368 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000c408 d *UND* __OBJC_$_PROTOCOL_REFS_UIApplicationDelegate000000010000c420 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIApplicationDelegate000000010000c938 d *UND* __OBJC_$_PROP_LIST_UIApplicationDelegate000000010000c950 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UIApplicationDelegate000000010000cb00 d *UND* __OBJC_CLASS_PROTOCOLS_$_AppDelegate000000010000cb18 d *UND* __OBJC_METACLASS_RO_$_AppDelegate000000010000cb60 d *UND* __OBJC_$_INSTANCE_METHODS_AppDelegate000000010000cbb0 d *UND* __OBJC_$_PROP_LIST_AppDelegate000000010000cc08 d *UND* __OBJC_CLASS_RO_$_AppDelegate0000000000000000 d *UND* _OBJC_METACLASS_$_AppDelegate0000000000000000 d *UND* _OBJC_CLASS_$_AppDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_NSObject0000000000000000 d *UND* __OBJC_PROTOCOL_$_UIApplicationDelegate0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* main.m0000000060a0b259 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/main.o00000001000061b8 d *UND*00000001000061b8 d *UND* _main000000000000009c d *UND*000000000000009c d *UND*0000000000000000 d *UND*0000000000000000 d *UND* /Users/RyukieW/RyukieSamaProject/Study/逆向/Code/SymbolBind/SymbolBind/0000000000000000 d *UND* SceneDelegate.m0000000060a0b259 d *UND* /Users/RyukieW/Library/Developer/Xcode/DerivedData/SymbolBind-bhluvjpsukewfxgsouyiwqlmcntk/Build/Intermediates.noindex/SymbolBind.build/Debug-iphoneos/SymbolBind.build/Objects-normal/arm64/SceneDelegate.o0000000100006254 d *UND*0000000100006254 d *UND* -[SceneDelegate scene:willConnectToSession:options:]000000000000009c d *UND*000000000000009c d *UND*00000001000062f0 d *UND*00000001000062f0 d *UND* -[SceneDelegate sceneDidDisconnect:]000000000000004c d *UND*000000000000004c d *UND*000000010000633c d *UND*000000010000633c d *UND* -[SceneDelegate sceneDidBecomeActive:]000000000000004c d *UND*000000000000004c d *UND*0000000100006388 d *UND*0000000100006388 d *UND* -[SceneDelegate sceneWillResignActive:]000000000000004c d *UND*000000000000004c d *UND*00000001000063d4 d *UND*00000001000063d4 d *UND* -[SceneDelegate sceneWillEnterForeground:]000000000000004c d *UND*000000000000004c d *UND*0000000100006420 d *UND*0000000100006420 d *UND* -[SceneDelegate sceneDidEnterBackground:]000000000000004c d *UND*000000000000004c d *UND*000000010000646c d *UND*000000010000646c d *UND* -[SceneDelegate window]0000000000000024 d *UND*0000000000000024 d *UND*0000000100006490 d *UND*0000000100006490 d *UND* -[SceneDelegate setWindow:]000000000000003c d *UND*000000000000003c d *UND*00000001000064cc d *UND*00000001000064cc d *UND* -[SceneDelegate .cxx_destruct]000000000000003c d *UND*000000000000003c d *UND*0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UISceneDelegate0000000000000000 d *UND* __OBJC_LABEL_PROTOCOL_$_UIWindowSceneDelegate000000010000cc50 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_NSObject000000010000ce20 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_NSObject000000010000ce40 d *UND* __OBJC_$_PROP_LIST_NSObject000000010000ce88 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_NSObject000000010000cf28 d *UND* __OBJC_$_PROTOCOL_REFS_UISceneDelegate000000010000cf40 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UISceneDelegate000000010000d068 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UISceneDelegate000000010000d0c8 d *UND* __OBJC_$_PROTOCOL_REFS_UIWindowSceneDelegate000000010000d0e0 d *UND* __OBJC_$_PROTOCOL_INSTANCE_METHODS_OPT_UIWindowSceneDelegate000000010000d160 d *UND* __OBJC_$_PROP_LIST_UIWindowSceneDelegate000000010000d178 d *UND* __OBJC_$_PROTOCOL_METHOD_TYPES_UIWindowSceneDelegate000000010000d1a0 d *UND* __OBJC_CLASS_PROTOCOLS_$_SceneDelegate000000010000d1b8 d *UND* __OBJC_METACLASS_RO_$_SceneDelegate000000010000d200 d *UND* __OBJC_$_INSTANCE_METHODS_SceneDelegate000000010000d2e0 d *UND* __OBJC_$_INSTANCE_VARIABLES_SceneDelegate000000010000d308 d *UND* __OBJC_$_PROP_LIST_SceneDelegate000000010000d360 d *UND* __OBJC_CLASS_RO_$_SceneDelegate0000000000000000 d *UND* _OBJC_IVAR_$_SceneDelegate._window0000000000000000 d *UND* _OBJC_METACLASS_$_SceneDelegate0000000000000000 d *UND* _OBJC_CLASS_$_SceneDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_UISceneDelegate0000000000000000 d *UND* __OBJC_PROTOCOL_$_UIWindowSceneDelegate0000000000000000 d *UND*000000010000d460 g O __DATA,__objc_data _OBJC_CLASS_$_AppDelegate000000010000d4b0 g O __DATA,__objc_data _OBJC_CLASS_$_SceneDelegate000000010000d3e8 g O __DATA,__objc_data _OBJC_CLASS_$_ViewController000000010000d438 g O __DATA,__objc_data _OBJC_METACLASS_$_AppDelegate000000010000d488 g O __DATA,__objc_data _OBJC_METACLASS_$_SceneDelegate000000010000d410 g O __DATA,__objc_data _OBJC_METACLASS_$_ViewController0000000100000000 g F __TEXT,__text __mh_execute_header00000001000061b8 g F __TEXT,__text _main0000000100005fac g F __TEXT,__text _testGlobalFunction0000000000000000 *UND* _NSLog0000000000000000 *UND* _NSStringFromClass0000000000000000 *UND* _OBJC_CLASS_$_UIResponder0000000000000000 *UND* _OBJC_CLASS_$_UISceneConfiguration0000000000000000 *UND* _OBJC_CLASS_$_UIViewController0000000000000000 *UND* _OBJC_METACLASS_$_NSObject0000000000000000 *UND* _OBJC_METACLASS_$_UIResponder0000000000000000 *UND* _OBJC_METACLASS_$_UIViewController0000000000000000 *UND* _UIApplicationMain0000000000000000 *UND* ___CFConstantStringClassReference0000000000000000 *UND* __objc_empty_cache0000000000000000 *UND* _objc_alloc0000000000000000 *UND* _objc_autoreleasePoolPop0000000000000000 *UND* _objc_autoreleasePoolPush0000000000000000 *UND* _objc_autoreleaseReturnValue0000000000000000 *UND* _objc_msgSend0000000000000000 *UND* _objc_msgSendSuper20000000000000000 *UND* _objc_opt_class0000000000000000 *UND* _objc_release0000000000000000 *UND* _objc_retainAutoreleasedReturnValue0000000000000000 *UND* _objc_storeStrong0000000000000000 *UND* dyld_stub_binderl- 本地符号
g- 全局符号
三、恢复符号表的线索
虽然符号表中没有了符号,但是在MachO中的类的方法列表中还是有的!
3.1 类名
在TEXT段__objc_classname中:

3.2 方法名
在TEXT段__objc_methname中:

四、符号表恢复
4.1 脚本
- 将MachO文件放入目录中
- 执行脚本
./restore-symbol MachO文件名 -o MachO输出文件名
=========== Start =============2021-05-16 15:11:40.712 restore-symbol[97858:6671327] Unknown load command: 0x00000032Scan OC method in mach-o-file.Scan OC method finish.=========== Finish ============- 在用MachOView查看符号表,发现在后面已经恢复了!
- 严谨的说是添加了符号
- 由于是基于Runtime的,动态派发的可以恢复。
- 对比发现文件大小也增大了
