- 博客(13)
- 资源 (10)
- 收藏
- 关注
原创 UIWebView体系结构(六)UIWebView
UIWebView的实际成员变量都由UIWebViewInternal保存,UIWebViewInternal的声明如下:@interface UIWebViewInternal : NSObject{ UIScrollView *scroller; UIWebBrowserView *browserView; UICheckeredPatternView *ch
2013-04-16 16:28:49 10254
原创 UIWebView体系结构(五)_UIWebViewScrollView和UIWebScrollView
_UIWebViewScrollView的继承链为:_UIWebViewScrollView->UIWebScrollView->UIScrollView。通过反编译可以得到实现。_UIWebViewScrollView和UIWebScrollView的实现为:(代码好长,点此跳过)@interface UIWebScrollView : UIScrollView- (void)d
2013-04-10 17:43:46 8986
原创 UIWebView体系结构(四)UIWebBrowserView
UIWebBrowserView的声明如下:(代码好长,点此跳过)@interface UIWebBrowserView : UIWebDocumentView { UIWebFormAccessory *_accessory; NSObject *_input; DOMNode *_currentAssistedNode; DOMNode *_assis
2013-04-10 11:13:52 14830
原创 UIWebView体系结构(三)UIWebDocumentView和WebView
WebView是UIWebDocumentView最重要的组合对象,先讲WebView吧。WebView的声明如下:(代码好长,点此跳过)@interface WebView : WAKView{ WebViewPrivate *_private;}+ (void)registerViewClass:(Class)arg1 representationClass:(Cl
2013-04-10 10:07:47 11103 1
原创 UIWebView结构体系(二)UIWebTiledView和WAKWindow
UIWebTiledView是UIWebBrowserView->UIWebDocumentView->UIWebTiledView继承链中的老爷子,但这三个类的职能却是MVC的关系,UIWebBrowserView是Controller,UIWebDocumentView是Model,UIWebTiledView是View。(这也是我第一次见到这样的设计,很有意思)它的声明为: (代码好长,
2013-04-09 10:52:23 5226
原创 UIWebView体系结构(一)概貌
UIWebView属于UIKit,封装了WebKit.framework的WebView;WebView组合管理了WebCore.framework的Page,并提供了各种Clients;Page管理了Main Frame,Main Frame管理了sub Frame(FrameTree)。UIWebView层(点击图片查看全图):WebView层(点击图片查看全图
2013-04-08 12:49:27 9308 1
原创 xcode反汇编调试iOS模拟器程序(八)反汇编自己的代码来掌握规则
掌握了基本技巧后,基本上已不难理解所有的反汇编结果。授之以鱼不如授之以渔:通过观察自己写的代码的反汇编来掌握各种代码的反汇编结果,从而逆向推测系统代码的源码。调试自己写的代码时,可以不断切换查看源码和反汇编来定位代码执行到何处这里分别用两个很简单的C++和Objective-C类来做示例:class TestC { int m_var; public:
2013-04-07 16:20:54 8854
原创 xcode反汇编调试iOS模拟器程序(七)Debug与Release的区别
首先自己写一段代码,加好断点,分别在Build Configuration为Debug和Release下运行,查看反汇编- (void)test{ UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10.0, 20.0f, 30.1, 40)]; [button setTitle:@"test" f
2013-04-07 11:49:31 8829 1
原创 xcode反汇编调试iOS模拟器程序(六)函数出入口处的处理与局部变量
引用第二节的例子:函数的入口处,通常都是把esp的值传给ebp保存,然后下面的操作以ebp为基准做偏移量引用。因为esp作为栈指针,push和pop都会自动修改其值,所以用ebp可以不受影响。还有的常见情形是开头和结尾对应着subl $8, %espaddl $8, %esp这里体现着所谓的“局部变量在栈上分配”原则,说明本函数需要用8字节作为局部变量的保存空间。同时因为ebp已
2013-04-07 11:09:28 4687
原创 xcode反汇编调试iOS模拟器程序(五)调试objc_msgSend函数
反汇编调试objective-c,遇到最多的就是objc_msgSend这函数了,本节主要讲讲它的实现以及调试过程的一些技巧。以UIWebView为例子,看看它在loadRequest时做了什么。首先必须明白,原始代码中调用[uiWebViewInstance loadRequest:request]的实质是调用了objc_msgSend(uiWebViewInstance, "loa
2013-04-03 15:23:08 9859 4
原创 《IDA Pro权威指南》读书笔记
IDA 6.1 预破解版 种子下载地址 http://thepiratebay.se/torrent/7686769/。 如果不能下了,谷歌搜索 “Hex-Rays Ida Pro Advanced Edition v6.1.1 PreCracked”。Names窗口:F,常规函数L, 库函数I,导入的名称。与库函数的区别:没有代码G,命名代码D,数据A,字符串
2013-04-03 10:44:37 8952 1
原创 xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter
知道怎么查看后,先看看有什么实际应用,拿NSNotificationCenter来做实践吧。首先在某个容易进入的地方加断点,并停在那,例如main函数。在gdb或lldb输入命令,手工添加断点。如下图:输入的命令如下:b -[NSNotificationCenter addObserver:selector:name:object:]b -[NSNotificationCente
2013-04-02 17:05:37 5920 4
原创 gdb的info functions和lldb的image lookup的区别
两个命令都是搜索函数的。gdb的info functions是在内存中的symbol table查找,结果中的地址是内存里的地址,所以得到结果后,直接b(break,添加断点)这个地址,即可正确加断点。lldb的image lookup -s是在库文件中查找,结果中的地址是在library中的偏移地址,b这个地址是不能正确break的。正因为这个区别,gdb会比lldb更快得到结果。
2013-04-01 10:30:41 6115
航空适航功能危险性评估示例-FHA-Example
2024-05-24
RTCA DO-325 MOPS for AFGCS航空自动驾驶仪标准
2024-03-20
大话适航思考题参考答案
2024-03-20
支持SPDY协议的wireshark for linux 64bit
2014-03-06
Objective-C头文件导出工具class-dump
2013-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人