Загрузка...

Пишем Экстремальный ***** / Checker (Реверсинг - Темная сторона программирования)

Тема в разделе C# создана пользователем IceRed2K 11 май 2019. 1901 просмотр

  1. IceRed2K
    IceRed2K Автор темы 11 май 2019 13 11 май 2019
    Йоу, всем привет!

    Сегодня у нас очень известное приложение которое я буду всячески скрывать от вас, только лишь буду показывать интересные моменты в написании **** / Чекера

    Приступим!
    Первым делом я решил установить их приложение на устройство и посмотреть что происходит в момент авторизации (какие данные он отправляет и что получает)

    Заходим в меню авторизации и вводим данные
    [IMG]

    Кхм. Очень интересно - авторизация не происходит, ошибка!
    Как мы можем увидеть, приложение использует закрепленный SSL сертификат

    [IMG]

    Вот как это выглядит

    [IMG]

    Приложение не допускает сторонние сертификаты ( ̶т̶р̶а̶ф̶и̶к̶ ̶м̶ы̶ ̶н̶е̶ ̶м̶о̶ж̶е̶м̶ ̶п̶о̶с̶м̶о̶т̶р̶е̶т̶ь̶)

    Reverse Engineering: Декомпиляция

    Для первоначального анализа я декомпилирую приложение чтобы получить некоторые части исходного кода на Java
    Теперь нужно найти проверку и вырезать проверку сертификата (что я и сделал )

    [IMG]

    После того как я вырезал проверку сертификата я могу попробовать еще раз просниферить трафик

    Отлично! Мы обошли проверку сертификата и смогли узнать что скрывали от нас во время авторизации

    [IMG]

    Я вижу здесь информацию которую закодировали в Url Encoding (ищем онлайн декодер)


    [IMG]


    Чёрт!!
    Каждый запрос защищен "цифровой подписью" об этом говорит поле "sha" которое меняется во время каждого нового запроса!
    Нам нужно узнать алгоритм генерации "подписи"

    Недолго думая я решил поискать метод который выполняет генерацию "цифровой подписи"
    Я нашел метод который принимает строку и генерирует нашу "подпись", нам нужно любой ценой узнать что за строка туда поступает!!

    [IMG]

    Reverse Engineering: Дизассемблирование

    [IMG]

    Я воспользуюсь командой "apktool.jar d myapk.apk -r"

    В папках с smali-кодом находим файл в котором происходит генерация SHA256 подписи
    [IMG]

    Строка, которую нужно узнать передавалась в регистре p0

    Модифицируем код и попробуем вывести строку в LogCat

    [IMG]

    Нам нужно подписать apk приложение, я использовал приложение APK Signer

    Воспользуюсь командой:
    apktool.jar b myApk -o patchedAPK.apk

    Установим приложение и воспользуемся Android Debug Bridge (ADB)
    Используем следующие команды:
    - adb shell
    - logcat

    Переходим на авторизацию и попробуем авторизоваться! (Смотрим в LogCat)

    [IMG]

    Отлично! Мы теперь знаем какая строка поступает в метод (Текущее время + секретные 2 строки)

    Теперь мы можем генерировать свои "подписанные" запросы!

    [IMG]

    Теперь мы можем написать **** / Чекер

    [IMG]

    Спасибо за внимание, до скорой встречи :hi:
     
  2. IceRed2K
    IceRed2K Автор темы 11 май 2019 13 11 май 2019
    Инструменты которые были использованы в этой статье можно найти в интернете!
     
  3. Сметана
    Сметана 11 май 2019 Хорошо :cat_lay: 4181 14 июн 2018
    оч годно три четыре
     
  4. IceRed2K
    IceRed2K Автор темы 11 май 2019 13 11 май 2019
    Мне правда было лень пилить полноценное WPF приложение с MVVM, поэтому захерачил в консольке
     
  5. Zhokey
    Zhokey 11 май 2019 Заблокирован(а) 0 15 июн 2017
    IceRed2K, как можно изменить авторство через какую программу ? типо вместо PC RET поставить своё
     
  6. IceRed2K
    IceRed2K Автор темы 11 май 2019 13 11 май 2019
    Zhokey, Подобные модификации возможно делать через программы типа resource hacker
     
  7. faileddf
    faileddf 11 май 2019 0 6 апр 2019
    чем ты декомпилируешь на java код?
     
  8. IceRed2K
    IceRed2K Автор темы 11 май 2019 13 11 май 2019
Top
Загрузка...