Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: some binaries crash with SIGILL on Zybo-Z7-20



On Wed, Oct 31, 2018 at 10:08:31AM +0000, Alexander Nasonov wrote:
> There is indeed an invalid instruction if I open libc.so on my
> Intel notebook in radare2 tool:
> 
> [0x000a03e4]> s sym._string_hash_func
> [0x000a03e4]> pd 125
> ...
>        0x000a0568      a0c1a0e1       lsr ip, r0, 3
>        0x000a056c      03308fe0       add r3, pc, r3
>        0x000a0570      7fc00ce2       and ip, ip, 0x7f
>        0x000a0574      30402de9       push {r4, r5, lr}
>        0x000a0578      0c3183e0       add r3, r3, ip, lsl 2
>        0x000a057c      01e0a0e3       mov lr, 1
>   ..-> 0x000a0580      9e4003e1       invalid                     <--- HERE
>  ,===< 0x000a0584      010000ea       b 0xa0590
>  |::   0x000a0588      000055e3       cmp r5, 0
>  |`==< 0x000a058c      fbffff1a       bne 0xa0580
>  `---> 0x000a0590      000054e3       cmp r4, 0
>    `=< 0x000a0594      f9ffff1a       bne 0xa0580

Not sure what that tool does, but this is how objdump -D looks on my armv5
machine:

   a0434:       e1a0c1a0        lsr     ip, r0, #3
   a0438:       e08f3003        add     r3, pc, r3
   a043c:       e20cc07f        and     ip, ip, #127    ; 0x7f
   a0440:       e92d4030        push    {r4, r5, lr}
   a0444:       e083310c        add     r3, r3, ip, lsl #2
   a0448:       e3a0e001        mov     lr, #1
>> a044c:       e103409e        swp     r4, lr, [r3]  <<--- HERE
   a0450:       ea000001        b       a045c <_string_hash_func+0x70>
   a0454:       e3550000        cmp     r5, #0
   a0458:       1afffffb        bne     a044c <_string_hash_func+0x60>
   a045c:       e3540000        cmp     r4, #0
   a0460:       1afffff9        bne     a044c <_string_hash_func+0x60>
   a0464:       e5d03000        ldrb    r3, [r0]

And SWP{B} are valid in all arm versions AFAICT (though deprecated since
armv6 in favor of strex/ldrex).

Martin


Home | Main Index | Thread Index | Old Index