Статья [Android] Xposed: Как скрыть наличие Xposed/Cydia

Привет,

Данная статья является логическим продолжением "Android/Xposed/Cydia: Ищем root и то, что может скрыть его", где я в прошлый раз рассказал как можно задетектить наличие root прав на девайсе. Сейчас рассмотрим то, как скрывать это для тех, кому это не нужно знать :)
Все основные и часто используемые методы сокрытия su давно изучены и описаны, в том числе и кодом (хорошим примером является проект от Matt Joseph (devadvance) именуемый "rootcloak").
Но я хочу отдельно обратить ваше внимание на методе, который я описал в предыдущей статье и назвал "Xposed or Cydia". Кго суть -- это поиск подстрок xposed или substrate в стектрейсе.

Первым шагом нам нужно составить список способов, как можно получить Stack Trace.
Да, как оказалось способов больше чем один и мы нашли 4 способа (если кто знает еще, велкам в комментарии)
  1. getStackTrace в java.lang.Thread
  2. getAllStackTraces в java.lang.Thread
  3. getStackTrace в java.lang.Throwable
  4. getStackTraceString android.util.Log
Дальше нужно понять как мы будем хукать методы. На самом деле в инфицированном Zygote это не так то и сложно сделать, а Xposed Framework вообще облегчает эту задачу (огромным плюсом у этого фреймворка явлется понятная и , которая укажет нам на findAndHookMethod)
Java:
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;

Остается дело за малым -- написать код, который будет отлавливать все обращения в stack trace и вычищать из него все упоминания о xposed.

Покажу на примере getAllStackTraces в java.lang.Thread
Java:
findAndHookMethod("java.lang.Thread", lpparam.classLoader, "getAllStackTraces", new XC_MethodHook() {
    @Override
    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
        Map<Thread, StackTraceElement[]> services = (Map<Thread, StackTraceElement[]>)param.getResult();
        Map<Thread, StackTraceElement[]> newTh = new HashMap<>();
        for (Thread th : services.keySet()) {
            List<StackTraceElement> stackTraceElementsList = new LinkedList<>(Arrays.asList((StackTraceElement[])services.get(th)));

//                    XposedBridge.log("---BEFORE===   " + stackTraceElementsList.toString());

            Iterator<StackTraceElement> iter = stackTraceElementsList.iterator();
            StackTraceElement stackTraceElement;

            while (iter.hasNext()) {
                stackTraceElement = iter.next();
                if (stackTraceElement == null) {
                    continue;
                }
                if (stackTraceElement.getClassName().contains("xposed") ||
                        (stackTraceElement.getFileName() != null &&
                                stackTraceElement.getFileName().toLowerCase().contains("xposed"))) {
                    iter.remove();
                }
            }

//                    XposedBridge.log("===AFTER===   " + stackTraceElementsList.toString());

            newTh.put(th, stackTraceElementsList.toArray(new StackTraceElement[stackTraceElementsList.size()]));
        }
        param.setResult(newTh);
    }
});

Все остальные способы ±похожи, но для того, чтобы понять суть решения этого более, чем достаточно.

Как вы уже поняли, Xposed это очень сильный инструмент, который позволяет сделать очень многое. Если у вас остались вопросы, велкам в комментарии ;)
 

wizard76

Green Team
15.06.2018
106
103
BIT
0
Мне проще через , прекрасно скрывает рут-права, да и на большинстве девайсов(прошивок) со многими модулями вообще не работает. Кому интересно, вот модулей.
 
Последнее редактирование:
  • Нравится
Реакции: mi4 и volodya_m

deadroot

Green Team
06.01.2019
60
142
BIT
2
Мне проще через , прекрасно скрывает рут-права, да и на большинстве девайсов(прошивок) со многими модулями вообще не работает. Кому интересно, вот модулей.

Дак я же описал не “как проще это сделать, установив очередную тулзу или скрипт” (велкам, скрипткидди), а еще один способ детекта с реализацией защиты от него.
То, что не работает Xposed где-то зависит от прямоты рук и возможности что-то улучшать и исправлять, там, где проблема, так как если не работает — значит есть ошибка :) Когда я занимался этой темой количество кирпичнутых девайсов было не сосчитать, которые потом реанимировались, но вот штук 5-10 девайсов с честью попали в Вальхаллу.

P.S. Как и ожидалось, Magisk скрывается такими же способами, как я написал выше и назвал «дефолтными» topjohnwu/Magisk
Также у Magisk забавный список «Magisk can not hide» , так что на это приложение полностью положиться нельзя. Конечно, все зависит от поставленной задачи :)
Ради интереса во время отпуска придумаю детект и для Magisk.
 

wizard76

Green Team
15.06.2018
106
103
BIT
0
Ради интереса во время отпуска придумаю детект и для Magisk.
Не надо ничего "вслух" придумывать, а то завтра лавочку прикроют, а у меня и так времени нет, еще потом потом этой ерундой заниматься придется. Вашими благими намерениями вымощена дорога в "сбербанк".)
 
  • Нравится
Реакции: Valkiria

deadroot

Green Team
06.01.2019
60
142
BIT
2
Не надо ничего "вслух" придумывать, а то завтра лавочку прикроют, а у меня и так времени нет, еще потом потом этой ерундой заниматься придется. Вашими благими намерениями вымощена дорога в "сбербанк".)

26986


  1. Безопасность не заключается в сокрытии технологий, так как это тупиковый путь развития :/
  2. И я точно буду не первым, кто как минимум проверяет такое. А так у тебя будет вариант как скрывать это :) Код то я на bypass тоже выложу.

Хорошая статья. Но так же было бы интересно прочитать статью про подмену данных железа на рутированным устройстве, а то способы мезозоя не внушают доверия

Да, думаю рассказать что можно менять и как, но расскажу об этом попозже и в разрезе того же Xposed.
 
T

thebestway

Хорошая статья. Но так же было бы интересно прочитать статью про подмену данных железа на рутированным устройстве, а то способы мезозоя не внушают доверия

Да, думаю рассказать что можно менять и как, но расскажу об этом попозже и в разрезе того же Xposed.
Как считаете, что лучше использовать для подмены железа, xprivacy или xprivacy lua? На самом деле очень хочется увидеть вашу статью поскорее, ибо уже не первый месяц озадачен этим вопросом
 

wizard76

Green Team
15.06.2018
106
103
BIT
0
Как считаете, что лучше использовать для подмены железа, xprivacy или xprivacy lua? На самом деле очень хочется увидеть вашу статью поскорее, ибо уже не первый месяц озадачен этим вопросом
xprivacy без костылей не работает на андроид 8-9, либо вообще не работает, xprivacy lua получше будет.
когда-то ставил модуль device id changer pro для xposed, там применяем для нужных приложений и все, но опять же работает абы как
 
Последнее редактирование:

deadroot

Green Team
06.01.2019
60
142
BIT
2
Я бы порекомендовал выбрать
  1. Если и пользоваться чем-то то, то очень провереным (проанализировать код и т.д.). На самом деле не будет никогда приложения, которое покроет абсолютно все подводные камни.
  2. Изучать то, с чем работаешь, и делать что-то свое, основываясь на полученых данных.
Вчера, например, спросили откуда знать какие проверки делать, на что я дал ответ
Код:
Ну это анализировать исходники разных SDK и либ как они чекают
Я смотрел тогда в основном рекламные, но и игровым/банковским приложениям досталось
Фактически берешь приложения, которые высокорисковые (багковские/кошельки криптовалютные/гугловые прилы и прочую хрень) декомпилируешь и красноглазишь)
Потому что каждый извращается как хочет и все не покрыть. Даааа, кстати, как результат той работы и исследований получилось Xposed приложение, которое полностью хайдит все, дак еще и меняет все возможные данные (мы на этом рекламу гоняли и впринципе добились того, что нас не ловили). Да, тогда мы дошли тогда даже до данных с сенсоров, пришлось подменять :)
 
  • Нравится
Реакции: thebestway и never

never

Green Team
24.01.2019
16
5
BIT
0
очень интересная статья, а продолжение еще лучше, подпишусь на автора, респект и уважение.!!!
 

loodoo4ka

One Level
11.03.2019
5
4
BIT
0
Мне проще через , прекрасно скрывает рут-права, да и на большинстве девайсов(прошивок) со многими модулями вообще не работает. Кому интересно, вот модулей.
Хм. Такой вопрос вам задать хочу.
Решил на досуге побаловаться с рутом, но для этих целей на руках был только модель One Plus 5 с ядром Oreo. После долгих танцев с бубнами понял, что ничего кроме Magisk на это ядро не встанет.
Ранее, ставил Xposed на другие модели телефонов и удачно удавалось скрывать наличие рут прав для повседневного юза телефона. Но с Magisk испытал дискомфорт, потому что во первых он (очевидно) не поддерживает модули от того же Xposed, а кол-во родных оставляет желать лучшего (Вполне возможно могу ошибаться). Так вот вштал вопрос, как грится. Если вы активный юзер Magisk, то можете посоветовать соотв. модули или софт для сокрытия рут прав и подмене железа?(device id changer абсолютно никакие не работали)
 

never

Green Team
24.01.2019
16
5
BIT
0
магиск толком ничего не подменит) это просто для получение su а вот именно все танцы делает xposed. прощу прощения у автора что влез) на Oreo все замечательно лезит уже пару месяцев
 

deadroot

Green Team
06.01.2019
60
142
BIT
2
Специально чтобы поиграться с Magisk (а я ему не доверяю) заказал отдельный android девайc. Сегодня вечером постараюсь после работы забрать и буду держать в курсе дел.

Примерный план будет такой:
  1. Сначала на девайс установлю то, что подлерживает Magisk, реализую детект его в обход его систем защиты и сокрытия. Расскажу об этом :)
  2. Потом почищу, накачу Xposed и продолжу статьи по Xposed.
 
  • Нравится
Реакции: PyatkaUbiyca и loodoo4ka

loodoo4ka

One Level
11.03.2019
5
4
BIT
0
Специально чтобы поиграться с Magisk (а я ему не доверяю) заказал отдельный android девайc. Сегодня вечером постараюсь после работы забрать и буду держать в курсе дел.

Примерный план будет такой:
  1. Сначала на девайс установлю то, что подлерживает Magisk, реализую детект его в обход его систем защиты и сокрытия. Расскажу об этом :)
  2. Потом почищу, накачу Xposed и продолжу статьи по Xposed.
Вдобавок рассмотри реализацию обхода детекта device id, geo ну и nfc конечно же, не говоря уже о банках, всё конечно же на Magisk. Тогда статья будет бомбезна!)
 

deadroot

Green Team
06.01.2019
60
142
BIT
2
Вдобавок рассмотри реализацию обхода детекта device id, geo ну и nfc конечно же, не говоря уже о банках, всё конечно же на Magisk. Тогда статья будет бомбезна!)

Я сейчас начну писать серию статей, где рассмотрю основные аспекты создания фермы девайсов и на что нужно обращать внимание с кусками кода ;) конечно это затронет очень многие аспекты работы системы :)
 
  • Нравится
Реакции: solgood и never
B

barabanschik

так может получится и гугл пей с его сафети нет побороть? а то без xposed и xprivacy lua очень напряжно телефон юзать, хочется очень гугл пей завести а я так понимаю апк, которую сафети.нет скачивает и запускает на всех андроидах просто блеклист содержит, на которых палится xposed. Я думаю если рут есть на телефоне то скрыть можно всё что угодно

вот еще писали - Check for native methods that shouldn’t be native.
The Xposed framework works by changing the method type of hooked methods to “native” and replacing the method within its own code
So given this abnormal behavior we can do the following to detect hooking within our own package.

  • Find the location of our application’s DEX file.
  • Enumerate all the classes within the DEX file.
  • For each class in the DEX file, use reflection to check for the existence of native methods that shouldn’t be native.
 
J

Jon

Нужен рабочий модуль для того чтобы спрятать рут права и xposed
 

sosiskapi

Green Team
28.12.2016
57
22
BIT
0
К сожалению у меня Magisk не заводиться, но Xposed радует своими модулями, но все удалил оставив rootcloak и xprivace В последнем куча настроек и поднастроек нужо быть очень внимательным. Кто хочет глянуть на xposed не рискуя системой и не имея рут, советую прогу с f-droid . Это виртуальная среда в которой устанавливаются и запускаются приложения, в ней у меня заработал браузер
в то время, как, не работал на основной системе, модули работали не все из xprivace вылетало. Как я понял прикол этой виртуалки в таких штуках FakeGaps и MicroG позволяли притворяться, что есть гугл сервисы и т.д тут

Как я понял эти штуки перестали работать и приложения типо ebay палит, что нет гугле сервисов. <Хочу поделиться своим секретиком На счет подмены данных которые можно проверить этой , там разберетесь.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!