Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #3540
Closed
Open
Issue created Apr 14, 2019 by Administrator@rootContributor

app_process32 crashes on Android O

Created by: ghost

I'm trying to run app_process32 with drrun on my Pixel 2 (Android 8.1.0) but it crashes with SIGSEGV instantly every time (even without any argument)

walleye:/data/ssh/root # /system/xbin/dynamorio/bin32/drrun -- app_process32

<Application /system/bin/app_process32 (28241).  DynamoRIO internal crash at PC 0xf6326f30.  Please report this at http://dynamorio.org/issues/.  Program aborted.
Received SIGSEGV at pc 0xf6326f30 in thread 28241
Base: 0xf628b000
Registers:  r0 =0x00000000 r1 =0x00000000 r2 =0x0000f7ff r3 =0xf7ffbffe
        r4 =0x00000000 r5 =0x4bc46a84 r6 =0x00000000 r7 =0x00000000
        r8 =0x4bc40c88 r9 =0x4bc40c90 r10=0x00000000 r11=0x00000001
        r12=0x00004c22 r13=0x4bc40c80 r14=0xf6326e25 r15=0xf6326f30
        eflags=0x200b1830
version 7.1.0, build 1
-no_dynamic_options -code_api -stack_size 56K -signal_stack_size 32K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >

I'm using the release version DynamoRIO-ARM-Android-EABI-7.1.0-1.tar.gz.

According to addr2line it crashes at /dynamorio_package/core/arch/arm/encode.c:3084

    if (di.isa_mode == DR_ISA_ARM_THUMB) {
        if (di.instr_word >> 16 != 0) {
            *((ushort *)copy_pc) = (ushort)(di.instr_word >> 16);  // <- HERE
            copy_pc += THUMB_SHORT_INSTR_SIZE;
        }
        *((ushort *)copy_pc) = (ushort)di.instr_word;
        copy_pc += THUMB_SHORT_INSTR_SIZE;
    } else {
        *((uint *)copy_pc) = di.instr_word;
        copy_pc += ARM_INSTR_SIZE;
    }

btw I tried some simple commands like ls date wget ping etc. they all works perfectly fine

Assignee
Assign to
Time tracking