跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • ARM64 汇编中有关 jump table 的问题
未分類
17 4 月 2021

ARM64 汇编中有关 jump table 的问题

ARM64 汇编中有关 jump table 的问题

資深大佬 : menyakun 5

我知道了 jump table 的地址,从 rodata 中 dump 出了对应的数据,但不知道 jump table 中的数据是按照什么格式组织的

表的一行是 4 个字节,所以”fffe90d4″, “fffe9124″这些值代表了地址的 offset ?但这些值也太大了吧,这个函数没这么多行。

我查了老半天,也没有查到相关的资料,求懂汇编的老哥帮忙看看。

ARM64 汇编中有关 jump table 的问题

大佬有話說 (6)

  • 資深大佬 : Nerv

    只试过用 readelf 读取 linux x86-64 elf 文件的 symtable,不知道对应的 arm 版本有没有这种功能。

  • 主 資深大佬 : menyakun

    @Nerv 这个 jump table 是一个 switch-case 生成的,所以对应的目标地址没有记录在 symtable 里面

  • 資深大佬 : wezzard

    這裡存儲的是一個相對偏移量,應該看成一個有符號的整數。你應該用該條記錄的基址加上這個有符號的相對偏移,然後得出跳轉目標地址。

  • 資深大佬 : akira

    看到 feff 就觉得应该是 -100

  • 資深大佬 : levelworm

    看到 ff 打头的我第一反应是 sign extended,具体得去查查。。。

  • 資深大佬 : zk8802

    Jump table 中常见的地址 /偏移编码方式有好几种。你需要看一下对应的汇编指令是如何解析这个 jump table 的。

    另外你这里面的负数大概率是相对 PC 的偏移。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具