利用IDA和LLDB探索WebCore的C++类的继承关系

开刀的类名叫 PluginWidgetIOS,利用lldb可以得到:

(lldb) image lookup -r -s PluginWidgetIOS
7 symbols match the regular expression 'PluginWidgetIOS' in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/PrivateFrameworks/WebKit.framework/WebKit:
        Address: WebKit[0x0003a5a0] (WebKit.__TEXT.__text + 231680)
        Summary: WebKit`PluginWidgetIOS::~PluginWidgetIOS()        Address: WebKit[0x0003a5b0] (WebKit.__TEXT.__text + 231696)
        Summary: WebKit`PluginWidgetIOS::~PluginWidgetIOS()        Address: WebKit[0x0003a6f0] (WebKit.__TEXT.__text + 232016)
        Summary: WebKit`PluginWidgetIOS::platformLayer() const        Address: WebKit[0x0003a750] (WebKit.__TEXT.__text + 232112)
        Summary: WebKit`PluginWidgetIOS::willProvidePluginLayer() const        Address: WebKit[0x0003a7b0] (WebKit.__TEXT.__text + 232208)
        Summary: WebKit`PluginWidgetIOS::attachPluginLayer()        Address: WebKit[0x0003a810] (WebKit.__TEXT.__text + 232304)
        Summary: WebKit`PluginWidgetIOS::detachPluginLayer()        Address: WebKit[0x001335e0] (WebKit.__DATA.__data + 560)
        Summary: vtable for PluginWidgetIOS

其中有用的信息是:

Address: WebKit[0x001335e0] (WebKit.__DATA.__data + 560)
        Summary: vtable for PluginWidgetIOS

用IDA打开WebCore的静态库,goto(快捷键g) vtable所在的地址 0x1335e0,可以看到:

__data:001335E0 ; `vtable for'PluginWidgetIOS
__data:001335E0 __ZTV15PluginWidgetIOS db    0          ; DATA XREF: __nl_symbol_ptr:__ZTV15PluginWidgetIOS_ptr
时间: 2024-10-23 15:43:41

利用IDA和LLDB探索WebCore的C++类的继承关系的相关文章

JavaScript利用构造函数和原型的方式模拟C#类的功能

 这篇文章主要介绍了JavaScript利用构造函数和原型的方式模拟C#类的功能.需要的朋友可以过来参考下,希望对大家有所帮助 代码如下:     //构造函数         function person(name, age) {             this.name = name;             this.age = age;         }         //定义person原型,原型里的属性可以被自定义对象引用         person.prototype =

利用大数据技术探索“数字公民”创新

全球化.信息化促进社会现代化的同时,也对国家治理体系提出了新要求,治理能力成为国家竞争力的关键.保障和改善民生是国家推进改革发展的重要着力点,政府迫切希望能为百姓提供完善的公共服务,百姓也迫切希望能享用精细化.主动化.人性化的服务,如何实现服务的供需平衡在不断考验我们,从目前效果来看,推力不足,呈胶着状态,公共服务和社会治理面临困境. <国家信息化发展战略纲要><促进大数据发展行动纲要>等文件提出:"以信息化驱动现代化为主线,推进国家治理体系和治理能力现代化",

利用C++模板,代替虚函数实现类的静态多态性

熟悉模板编程的朋友或许听到过这个技巧或者模式:Barton-Nackmann 技巧或者称 奇异 循环模板模式(Curiously Recurring Template Prattern). 其实在 <c++ 编程语 言>这本bible 书里,在模板那章提到过一个很奇妙的类的实现,用的就是这个技术.当时 ,我就被C++模板技术叹为观止.近期在学boost库时偶然碰到了这个技巧,同时在写一个类 时引发了我的思考,这里就利用这个技巧来实现,静态多态函数(我自己发明的叫法,呵呵 ). 我们知道C++的

PHP 5.0对象模型深度探索之定义一个类

当你声明一个类,你需要列出对象应有的所有变量和所有函数-被称为属性和方法.列表1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数.列表2中显示了如何在一个类中定义三个属性和两个方法. 列表1 class Name extends Another Class { Access Variable Declaration Access Function Declaration } 列表2 //定义一个跟踪用户的类 class User { //属性 public $name; pr

利用配置文件实现SQL Server与Oralce访问类的转换

现在微软提供了一种方法,也是微软示例PetShop提供的解决方式;即使用Assembly反射加载访问数据库的类. 首先,创建一个空白解决方案,名字为:TestChangeDataBase,然后添加一个C#类库工程,名字叫DBHelper,然后在类库工程里创建一个接口IDAL,具体代码如下: namespace DBHelper { public interface IDAL { DataSet GetDataSet(string query); } } 保存后,关闭这个接口文件;再创建一个类文件

JavaScript利用构造函数和原型的方式模拟C#类的功能_javascript技巧

复制代码 代码如下:      //构造函数        function person(name, age) {            this.name = name;            this.age = age;        }        //定义person原型,原型里的属性可以被自定义对象引用        person.prototype = {            getName: function () {                return this.

利用MS AJAX注册Javascript命名空间并创建类_实用技巧

一.为页面添加一个ScriptManager控件. 二.注册命名空间: Type.registerNamespace("Demo"); 三.为类添加构造函数.属性.方法. Demo.sample=function(){} 四.注册类. Demo.Person.registerClass('Demo.sample ', null, Sys.IDisposable); 下面是一个具体的实例: Namespace.js Type.registerNamespace("Demo&qu

IDA反汇编/反编译静态分析iOS模拟器程序(七)识别类的信息

C++类的实质是个结构体.先举个例: class TestClass { int m_val1; int m_val2; public: int getVal1(); int getVal2(); }; int TestClass::getVal1() { return m_val1; } int TestClass::getVal2() { return m_val2; } 反编译两个函数,得到的是 int __cdecl TestClass__getVal1(int a1) { return

wxWidgets初学者导引(4)——wxWidgets学习资料及利用方法指导

wxWidgets初学者导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 4 wxWidgets学习资料及利用方法指导 初学者常苦于找不到参考资料.实际上,是找不到,不是没有.真正有用的资料,常常也就在手边,只是不知道.有能力熟练地使用一切能用得着的资料,这是水平提高的指标之一.这种能力,同样,也是在实践中获得,而不是有谁为你讲一堂课就能得