+ Reply to Thread
Results 1 to 9 of 9

Thread: Как запустить android_server from IDA Pro ?

  1. #1

    Default Как запустить android_server from IDA Pro ?

    привет каждому, особенно тому, кто ответит

    Требуется проанализировать so библиотеку андроид приложения. Ее лекго вытянуть из apk, найти интересующее мне место, где целевая переменная протерпевает некоторые изменения. Но хотелось бы в Иде посмотреть в отладчике как пошагово эта переменная формируется.

    В IDA pro есть удаленные отладчики и в частности для отладки на андроид устройствах.
    1ый способ. сразу при старте IDA pro загрузить apk, и далвик дебаггером запустить его на эмуляторе nox. Приложение успешно запускается на эмуляторе, отладчиком могу что-то пошагово выполнять, но как добраться до нужной мне so библиотеки? Тем более приложение постоянно создает/завершает новые параллельные процессы

    2ой способ, описанный тут http://forum.xda-developers.com/show...0393&nocache=1 или тут в русской статье https://habrahabr.ru/post/232531/ , которая ссылается на первую ссылку как первоисточник. Способ заключается в узнавании смещения целевой библиотеки через подключение к андроид серверу. И потом уже дебажить в gdbserver задавая там нужное смещение.

    Собственно проблема и мой вопрос, как запустить андроид сервер на андроид устройстве? В IDA Pro в папке IDA 6.8\dbgsrv\ есть два андроид сервера android_server и android_server_nonpie. Первый при запуске выдает
    android_server: not executable: magic 7F45

    Второй успешно запускается, делаю форвард порта, но IDA не может корректно подключиться: подключается, видит список запущенных процессов на андроиде и при попытке подключиться к выбранному процессу получает отлуп:
    ---------------------------
    Warning
    ---------------------------
    The debugger could not attach to the selected process. This can perhaps indicate the process was just terminated, or that you don't have the necessary privileges.
    ---------------------------
    OK
    ---------------------------

    И отлуп скорее всего идет не со стороны android_server, который в консоли показывает, что к нему успешно подключились
    ==================================
    [1] Accepting connection from 127.0.0.1...

    и только после нажатия на кнопку OK на ворнинге (странно, почему ворнинг), показывает строчки:
    [1] Closing connection from 127.0.0.1...
    ==================================

    Что за привилегий не хватает иде?

  2. #2

    Default Re: Как запустить android_server from IDA Pro ?

    кстати успешно удавалось подключаться через далвик дебаггер в Иде и через dbgserver, но что в них дальше делать, как добраться до нужной библиотеки

  3. #3
    ximera's Avatar

    Default Re: Как запустить android_server from IDA Pro ?

    Посмотри список загруженных модулей в память процесса, найди адрес либы, от него ищи адрес функции которая тебе нужна, ставь на нее бряк и жди.
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  4. #4

    Default Re: Как запустить android_server from IDA Pro ?

    как бы в этом и проблема, что и далвик дебаггер и dbgserver не показывают модули, вернее в окне модули, отображается один единственный. И как я понял отсюда https://habrahabr.ru/post/232531/ для этого и запускается android_server, чтобы получить список модулей и смещение по каждому.

  5. #5
    ximera's Avatar

    Default Re: Как запустить android_server from IDA Pro ?

    Есть предположение из личного опыта, чтобы увидеть список модулей, нужно чтобы ПО загрузилось полностью. Под iOS это происходит так:
    - запуск под debugserver приложения
    - подлючение из под lldb
    - команда continue для продолжения работы процесса.
    - 1-2 минуты и все модули загружены.
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  6. #6

    Default Re: Как запустить android_server from IDA Pro ?

    эх, жаль я не счастливый обладатель айпада или айфона :)
    В gdbserver и при нескольких часах ожидания информация по модулям не подгружается

    При попытках пошагово выполнять инструкции начинают появляются эксепшены как на приведенном скриншоте
    В Иде при этом вся область памяти помечается как unexplored
    бОльшая часть этой памяти отображается в виде вопросиков:


    По сравнению с gdbserver dalvik debugger выглядит более информативно:

    информации по модулям ноль, но какие-то инструкции можно выполнять пошагово без эксепшенов, гораздо меньше unexplored области. Правда часто при нажатии suspend IDA отказывается показывать текущую выполняему инструкции, хотя кнопочки с пошаговом выполнением работают исправно, но при этом никакого позиционирования на текущих инструкциях нет. К тому же странно отображаются колстеки бОльшинства потоков

    На скриншоте единственное распознавание в колстеке вменяемого адреса, в остальных потоках (всего их 2-3 десятка) колстеки сплошь состоят из адресов вида FFFFFFFF
    хоть иди айпад покупай)))

  7. #7
    ximera's Avatar

    Default Re: Как запустить android_server from IDA Pro ?

    Попробуй не через иду, а через gdb. Я все делаю через lldb))
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  8. #8

    Default Re: Как запустить android_server from IDA Pro ?

    открыл для себя новый мир, изучаю gdb))

    p.s. в личку вам написал, гляньте.

  9. #9

    Default Re: Как запустить android_server from IDA Pro ?

    Попробовал в Android Studio сделать виртуальный девайс на архитектуре armeabi и о чудо, на нем успешно стартовал android_server который позволил Иде подключиться к нему и показывает все модули и библиотеки. Но виртуальный девайс именно на armeabi очень круто тормозит и лагает, несколько десятков попыток скачать приложение через гуглплей закончились неудачей, в основном по причине постоянных дисконнектов 3g (!?) интернета в этой виртуалке. А эмуляторы на x86 видимо не очень хорошо научились дружить с дебаггерами. Подумываю купить дешевенький сотовый на архитектуре armeabi, правда архитектуру процессора сотового практически нигде не указывается в описании сотового в магазине и даже в русскоязычной инструкции, копаю дальше))

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:22
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org