ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Уязвимости CMS / форумов (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   Frida Framework vs Android p.3 (https://forum.antichat.xyz/showthread.php?t=566152)

Hadariel 30.12.2018 16:46

Frida Framework vs Android p.1

Frida, это динамический фреймворк для взаимодействия с бинарными приложениями. Сначала инструмент просто показался мне интересным, чуть позже я понял насколько это веселая вещь. Помните режим бога в играх? Frida позволяет делать тоже самое, только уже с нативными приложениями. В этом посте я...

codeby.net


Frida Framework vs Android p.2

Пред. Frida Framework vs Android p.1 След. Frida Framework vs Android p.3 Frida and Radare2: r2frida Было бы неплохо, если бы мы могли использовать фрэймворк дизассеблирования, например radare2 для изучения памяти приложения. Здесь появляется r2frida. Вы можете использовать r2frida для...

codeby.net


Финальная часть лекций по Frida Framework

Сперва посмотрим как приложение проверяет наличие root. Прямо над сообщением "Root detected" можно увидеть код:

Код:


Код:

if (sg.vantagepoint.a.c.a() || sg.vantagepoint.a.c.b() || sg.vantagepoint.a.c.c())
Если вы перейдете в класс sg.vantagepoint.a.c вы увидите различные проверки на root:

Код:


Код:

public static boolean a()
    {
        String[] a = System.getenv("PATH").split(":");
        int i = a.length;
        int i0 = 0;
        while(true)
        {
            boolean b = false;
            if (i0 >= i)
            {
                b = false;
            }
            else
            {
                if (!new java.io.File(a[i0], "su").exists())
                {
                    i0 = i0 + 1;
                    continue;
                }
                b = true;
            }
            return b;
        }
    }

    public static boolean b()
    {
        String s = android.os.Build.TAGS;
        if (s != null && s.contains((CharSequence)(Object)"test-keys"))
        {
            return true;
        }
        return false;
    }

    public static boolean c()
    {
        String[] a = new String[7];
        a[0] = "/system/app/Superuser.apk";
        a[1] = "/system/xbin/daemonsu";
        a[2] = "/system/etc/init.d/99SuperSUDaemon";
        a[3] = "/system/bin/.ext/.su";
        a[4] = "/system/etc/.has_su_daemon";
        a[5] = "/system/etc/.installed_su_daemon";
        a[6] = "/dev/com.koushikdutta.superuser.daemon/";
        int i = a.length;
        int i0 = 0;
        while(i0  _  |  Commands:
  /_/ |_|      help      -> Displays the help system
  . . . .      object?  -> Display information about 'object'
  . . . .      exit/quit -> Exit
  . . . .
  . . . .  More info at Welcome[*] Starting script

[USB::Android Emulator 5554::sg.vantagepoint.uncrackable1]->[*] onClick handler modified[*] sg.vantagepoint.a.a.a modified[*] onClick called.[*] Decrypted: I want to believe

Хорошо. Теперь мы имеем расшифрованную строку I want to believe. Вот и все, она действительно подходит!

Заключение

Я надеюсь, что к этому моменту вы, по крайне мере, немного впечатлены тем, что можете делать с Frida и какие возможности открывает динамическая бинарная иструментация.

Vander 31.12.2018 00:19

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

gushmazuko 31.12.2018 00:30

Цитата:


Vander сказал(а):

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


Поддержу, читать жутко не удобно.

Прочитайте Правила оформления статей
Еще могу посоветовать взять пример с: Android + Termux - карманный друг хакера.

never 13.04.2019 11:00

статьи очень интересные, продолжение будет?( кстати для скрытия рута у фриды в репозитории есть скрипт, как вариант наименьшего сопротивления)

di3mus 05.05.2019 08:15

Ещё интересное решение этого крэкми (это же статья-перевод всё-таки) предложил Eduardo Novella - Android OWASP crackmes: Write-up UnCrackable Level 1


Время: 23:28