Может кто-нибудь поделиться любым более-менее нормальным материалом по использованию IDA с Android/ARM? Мануалы/статьи/видео/книги, как на русском, так и английском. Нашёл вроде классный бесплатный курс-введение, но там про Android/ARM ни слова https://yutewiyof.gitbook.io/intro-rev-ida-pro/chast-01
Тут важен личный опыт. А вообще, делается это так: Берете 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
Но Вы говорите о куда более серьёзном уровне понимая. Мне бы что-то совсем для начинающих найти, какой-нибудь пример отладки простого приложения/игры. Я уже 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) Может есть предположения, что я делаю не так и/или в чём может быть причина?