如下所示我们在调试器中看到的PC指向到当前代码位置0x10058!!(实际情况是在arm架构下 PC指向当前位置+8   thumb架构下PC指向当前位置+4,这是流水线机制决定的,牢记!!)

因此下图的PC实际指向是:0x10058+8

gef➤  ni
0x00010058 in _start ()
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ registers ]────
$r0   : 0x00000000
$r1   : 0x00000000
$r2   : 0x00000000
$r3   : 0x0001005d  →  <_start+9> add r0,  pc,  #8    ; (adr r0,  0x10068 <_start+20>)
$r4   : 0x00000000
$r5   : 0x00000000
$r6   : 0x00000000
$r7   : 0x00000000
$r8   : 0x00000000
$r9   : 0x00000000
$r10  : 0x00000000
$r11  : 0x00000000
$r12  : 0x00000000
$sp   : 0xbefff770  →  0x00000001
$lr   : 0x00000000
$pc   : 0x00010058  →  <_start+4> bx r3
$cpsr : [thumb fast interrupt overflow carry zero negative]
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ stack ]────
0xbefff770│+0x00: 0x00000001     ← $sp
0xbefff774│+0x04: 0xbefff884  →  "execve2"
0xbefff778│+0x08: 0x00000000
0xbefff77c│+0x0c: 0xbefff88c  →  "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so[...]"
0xbefff780│+0x10: 0xbefffe48  →  "SSH_CONNECTION=192.168.176.1 1039 10.0.2.15 22"
0xbefff784│+0x14: 0xbefffe77  →  "LANG=en_GB.UTF-8"
0xbefff788│+0x18: 0xbefffe88  →  "XDG_SESSION_ID=c1"
0xbefff78c│+0x1c: 0xbefffe9a  →  "USER=pi"
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ code:arm ]────
      0x10040                  andeq  r0,  r1,  r0
      0x10044                  andeq  r0,  r0,  r0,  ror r0
      0x10048                  andeq  r0,  r0,  r0,  ror r0
      0x1004c                  andeq  r0,  r0,  r5
      0x10050                  andeq  r0,  r1,  r0
      0x10054 <_start+0>       add    r3,  pc,  #1
 →    0x10058 <_start+4>       bx     r3
      0x1005c <_start+8>       add    r0,  pc,  #8    ; (adr r0,  0x10068 <_start+20>)
      0x1005e <_start+10>      eors   r1,  r1
      0x10060 <_start+12>      eors   r2,  r2
      0x10062 <_start+14>      movs   r7,  #11
      0x10064 <_start+16>      svc    1


你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。