使用 IDA 逆向关于 gs 段的一些令人困惑的问题
Posted
技术标签:
【中文标题】使用 IDA 逆向关于 gs 段的一些令人困惑的问题【英文标题】:Some confusing problems in reversing with IDA about gs segment 【发布时间】:2013-10-04 11:07:21 【问题描述】:有一次我用 IDA Pro 反汇编了一个 ELF,我发现了一些类似的代码
*mk_fp(\__gs__,12)
或*mk_fp(\__gs__,8)
等等。
这是什么意思?是系统调用还是函数调用?
非常感谢您的帮助
【问题讨论】:
【参考方案1】:我猜mk_fp
的意思是制作远指针,因此这可能是IDA 分别反编译gs:[12]
和gs:[8]
的想法。
在 64 位内核中,gs
段用于存储 per-cpu 内核数据。在32位用户模式下,一般用于线程本地存储。
【讨论】:
TLS中的地址是否固定? TLS的地址不是固定的,当然每个线程都有自己的。 TLS 内部的偏移量是相同的,因此每个线程都可以访问自己的一组值。一个特定的实现(例如libc
)定义了布局。以上是关于使用 IDA 逆向关于 gs 段的一些令人困惑的问题的主要内容,如果未能解决你的问题,请参考以下文章