All streams
Search
Write a publication
Pull to refresh
12
0
Михаил @melon

Программист

Send message
Круто! Народ, зацените график для цен на айфоны priceanalytic.com/item/73558. Видны два отчётливых пика перед 4 и 11 ноября, которые были днями распродажи) Очередное доказательство, что чёрная пятница в РФ не более чем утка!
Механизм работы бинарной трансляции устроен таким образом, что он отслеживает изменения оперативной памяти и оттранслированный блок сразу аннулируется и вытесняется из кэша, как только произошло изменение памяти на которую он ссылался. Именно поэтому в эмуляторе всегда будет f1 f2 f1 f2 f1 f2. Да, я согласен что это поведение также можно изменить, просто это сложнее и тут нужно хорошее понимание алгоритма бинарной трансляции. Но ничего невозможно нет, тут ты прав) И никогда не говори никогда, тоже соглашусь с тобой. Про «случайную последовательность» я думаю они имели ввиду, что на их устройствах так. Но даже если будет f1 f1 f1 f1 f1, мы сможем отличить её от последовательности эмулятора f1 f2 f1 f2 f1 f2. Гарантий что это будет работать устройствах я дать не могу, как и авторы статьи вроде бы тоже их не дают. Они дают всего лишь набор эвристик, которые работают у них.
мне кажется функция достаточно маленькая и умешается в одну страницу кэша, хотя я могу ошибаться. Так что варианта, что будет испольняться часть кода одной функции и часть другой мне кажется не будет. Самомодифицирующийся код никакой не криминал, а нормальная ситуация для малвари. Если этот код будет работать на более чем 50% устройств, я думаю авторов малвари это устроит) Но мне всё же кажется, что поведение на реальном оборудовании всегда будет отличаться от поведения в эмуляторе, потому что кэш на реальном устройстве не обновляется сразу и я не верю в то, что он может быть выключен, потому что иначе всё будет работать дико медленно и такие телефоны и устройства вряд ли кому нужны.
Согласен, многие недостатки указанные в статье можно исправить. Правда второй тест с самомодифицирующимся кодом исправить намного сложнее чем тест с прерываниями, и поскольку я не специалист в бинарной трансляции я не скажу как, хотя возможно уже есть решения. Данная же статья лишь отражает текущее положение дел и показывает векторы развития. На текущий момент мы имеем что все песочницы «палятся». Особенно печальным мне кажется что палится Google Bouncer, которым проверяют приложения в маркете. А это значит залить вредоносное приложение в маркет не составляет труда. Обфусцировать его, чтобы никто не догодался что на самом деле делает приложение и ву-а-ля, отличный вектор атаки.
Всё зависит от задачи которая перед нами стоит. Если мы хотим запустить конкретный эксплоит, то он может быть завязан на уязвимостях конкретной прошивки устройства, а это значит нам нужно запускать на нём. Ведь как показывает практика 70% уязвимостей Android — это уязвимости в прошивках устройств от вендоров. Официальный Android не такой дырявый и достаточно постоянно обновляется.
Википедия говорит, что на эмуляцию 1 такта виртуального процессора уходит 260 тактов физического процессора. Если я правильно понимаю, это замедление в 260 раз, я думаю это будет оооочень медленно. Но да, с таким подходом, мы палиться не будем палиться, если только приложение не завязано на каком-нибудь взаимодействии со внешним миром(по сети например). Именно поэтому сейчас смотрят в сторону применения гипервизоров, а не виртуальных машин в этой области, потому что они дают маленький оверхед и могут быть запущены на реальном устройстве, чтобы не эмулировать всю эту аппаратуру, потому что спецификаций нету и на эмуляцию могут уйти годы. А устройства клепаются сейчас достаточно быстро. systems.cs.columbia.edu/projects/kvm-arm — вот эти ребята из Columbia University пилят. Мне почему-то кажется, что за этим подходом будущее, хотя полная и точная эмуляция аппаратуру это тоже круто конечно!
Согласен, но представь если у нас замедленее в 10 раз и в приложение соединяется по сети и на сокетах установлен тайм-аут и если у нас очень медленно работает приложение сокеты вылетают по тайм-ауту. Или же значения времени берётся по зашифрованному каналлу по сети. Так что и да, и нет одновременно.
как один из вариантов. Но JTAG есть далеко не во всех мобильниках(производители его отключают насколько мне известно), а вирусописатели могут затачиваться под конкретные уязвимости в прошивках определённых устройств.
в разделе 2.3. написано как определяют QEMU с помощью самомодифицирующегося кода и по работе механизма переключения конктекста.

Information

Rating
6,276-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity