Skip to content
Snippets Groups Projects
Forked from Alex Deucher / linux
Loading
  • Borislav Petkov's avatar
    d72e720a
    scripts/decodecode: add the capability to supply the program counter · d72e720a
    Borislav Petkov authored
    
    So that comparing with objdump output from vmlinux can ease pinpointing
    where the trapping instruction actually is.  An example is better than a
    thousand words:
    
      $ PC=0xffffffff8329a927 ./scripts/decodecode < ~/tmp/syz/gfs2.splat
      [ 477.379104][T23917] Code: 48 83 ec 28 48 89 3c 24 48 89 54 24 08 e8 c1 b4 4a fe 48 8d bb 00 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 97 05 00 00 48 8b 9b 00 01 00 00 48 85 db 0f 84
      All code
      ========
      ffffffff8329a8fd:       48 83 ec 28             sub    $0x28,%rsp
      ffffffff8329a901:       48 89 3c 24             mov    %rdi,(%rsp)
      ffffffff8329a905:       48 89 54 24 08          mov    %rdx,0x8(%rsp)
      ffffffff8329a90a:       e8 c1 b4 4a fe          callq  0xffffffff81745dd0
      ffffffff8329a90f:       48 8d bb 00 01 00 00    lea    0x100(%rbx),%rdi
      ffffffff8329a916:       48 b8 00 00 00 00 00    movabs $0xdffffc0000000000,%rax
      ffffffff8329a91d:       fc ff df
      ffffffff8329a920:       48 89 fa                mov    %rdi,%rdx
      ffffffff8329a923:       48 c1 ea 03             shr    $0x3,%rdx
      ffffffff8329a927:*      80 3c 02 00             cmpb   $0x0,(%rdx,%rax,1)               <-- trapping instruction
      ffffffff8329a92b:       0f 85 97 05 00 00       jne    0xffffffff8329aec8
      ffffffff8329a931:       48 8b 9b 00 01 00 00    mov    0x100(%rbx),%rbx
      ffffffff8329a938:       48 85 db                test   %rbx,%rbx
      ffffffff8329a93b:       0f                      .byte 0xf
      ffffffff8329a93c:       84                      .byte 0x84
    
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Marc Zyngier <maz@misterjones.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Rabin Vincent <rabin@rab.in>
    Link: https://lkml.kernel.org/r/20200930111416.GF6810@zn.tnic
    Link: https://lkml.kernel.org/r/20200929113238.GC21110@zn.tnic
    
    
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d72e720a
    History
    scripts/decodecode: add the capability to supply the program counter
    Borislav Petkov authored
    
    So that comparing with objdump output from vmlinux can ease pinpointing
    where the trapping instruction actually is.  An example is better than a
    thousand words:
    
      $ PC=0xffffffff8329a927 ./scripts/decodecode < ~/tmp/syz/gfs2.splat
      [ 477.379104][T23917] Code: 48 83 ec 28 48 89 3c 24 48 89 54 24 08 e8 c1 b4 4a fe 48 8d bb 00 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 97 05 00 00 48 8b 9b 00 01 00 00 48 85 db 0f 84
      All code
      ========
      ffffffff8329a8fd:       48 83 ec 28             sub    $0x28,%rsp
      ffffffff8329a901:       48 89 3c 24             mov    %rdi,(%rsp)
      ffffffff8329a905:       48 89 54 24 08          mov    %rdx,0x8(%rsp)
      ffffffff8329a90a:       e8 c1 b4 4a fe          callq  0xffffffff81745dd0
      ffffffff8329a90f:       48 8d bb 00 01 00 00    lea    0x100(%rbx),%rdi
      ffffffff8329a916:       48 b8 00 00 00 00 00    movabs $0xdffffc0000000000,%rax
      ffffffff8329a91d:       fc ff df
      ffffffff8329a920:       48 89 fa                mov    %rdi,%rdx
      ffffffff8329a923:       48 c1 ea 03             shr    $0x3,%rdx
      ffffffff8329a927:*      80 3c 02 00             cmpb   $0x0,(%rdx,%rax,1)               <-- trapping instruction
      ffffffff8329a92b:       0f 85 97 05 00 00       jne    0xffffffff8329aec8
      ffffffff8329a931:       48 8b 9b 00 01 00 00    mov    0x100(%rbx),%rbx
      ffffffff8329a938:       48 85 db                test   %rbx,%rbx
      ffffffff8329a93b:       0f                      .byte 0xf
      ffffffff8329a93c:       84                      .byte 0x84
    
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Marc Zyngier <maz@misterjones.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Rabin Vincent <rabin@rab.in>
    Link: https://lkml.kernel.org/r/20200930111416.GF6810@zn.tnic
    Link: https://lkml.kernel.org/r/20200929113238.GC21110@zn.tnic
    
    
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
decodecode 2.88 KiB