当前位置: 首页 > news >正文

动易 网站文章网站服务器是指什么

动易 网站文章,网站服务器是指什么,怎么推广自己,新网网站空间购买对于RTTI结构的资料真的屈指可数,类的逆向也一直是一个不好弄的问题.对此我只想贡献我的一份力量。 文中我不会分析类的内存布局,因为有很多资料已经分析的挺好的了(见参考资料)。但是现有我能找到的资料对RTTI结构的表述不完整,或者表述模糊不清,参考Clang的部分源码后#…对于RTTI结构的资料真的屈指可数,类的逆向也一直是一个不好弄的问题.对此我只想贡献我的一份力量。 文中我不会分析类的内存布局,因为有很多资料已经分析的挺好的了(见参考资料)。但是现有我能找到的资料对RTTI结构的表述不完整,或者表述模糊不清,参考Clang的部分源码后我在他们的基础上,补充,扩展了一下RTTI的结构信息.但是仍然也有一部分我也不甚清楚,见谅。首先给出RTTI结构的完整结构图(图中-是表示两个结构有关联关系): VfTable包含ClassVfTable,类的虚表指针vfptr指向VfTable4的位置,即vfptrVfTable4ClassVfTable我是为了统一一下才这样表示的.在类虚表位置-4的地方,也就是ClassVfTable-4.指向CompleteObjectLocator结构. 现在对每一个结构进行简单的解释.CompleteObjectLocator{0 isImageRelative: DWORD4 VfOffsetToTop: DWORD8 VFPtrOffset: DWORD12 pTypeDescriptor: TypeDescriptor*16 pClassHierarchyDescriptor: ClassHierarchyDescriptor *[20 -pSelf: DWORD *] //只在X64时存在,指向自身}isImageRelative: RTTI结构中的所有指针是否是与映象基地址相关,这是X64与X32的区别.当是X32时为0,指针含义没有变.但在X64时为1,此时RTTI结构中所有指针不再是指针,而是相对于基地址的偏移量.VfOffsetToTop: vftable 在类中的偏移VFPtrOffset:  这个含义比较复杂.他是在有虚基类被继承多次,并且虚基类的(纯)虚函数被多次覆写时存在.是虚表指针相对与最近的一个虚基类的偏移.TypeDescriptor{0 pVFtable: DWORD* //指向虚表4 Spare: DWORD     //存储运行时数据,静态分析时总是0.8 pTypeInfoString: char* //指向类名.}ClassHierarchyDescriptor{0 Unknown: DWORD  0  //我没查到它的信息.4 ClassHierarchyFlags: DWORD8 NumBaseClass: DWORD //基类数量,包括自己,并且对同一基类多次继承(菱形继承)会重复计算的.12 pBaseClassDescriptorArray: DWORD** //指向BaseClassDescriptor指针数组}说一下ClassHierarchyFlags的含义.定义枚举如下:enum ClassHierarchyDescriptorFlags{00252     HasBranchingHierarchy  1,00253     HasVirtualBranchingHierarchy  2,00254     HasAmbiguousBases  400255   };ClassHierarchyFlags是根据类是否是多继承,是否是多虚继承,是否有纯虚基类来对上述枚举量进行异或组合.例如ClassHierarchyFlagsHasBranchingHierarchy|HasVirtualBranchingHierarchy,表示的含义已经很清楚了.还剩最后一个结构了.BaseClassDescriptor{0 pTypeDescriptor: DWORD TypeDescriptor*4 NumContainedBaseClass: DWORD  //基类数量,包括自己,并且对同一基类多次继承(菱形继承)会重复计算的.8 OffsetInVBase: DWORD   //vftable 在虚基类中的偏移12 VBPtrOffset: DWORD  //vbtable(包含所有虚基类的vftable的偏移的一个表)的偏移.此处参考后面列出的参考资料[1].16 OffsetInVBTable: DWORD  //类vftable指针在vbtable中的偏移.20 BaseClassHierarchyFlags: DWORD24 pClassHierarchyDescriptor: ClassHierarchyDescriptor*}对于BaseClassHierarchyFlags定义如下枚举:enum BaseClassDescriptorFlags{IsPrivateOnPath  1 | 8,IsAmbiguous  2,IsPrivate  4,IsVirtual  16,HasHierarchyDescriptor  64};BaseClassHierarchyFlags是根据自己是否被私有继承,是否是纯虚类,是否对基类私有继承,是否为虚基类,是否有HierarchyDescriptor结构对上述枚举量进行异或组合.我是在ms2013上进行验证的.我不敢保证Microsoft的编译器RTTI结构一直都没有变化.文中还有一些地方解释并不清楚,见谅.要是Microsoft把RTTI结构公开就没这么多事儿了. 参考资料: 1.Reversing C - Black Hat: https://www.blackhat.com/presentations/bh-dc-07/Sabanal_Yason/Paper/bh-dc-07-Sabanal_Yason-WP.pdf 2.openrce  igorsk 写的:http://www.openrce.org/articles/full_view/23 3.C反汇编与逆向分析技术揭秘. 4.clang源代码: http://clang.llvm.org/doxygen/MicrosoftRTTI_8cpp_source.html 5.https://msdn.microsoft.com/en-us/library/ms879782.aspx
http://www.zqtcl.cn/news/639225/

相关文章:

  • 唯一做性视频的网站在线股票交易网站开发
  • 做二手的网站有哪些湛江小程序公司
  • 定制型网站建设wordpress md风格
  • 网站建设与推广的实训报告万网会员中心登录入口
  • 做网站如何推销电子商务类型的网站
  • 部署个人网站经典广告推广词
  • 海口模板建站定制南宁品牌网站设计公司
  • 江西网站设计方案网站通栏广告代码
  • 外包网站建设公司网站建设公司的销售好做吗
  • lol做任务领头像网站营销型网站重要特点是?
  • 设计师35岁后的出路嘉兴做网站优化的公司
  • 网站首页包含的内容网站网站注册
  • 企业网站改版建议北京市在建工程项目查询
  • 广州通和通信建设有限公司网站myeclipse怎么做网页
  • 最好的做网站公司有哪些泰安人才网官网登录
  • 怎么用wordpress修改网站源码辽宁省营商环境建设局网站
  • 做网站数据库怎么做wordpress video主题
  • 田园综合体建设网站梧州网站建设有哪些
  • 公司做网站的流程茂名网站建设公司
  • 徐州专业网站建设公司wordpress tag找不到
  • 网站互动推广织梦网站主页代码在后台怎么改
  • 福永自适应网站建设微信小程序功能开发
  • 制作一个动态企业网站狠狠做最新网站
  • 手机建立一个免费网站网页设计师培训方法
  • 广州工信部网站查询wordpress mysql类
  • 销售网站内容设计书籍管理网站建设需求文档
  • 韩国网站如何切换中文域名如何备案教程
  • 网站维护的基本概念二维码生成器使用方法
  • 公司网站建设模块简介搭建自己的网站需要什么
  • 想做个网站怎么做给国外网站做流量