Материалы по использованию IDA с Android/ARM?

Discussion in 'Реверсинг' started by WoolF911, 18 Feb 2022.

  1. WoolF911

    WoolF911 New Member

    Joined:
    22 Oct 2007
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Может кто-нибудь поделиться любым более-менее нормальным материалом по использованию IDA с Android/ARM? Мануалы/статьи/видео/книги, как на русском, так и английском.
    Нашёл вроде классный бесплатный курс-введение, но там про Android/ARM ни слова https://yutewiyof.gitbook.io/intro-rev-ida-pro/chast-01
     
  2. SladerNon

    SladerNon Ученик Христа

    Joined:
    6 Mar 2005
    Messages:
    1,632
    Likes Received:
    930
    Reputations:
    355
    Тут важен личный опыт.

    А вообще, делается это так:

    Берете gcc для arm, компилите основные конструкции из Си и смотрите, как они с ассемблировались. Понимаете логику построения кода, основные инструкции. Понимаете конвенции вызовов.

    Дальше проблем не должно быть. Но есть подводные камни, конечно..

    Арм(тот который 32 разрядный) имеет 2 системы команд. thumb и arm. первая с опкодами по 2 байта, другая по 4. они могут миксоваться между собой. для перехода от одной системы до другой используются прыжки на нечетные адреса.. типа такого
    arm_asm_code:
    //тут проц работает как арм
    bl thumb_asm_code+1
    thumb_asm_code:
    //тут проц работает как тамб

    Важно понять конвенцию вызова сисколов, потому что она разная. хз от чего зависит. не всегда unistd номера вызовов реально такие, какие есть. Да и инструкция разная используется на разных платформах.

    https://disk.yandex.ru/i/_azba3dYJ-7Hgw

    https://disk.yandex.ru/i/V61M-DJ5yG89gw
     
    WoolF911 likes this.
  3. WoolF911

    WoolF911 New Member

    Joined:
    22 Oct 2007
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Но Вы говорите о куда более серьёзном уровне понимая. Мне бы что-то совсем для начинающих найти, какой-нибудь пример отладки простого приложения/игры. Я уже 3-е сутки вожусь с IDA PRO 7.7, пытаюсь добиться, чтобы игра под отладчиком не падала, а нормально функционировала. Я уже думал, что может защита от отладки какая-то и поэтому игра падает, но похоже, что нет. Нашёл какую-то другую простую игру в маркете с малым количеством загрузок, установил её, запускаю под отладчиком gdbserver64 — игра падает после нажатия "Continue process", пробую под отладчиком android_server64, игра вроде начинает работать после нажатия "Continue process", но после пары пауз ("Pause process") тоже вылетает, и при этом, во всех случаях, IDA не показывает, процесс выполнения кода (какой участок за каким выполняется).
    Вот такие ошибки при этом сыпятся (разные сигналы), а затем и вовсе крашится игра:
    747C920B0C: got SIG35 signal (Real-time event 35) (exc.code 2f, tid 15954)
    7FF6780418: got SIGTRAP signal (Trace/breakpoint trap) (exc.code 5, tid 17307)

    Может есть предположения, что я делаю не так и/или в чём может быть причина?