我正试图理解NSHTTPCookieStorage的内部结构,以便能够将某些方法从Safari的cookie存储中分离出来,据我所知,这是不可能的:
我在这里找到了头文件:
/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSHTTPCookieStorage.h这给我的信息不多,只是实现应该在
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation我查看了那个库中的符号名,但我只发现这些名称提到了NSHTTPCookieStorage:
$ nm /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookiestorage
000000000030cbb5 S $ld$add$os10.5$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbb6 S $ld$add$os10.5$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbb7 S $ld$add$os10.6$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbb8 S $ld$add$os10.6$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbb9 S $ld$add$os10.7$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbba S $ld$add$os10.7$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbbb S $ld$add$os10.8$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbbc S $ld$add$os10.8$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbbd S $ld$add$os10.9$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbbe S $ld$add$os10.9$_OBJC_METACLASS_$_NSHTTPCookieStorage
I _OBJC_CLASS_$_NSHTTPCookieStorage (indirect for _OBJC_CLASS_$_NSHTTPCookieStorage)
U _OBJC_CLASS_$_NSHTTPCookieStorage
I _OBJC_METACLASS_$_NSHTTPCookieStorage (indirect for _OBJC_METACLASS_$_NSHTTPCookieStorage)
U _OBJC_METACLASS_$_NSHTTPCookieStorage根本没有办法。做一个库的类转储--这是我能找到的所有提到"Cookie“的地方:
# class-dump /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookie
@interface NSHTTPCookie (NSHTTPCookiePortCoding)事情开始变得有点绝望,所以我调用了字符串!
$ strings /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookie
setHTTPShouldHandleCookies:
NSHTTPCookiePortCoding使用方法swizzling,我围绕NSHTTPCookieStorage的sharedHTTPCookieStorage包装了一个方法,然后尝试使用XCode调试器输入它,看看是否至少可以到达该方法的程序集,但是XCode会跳过对该类方法的任何调用,即使我告诉它进入。
看起来这门课甚至都不在那里。这个类是在哪里定义的?我怎么才能找到它的内部呢?
发布于 2017-02-28 12:28:14
NSHTTPCookieStorage类在CFNetwork.framework中定义。
https://stackoverflow.com/questions/29165204
复制相似问题