y03051022 发表于 2024-1-3 18:39

x64下的rip相对寻址

在计算一个地址的时候 是rip+偏移+当前指令的长度,为什么要加当前指令的长度啊

无闻无问 发表于 2024-1-3 19:16

就是跳位置,从当前指令到目标指令跳多少字节,肯定要加咯

y03051022 发表于 2024-1-3 19:18

无闻无问 发表于 2024-1-3 19:16
就是跳位置,从当前指令到目标指令跳多少字节,肯定要加咯

大佬 mov rbx,;像这样一条指令 实际就是 rip + 0x56+当前指令长度 这个地址上的数据放到rbx里对吗

少年持剑 发表于 2024-1-3 19:56

y03051022 发表于 2024-1-3 19:18
大佬 mov rbx,;像这样一条指令 实际就是 rip + 0x56+当前指令长度 这个地址上的数据放到rbx里对 ...

相对寻址计算的是硬编码里面的偏移,但是汇编只是单纯的把0x56地址里面的值 赋值给rbx

alicc 发表于 2024-1-3 20:04

下断一步步走

y03051022 发表于 2024-1-3 20:05

少年持剑 发表于 2024-1-3 19:56
相对寻址计算的是硬编码里面的偏移,但是汇编只是单纯的把0x56地址里面的值 赋值给rbx

像 这样的 lea   r10, 我像计算KeServiceDescriptorTable的值是多少应该怎么计算啊 大佬

y03051022 发表于 2024-1-3 20:24

懂了 谢谢大佬 我倒闷过来了

DEATHTOUCH 发表于 2024-1-3 23:57

之前写x64内联汇编的时候遇到过,用RIP相对寻址是为了实现PIC(Position Independent Code),即位置无关代码,好处就是代码不管装入到内存的哪里都可以寻址到需要的数据。
页: [1]
查看完整版本: x64下的rip相对寻址