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

新网站怎么快速收录必做沈阳微信网站建设

新网站怎么快速收录必做,沈阳微信网站建设,珠海关键词优化平台,网站建设进度表 下载静态搜索iOS动态链接函数的调用位置 可执行文件格式mach-O,是在苹果的操作系统 macOS 和 iOS 上使用的一种二进制文件格式。 在一些iOS安全扫描中#xff0c;可能存在需要获取函数具体调用位置的需求#xff0c;能指导用户更精确的定位漏洞。 现在以NSLog函数为例#xff…静态搜索iOS动态链接函数的调用位置 可执行文件格式mach-O,是在苹果的操作系统 macOS 和 iOS 上使用的一种二进制文件格式。 在一些iOS安全扫描中可能存在需要获取函数具体调用位置的需求能指导用户更精确的定位漏洞。 现在以NSLog函数为例用静态方式搜索macho中动态链接函数的具体调用位置。 目标 搜索应用macho中调用NSLog函数的具体位置。 思路 整个搜索过程是一个解析macho文件的过程把二进制数据解析为合适的数据结构。 用到了macho中多个部分 String Table Symbol Table Dynamic Symbol Table Section64(TEXT,stubs) Section64(TEXT,text) 具体步骤 1、先找到Symbol Talbe 和 String Table在macho文件中的位置 在Load Commands中找到LC_SYMTAB,能确定StringTable的offset和size也能找到Symbol Table的offset和Number Symbol Table Offset 是 0x18c478 Number of Symbols 是 0x9a2d String Table offset 是 0x2273b0 String Table Size 是 0x108d58 因为每条symbol数据长度是16个字节也就是0x10 所以 Symbol Table 的 size 是 0x9a2d*0x10 0x9A2D0 Symbol Table起始地址是 0x18c478 结束地址是 0x18c478 0x9A2D0 0x226748 String Table 的起始地址是 0x2273b0 结束地址是 0x2273b0 0x108d58 0x330108 因为字符串的长度不固定在String Table中的每条数据的长度不固定 在读取二进制中的String Table数据时可以用’\x00’作为字符串的分隔符。 2、遍历String Table找到_NSLog 可以先读取macho中的String Table数据用’\x00’作为分隔符生成字符串数组 遍历字符串数组判断每条数据是否等于”_NSLog”。 在 0x23331b 位置找到了 _NSLog机器码“5F4E534C6F6700”就是”_NSLog\n”字符串。 4900316进制是 0xBF6B是当前字符串的索引号暂定为 strTab_index 49003。 索引号49003是从String Table的起始地址 0x2273b0 开始计算第49003个字节 0x2273b0 49003 0x23331B刚好是 _NSLog的起始地址。 3、根据步骤2中的490030xBF6B可以在SymbolTable中搜索对应的符号 在MachOView中能看到地址 0x00224988 对应的就是 _NSLog。 如何通过索引号49003找到匹配的符号表数据呢 在步骤1中已知 Symbol Table起始地址是 0x18c478 Symbol Table结束地址是 0x226748。 在这个macho中单条Symbol Table的数据大小是0x10。 仔Symbol Table中第38993条数据的前四个字节的值是0xBF6B,也就是49003 与String Table上_NSLog字符串的索引号相同所以这条数据就对应”_NSLog”: 38993是当前数据在Symbol Table中的索引号暂定为 symTab_index 38993 0x18c478 38993 * 0x10 0x224988 正好是当前数据的地址。 4、在Dynamic Symbol Table中根据symTab_index查找数据 在Macho中的Load Commands下的 LC_DYSYMTAB 中能确定Indirect Symbols的位置 起始地址0x226748有 794 条数据每条数据大小是0x4。 遍历Indirect Symbols中的每一条数据第111条数据中存储的是38993 所以这条数据对应的就是”_NSLog”设置 dySymTab_index 111 0x226748 111*0x4 0x226904 a name”5、在 Section64(TEXT,stubs)节查找NSLog函数” class”reference-link”5、在 Section64(TEXT,stubs)节查找NSLog函数 在Mach-O文件中Section64(TEXT,stubs)节存储的是用于进行间接跳转indirect jumps的存根stubs。这些存根是为了支持懒加载和符号解析的过程。具体来说_stubs 节通常包含指向实际目标函数或符号的跳转指令。 在动态链接时如果一个函数或符号的地址尚未被解析链接器会在__stubs节中放置一个跳转指令该指令在运行时会被替换为实际地址。这有助于在程序执行过程中进行动态解析和加载。 在Load Commands 中能找到 Section64(TEXT,stubs)节的信息 offset 是 0xAE518 size 是 0xEE8 所以 Section64(TEXT,stubs)节的位置 起始地址是 0xAE518 结束地址是 0xAE518 0xEE8 0xAF400 每条数据长度是 0xC 解析Section64(TEXT,stubs)的二进制数据结构每条数据大小是0xC 因为步骤4中已知 dySymTab_index 111所以找到第111条数据 0xAE518 111*0xC 0xAEA4C 地址0xAEA4C 存储的是NSLog符号的跳转指令。 在Section64(TEXT,text)节中凡是要调用NSLog函数都会执行arm指令”bl #0xAEA4C”。 a name”6、在 Section64(TEXT,text)节查找调用指令”bl #0xAEA4C”” class”reference-link”6、在 Section64(TEXT,text)节查找调用指令”bl #0xAEA4C” 在Load Commands 中能找到 Section64(TEXT,stubs)节的信息 offset 是 0x5C64 size 是 0xA88B4 所以 Section64(TEXT,text)节的信息 起始地址是 0x5C64 结束地址是 0x5C64 0xA88B4 0xAE518 查找到部分调用 NSLog 函数的指令 使用Capstone库把Section64(TEXT,text)中的机器码反编译成arm汇编指令 可以批量比较每一条指令是否是”bl #0xAEA4C”就能知道代码中调用NSLog函数的具体位置。
http://www.dnsts.com.cn/news/192542.html

相关文章:

  • 定制网站的价格低婚纱网站源码
  • 莱芜市城乡建设局网站建立网站很重要的要素是什么
  • 炫酷表白网站在线制作毕业设计h5网站制作
  • 网站定制开发什么意思百度搜索一下百度
  • 高要网站建设公司专业网站制作团队
  • 带会员功能的网站6wordpress
  • 求个网站你们知道的中山手机网站建设哪家好
  • 网站建设需要包含什么wordpress 加载 蛮
  • 广东网站建设商家河南省城乡和建设厅网站首页
  • 河北网站seo开源php建站系统
  • 35互联网站建设起零网站建设
  • 怎么在自己电脑上建网站泰安招聘网上市场
  • 网站开发_超速云广告策划案
  • app软件网站建设网站域名验证功能上线
  • 做网站的专业叫什么石家庄net网站开发
  • 珠海市网站建设公司黑马程序员上海校区
  • 在网站做直播2345的网址
  • 用路由器做网站广告公司是干什么的
  • 石家庄网页网站制作优秀网页设计作品图片
  • 网站有哪几种装潢设计怎么样
  • 驾校官方网站 模板网站设计一般要求
  • 国家胸痛中心建设网站海南建设厅评审网站
  • 深圳建站模板购买2017网站seo如何做
  • 百度关键词价格aso优化的主要内容
  • 建站需要钱流媒体视频网站建设
  • 北京市城乡结合部建设领导小组办公室网站网络销售公司产品推广方案
  • 稷山网站制作做瑜珈孕妇高清图网站
  • 山西通州集团网站建设网络规划设计师自学能通过么
  • 内容管理系统有哪些seo蜘蛛屯
  • 基于html5的网站建设论文模板网站如何建站