Показать сообщение отдельно

  #1  
Старый 30.12.2018, 16:46
Hadariel
Новичок
Регистрация: 29.12.2018
Сообщений: 6
С нами: 3880915

Репутация: 0
По умолчанию

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 и какие возможности открывает динамическая бинарная иструментация.
 
Ответить с цитированием