十六进制地址在哪里 IDA pro,反汇编程序

Where is address in hex IDA pro, disassembler

A​​SM

......
.text:000000000062D153   lea   rax, aaa ; "aaaaaaaaaaa"
.text:000000000062D15A   lea   rdx, bbb ; "bbbbbbbbbbbbbbbb"
......
.rodata:0000000000F63221 aaa     db 'aaaaaaaaaaa',0                                               
.rodata:0000000000F6322D bbb     db 'bbbbbbbbbbbbbbbb',0 
.rodata:0000000000F6323E align 20h
......

十六进制

......
000000000062D153  48 8D 05 C7 60 93 00
000000000062D15A  48 8D 15 CC 60 93 00
......

我不明白,这个地址 "aaa"(F63221) 的十六进制 48 8D 05 C7 60 93 00 在哪里? 如何将十六进制的a替换成b,得到?

 .text:000000000062D15A                 lea     rdx, aaa ; "aaaaaaaaaaa" 
000000000062D153  48 8D 05 C7 60 93 00

实际上是:

lea    rax, [rip+0x9360c7]

这是一个RIP相对地址,偏移量在指令的最后4个字节(C7 60 93 00 = 0x009360C7)。这种寻址方式指的是相对于下一条指令的内存(不是当前的,因为RIP指向下一条指令)。如果你算一下,你会发现 0x0062D15A + 0x009360C70x00F63221.

要引用bbb,需要计算0x00F6322D - (0x0062D15A + 7)。这给出了 0x9360CC.

的偏移值