📄 tlsnopic.s
字号:
.section ".tdata", "awT", @progbits .globl baz .hidden baz .globl var .hidden var2bar: .long 27baz: .long 29var: .long 31var2: .long 33 .text .globl fn .type fn,@functionfn: /* Main binary, no PIC. */1: movl 1b, %edx addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx /* foo can be anywhere in startup TLS. */ movl %gs:0, %eax subl foo@GOTTPOFF(%edx), %eax /* %eax now contains &foo. */ /* bar only in the main program. */ movl %gs:0, %eax subl $bar@TPOFF, %eax /* %eax now contains &bar. */ /* baz only in the main program. */ movl %gs:0, %ecx /* Arbitrary instructions in between. */ nop subl $baz@TPOFF, %ecx /* %ecx now contains &baz. */ /* var and var2 only in the main program. */ movl %gs:0, %ecx /* Arbitrary instructions in between. */ nop nop leal var@NTPOFF(%ecx), %eax /* Arbitrary instructions in between. */ nop leal var2@NTPOFF(%ecx), %edx /* foo can be anywhere in startup TLS. */ movl foo@INDNTPOFF, %eax movl %gs:(%eax), %eax /* %eax now contains foo. */ movl %gs:0, %eax addl foo@INDNTPOFF, %eax /* %eax now contains &foo. */ ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -