在OD中如果知道对象指针,如何找该对象的ClassName
来源:互联网 发布:javascript 实现继承 编辑:程序博客网 时间:2024/05/23 22:21
我们知道,Obj.ClassName是一个函数而不是一个属性,而该函数的代码是:
class function TObject.ClassName: ShortString;
begin
Result := PShortString(PPointer(Integer(Self) + vmtClassName)^)^;
end;
对应的汇编代码优化之后非常简单:
mov ebx,eax
mov eax,[ebx]
mov ebx,[eax-2C]
这里假设对象指针存放在eax寄存器中。
这样在OD中招ClassName就很方便了:在eax寄存器上右键,选择数据窗口中跟随,此时的数据窗口的第一行一列就是eax的内容,用鼠标拖动选中四个字节的内容(例如B0 55 40 00),右键,选择数据窗口中跟随,我们得到此时数据窗口中第一行的地址是004055B0,拿这个地址减去2C,我们得到405584,还是在数据窗口中,按下ctrl+g,输入0405584,此时数据窗口中的第一行第一列显示的就是405584地址处的内容,选择这四个字节,右键,选择数据窗口中跟随,就可以找到ClassName了!
其实004055B0-2C是在004055B0的上面第三行第二列,拖动一下鼠标也可以到达。
- 在OD中如果知道对象指针,如何找该对象的ClassName
- [找所有classname相同的对象]
- 如何在脚本中调用该对象的component
- 已知一指针p,你可以确定该指针是否指向一个有效的对象吗?如果可以,如何确定?如果不可以,请说明原因。
- 在OD中如何找delphi写的程序的name属性?
- 当对象类型是一个接口的时候,在Eclipse中如果跳转到该接口对应的实现类
- 如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉
- Delphi中避免使用ClassName判断对象的类型
- Delphi中避免使用ClassName判断对象的类型
- Delphi中避免使用ClassName判断对象的类型
- Delphi中避免使用ClassName判断对象的类型
- 如何知道该实例对象是否存在属性—propertyName
- android通过注册的className新建对象
- Effective STL 第7条:如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉
- JavaScript中如何知道一个对象里面的全部属性
- C和指针之函数之在数组中找特定元素并返回指向该位置的指针
- 几何画板中该如何选择对象
- morphia向数据库中存入对象时,会默认添加className的问题
- ASP.NET访止匿名访问
- linux 2.6内核+根文件系统的移植实验
- 课程 Java Web程序设计12: JSP标记库
- 课程 Java Web程序设计13: MVC构架
- 比刘翔还快电脑这样设置后|一点通
- 在OD中如果知道对象指针,如何找该对象的ClassName
- 课程 Java Web程序设计14: JSP 2.0表达式语言
- ubuntu下java,eclipse,mysql,myeclipse,tomcat配置终极篇
- Oracle全套日期用法
- 课程 Java Web程序设计15: 使用和部署Web应用
- B2C电子商务项目的启动策划思路
- FusionCharts 的XML标签属性
- [转]Ubuntu配置DNS服务器--bind(已测试)
- 海辉软件董事长孙振耀:中国外包定能后来居上