Pull to refresh
4
0
Джиджоев Владислав @dzhidzhoev

User

Send message

В помощь тем, кто погружается в Smali

Reading time6 min
Views2.8K

Целевая аудитория этой статьи — люди, которые решили заняться исследованием .apk файлов, имеющие опыт разработки под Android и знакомые с основами синтаксиса Smali. Эта статья является оригинальной и ранее нигде не публиковалась. При копировании, прошу указывать ссылку на этот источник.

Поскольку устройства, использующие операционную систему Android сегодня устойчиво сохраняют лидерство на рынке, программы для них не пишет разве что самый ленивый мобильный разработчик. Иногда программы ведут себя так, как мы этого ожидаем, а иногда (все чаще) не совсем так. И тогда, у пользователя программного продукта, особенно если он сам занимается разработкой, появляется ожидаемый интерес, и ему хочется понять почему программа делает то или это. Тогда пользователь, с чисто научно-позновательной целью, решает произвести вскрытие субъекта. Тут то на помощь ему и приходит множество инструментов для изучения файлов .apk.

Мой стандартный хирургический набор, на сегодняшний день, состоит из таких инструментов:
apktool - для декомпиляции и сборки apk
jadx-gui - когда хочется получить код приложения (или, что чаще — часть кода) в виде Java.
Bytecode Viewer — когда хочется получить код в виде Java, используя разные декомпиляторы, что дает иногда весьма интересные результаты.
zipalign — утилита из состава Android Studio, предназначенная для выравнивания содержимого файлов, упакованных в .apk.
apksigner - утилита из состава Android Studio, предназначенная для подписи исследуемого файла, и успешного его запуска на устройстве.

средства автоматизации собственной разработки — накапливаются с опытом. Иногда возникает столько рутинной работы, типа заменить A на B во всех файлах, что руки опускаются. Но, мы не из тех, кто сдается. И поэтому, исключительно из-за своей лени пишем утилиты, которые, собственно и позволяют нам лениться ). Однако, для меня, основными инструментами все же являются: файловый менеджер с хорошо организованным внутрифайловым поиском ( я использую Krusader, потому что Ubuntu), и редактор с какой-никакой подсветкой синтаксиса (я использую Kate, потому что Ubuntu).

На основании своего опыта исследования классических .apk (когда программа написана на Java или Kotlin c UI на xml шаблонах), ответственно заявляю, что получить из оригинального .apk рабочий проект Android Studio МОЖНО! И я говорю далеко не про Hello World. Но и тут есть свои особенности. Все зависит от того, насколько автор программы позаботился о защите ее кода. По моим наблюдениям до 80% программ уровня ширпотреба не имеют никакой защиты кроме примитивной обфускации.

Однако, и в этом случае для получения рабочего проекта на Java, скорее всего придется потрудиться. Во-первых: многие куски кода придется дописывать самому — декомпиляторы очень часто не справляются, но честно пишут, там где не могут воспроизвести код. Во-вторых: необходимо будет восстанавливать ресурсы из десятичного индекса в их привычный для разработчика Android вид. В третьих: подби

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments0

Оценка эффекта персонализации баннеров в Альфа-Банке с применением библиотеки Kolmogorov ABacus

Level of difficultyMedium
Reading time9 min
Views2.9K

Знакома ли вам такая ситуация: вы разработали модель машинного обучения и попытались оценить эффект, но эксперимент показал, что модель не принесла никакого экономического эффекта?

Значит ли это, что модель действительно неэффективна? Или причина низких результатов все-таки в чем-то другом? И если так, то в чем именно?

Нечто подобное случилось с командой Альфа-Банка, и мы – GlowByte Advanced Analytics – отправились к ним на помощь, захватив с собой разработанную нами библиотеку A/B-тестирования Kolmogorov ABacus (что в переводе означает “счеты”)!

Как нам удалось решить эту проблему?
Total votes 20: ↑19 and ↓1+18
Comments0

В США собираются модернизировать морально устаревшие АЭС, продлив им жизнь

Reading time3 min
Views14K


В такой большой стране, как США около 20% всего производимого электричества генерируется на АЭС. Атомная энергетика дает около 50% так называемого «низкоуглеродного электричества». Но сейчас у Штатов с этим проблемы — дело в том, что подавляющее большинство АЭС были построены в 70-х и 80-х годах прошлого века.

Единственный реактор установили в 90-х, так что он может считаться «молодым». Все остальные морально и физически устарели. Правда, моральное устаревание здесь превалирует, поскольку американцы стараются заменять устаревшее оборудование.
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments51

Ленивый Reverse Engineering — Часть 2

Reading time4 min
Views6.3K

Статья расскажет о практическом аспекте при использовании инструментария, который позволяет производить исследование программного обеспечения с минимальным порогом вхождения и максимальной информативностью. Рассмотрим следующие инструменты:

эмуляторы
библиотеки для разбора форматов файлов
интерактивные дизассемблеры
документация
динамическая инструментация

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments0

За рулем с D

Reading time7 min
Views8.9K

Вот что приходит мне на ум, когда я думаю о D: быстрый, выразительный, легкий и... драйвовый? Именно так, я вожу машину вместе с D.

Вот мой почтенный автомобиль Holden VZ Ute. С завода он поставлялся с убогой четырехступенчатой автоматической коробкой передач. За 18 месяцев владения автомобилем я сломал четыре коробки передач. В то время я не мог позволить себе новый автомобиль, поэтому мне пришлось творчески подойти к делу. Я купил железобетонную, дуракоустойчивую шестиступенчатую автоматическую коробку передач от другого автомобиля. Но на этом я уперся в тупик. Чтобы заставить ее работать, мне пришлось собрать собственную печатную плату, систему управления и прошивку для управления соленоидами, гидравликой и сцеплениями внутри коробки передач, обработки команд водителя, принятия решений о переключении передач и взаимодействия с автомобилем, притворяясь четырехступенчатым автоматом.

Гони!
Total votes 19: ↑18 and ↓1+17
Comments1

Трипаносомоз — паразиты в крови или почему боятся мух Цеце?

Reading time16 min
Views23K

Как бы выглядело пришествие описанного христианами Вельзевула, демона мух и вместилища мора, на землю, если бы оно всё же состоялось?

Пробудилась бы древняя болезнь из неизвестных земель, затем, привезенная вместе с болью и страданием на побережье работорговцами, она охватила бы весь континент, увлекая за собой сотни тысяч жертв в водоворот жестоких смертей. А следом за эпидемиями следовали бы войны, нескончаемые войны... Первая мировая, войны колоний и метрополий, гражданские конфликты, голод, нищета и десятки новых заболеваний, одно хуже другого. К сожалению, я сейчас описываю реальную историю одной из Африканских болезней и одну из самых масштабных эпидемий, произошедшую на стыке столетий.

Сонная болезнь или трипаносомоз - паразитарное заболевание. Вызывает его паразит Trypanosoma brucei, а разносят кровососущие мухи Цеце. Эпидемия, о которой я сегодня расскажу, продлилась почти 20 лет, унеся по самым приблизительным подсчетам около полумиллиона жизней, разгоревшись, как лесной пожар, и сменившись эхом колониальных и гражданских войн Европы в Африке. Имеющиеся лекарства были немногим лучше симптомов, а доктора отправлялись в страну мёртвых с той же скоростью, что и больные. Ну, да давайте обо всём по порядку.

Крылатый Баал.

Причем тут вообще Вельзевул? Кто это и откуда? В христианском миропонимании этим именем обычно зовут подручного дьявола, демона или принца демонов. Само имя "Вельзевул" взято из старосемитских верований, но и они его заимствовали, если вовсе не придумали. "Баала" - а по сути это просто обозначение бога - скрестили с мухой "Зевув", создав образ Повелителя мух, отталкивающий и пугающий. И если мы откроем Вторую Книгу Царей канонической еврейской библии, то мы встретим там "Бааль Зубоба" в том контексте, что он бог Экрона, одного из филистимлянских городов, враждующих с иудеями. Но зачем кому-то поклоняться богу мух, так ли он действительно назывался?

Соломон встречается с царицей Саабе, барельеф, Батистерио Сан-Джованни, Флоренция, Италия.

Читать далее
Total votes 106: ↑105 and ↓1+104
Comments15

Chuwi выпустила крохотный ПК с 6 ГБ ОЗУ и четырехъядерным процессором

Reading time2 min
Views59K

Летом китайская компания Chuwi выпустила миниатюрный ПК, который помещается на ладони, но при этом способен служить медиацентром или офисным ПК с ОС Windows или Linux. Конечно, его можно использовать и для решения других задач.

Сейчас этот ПК усилили, снизив при этом цену. Размеры компьютера, который называется Chuwi LarkBox Pro, не изменились — 2.4″ x 2.4″ x 1.7″. О характеристиках и возможностях — под катом.
Total votes 82: ↑76 and ↓6+70
Comments166

Любовь, смерть и роботы: рассматриваем рассказы Азимова глазами разработчика

Reading time8 min
Views8.6K


В честь Дня программиста мы решили немного расслабиться и перечитать любимые рассказы Айзека Азимова. И тут нас ждало открытие: оказывается, писатель-фантаст более полувека назад достаточно точно описал многие реалии современной разработки. Как это возможно, спросите вы? Давайте разберёмся вместе. 
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments19

Программист 2020: Терминатор отдыхает

Reading time6 min
Views32K
Программист сегодня не то что прежде — одного знания языка (или языков) программирования мало, чтобы быть действительно конкурентным на рынке труда. Ты можешь сколько угодно прописывать в коде на С++ указатель на указатель на указатель, но какой в этом толк, если твой работодатель плачет (менее ванильные ребята орут, лишают премии, угрожают и стоят на стороне клиента — в смысле живого клиента и пользователя вашей программы, а не того, что обменивается информацией с сервером)? Какое-то время назад что гаджеты, что концепции управления, что тенденции подбора персонала тяготели к одному и тому же: модульности, дискретности, а то и даже примитивизации и узкой специализации сотрудников, софта, инструментов. Но эволюция повернула не туда и теперь мир требует умные устройства, которые умеют всё, многофункциональные программы и приложения (привет, Яндекс Go) и, конечно, универсальных специалистов. Концепция «человека-оркестра» вернулась в тренд, не успев уйти из него. 


Итак, что вам нужно для полного программистского счастья соответствия набора в конце 2020?
Читать дальше →
Total votes 76: ↑59 and ↓17+42
Comments35

Как реализованы JIT-компиляторы

Reading time17 min
Views14K

В этой статье мы поговорим о подробностях реализации и работе разных JIT-компиляторов, а также о стратегиях оптимизации. Обсуждать будем достаточно подробно, однако многие важные концепции опустим. То есть в этой статье не будет достаточной информации, чтобы прийти к обоснованным заключениям при любых сравнениях реализаций и языков.

Чтобы получить базовое представление о JIT-компиляторах, почитайте эту статью.

Небольшое примечание:

Я часто буду описывать поведение оптимизации и утверждать, что она, вероятно, есть и в каком-нибудь другом компиляторе. Хотя я не всегда проверяю, есть ли эта оптимизация в другом JIT (иногда всё неоднозначно), но если знаю точно, то укажу на это. Я также приведу примеры кода, чтобы показать, где может быть применена оптимизация, но это не точно, ведь приоритет может быть отдан другой оптимизации. Могут быть и какие-то общие упрощения, но не больше, чем в большинстве подобных постов.

Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments1

Полный перевод книги про построение сообществ: «Социальная архитектура»

Reading time2 min
Views15K
«Это эссенция тридцатилетнего опыты разработки программного обеспечения.»
Приветствую, Хабр.

Хочу представить лучшую (единственную) книгу по построению сообществ, написанную тру ИТишником.

Для себя я нашел применимые инструменты для анализа сообщества/организованности «на лету»(я и еще более 100 человек провели «аудит» Хабра), а так же подсказки, какой "генотип" закладывать при разработке нового продукта/брэнда/движухи. Читайте, сохраняйте, расшаривайте и пишите свой отзыв.

Об авторе


«К сожалению, мы не выбираем себе смерть, но мы можем встретить ее достойно, чтобы нас запомнили, как мужчин.»
— к/ф «Гладиатор»



Питер Хинченс (Pieter Hintjens) — бельгийский разработчик, писатель. Занимал должность CEO и chief software designer в iMatix, компании, производящей free software, такие как библиотека ZeroMQ (библиотека берет на себя часть забот о буферизации данных, обслуживанию очередей, установлению и восстановлению соединений и прочие), OpenAMQ, Libero, GSL code generator, и веб-сервиса Xitami.

  • Автор более 30 протоколов и распределенных систем.
  • Основатель проекта Edgenet по созданию полностью безопасной, анонимной глобальной P2P-сети.
  • Президент ассоциации Foundation for a Free Information Infrastructure (FFII), которая воевала с патентным правом.
  • CEO сервиса по созданию собственных вики-проектов Wikidot.
  • Он был активистом open standards и основателем Digital Standards Organization.
  • Питер в 2007-м был назван одним из 50 самых влиятельных людей в области «Интеллектуальная собственность».

Читать и добавить в избранное
Total votes 11: ↑11 and ↓0+11
Comments6

Оплатить обучение кодингом: российские бакалавры могут выиграть стипендию на обучение в магистратуре в Швейцарии

Reading time4 min
Views6.2K
Привет, Хабр! Этот пост предназначен для тех, кто хочет стать магистром наук в области информатики и программной инженерии, причем не в российском вузе, а в Швейцарии. Такую возможность предлагает Schaffhausen Institute of Technology (SIT). Учебный план этого института построен таким образом, что полученные навыки и знания позволят выпускникам претендовать на должности CIO или CISO в крупных корпорациях, либо развивать свой ИТ-проект на международном уровне. Также сегодня речь пойдет о конкурсе, победителям которого будет предоставлена возможность бесплатного обучения в SIT. Всех желающих узнать больше о новой магистерской программе, обучении в Швейцарии под руководством мировых ученых и нобелевских лауреатов и о стипендиях, предусмотренных победителям конкурса, приглашаем под кат.

image

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

Полнотекстовый поиск в Android

Reading time7 min
Views9.1K
В мобильных приложениях очень востребована функция поиска. И если в небольших продуктах ею можно пренебречь, то в приложениях, которые предоставляют доступ к большому количеству информации, без поиска не обойтись. Сегодня я расскажу, как правильно реализовать эту функцию в программах под Android.


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments9

Политкорректность проникает в Россию через книги про проектирование чипов на SystemVerilog для не-начинающих

Reading time11 min
Views19K
Наконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.

В главе про последнее российского читателя может озадачить упоминание «политкорректной системы». Что бы это значило? Это вероятно намек на казус, который произошел в округе Лос-Анжелес в 2003 году. Чиновники Лос-Анджелеса попросили производителей, поставщиков и подрядчиков прекратить использование терминов «master/slave» («хозяин» и «раб») в отношении компьютерного оборудования, так как одному из работников округа эти термины напомнили про рабовладельческое прошлое.

Сейчас авторы технической литературы избегают терминов master/slave. В современной Америке работают и афро-американские инженеры (например София Мвокани из Камеруна — на фото слева), и использование старых терминов выглядит архаично, как выглядели бы например термины «пан/холоп» в украинской технической литературе вместо принятых «провідний/ведений» (рус. «ведущий/ведомый»).

Это не первый раз, когда в российском электронном образовании появляется тема борьбы афро-американцев за гражданские права. Например Татьяна Волкова, известный специалист по образованию в электронике, носит маечку с эмблемой «Черных Пантер», калифорнийского движения, которое в свое время сочло мирный протест недостаточным, и занялось вооруженным протестом.



Полное изображение эмблемы под кожанкой Татьяны Александровны — под катом, но в основном я буду рассказывать про дельта-циклы и конечные автоматы:
Читать дальше →
Total votes 43: ↑32 and ↓11+21
Comments47

Модели натурального ряда чисел и его элементов: Геометрическая (плоскостная) модель натурального ряда

Reading time10 min
Views4.6K

   

Задача криптографического анализа шифра (атака на шифр) предполагает построение и исследование модели криптографической системы (алгоритма шифра и его элементов), а также ситуации, в рамках которой осуществляется криптоанализ. Для шифра RSA такой моделью его элемента должны быть модели нечетного числа, которые криптоаналитик стремится факторизовать.

Эта статья является первой из цикла, в котором будут показаны различные модели натурального ряда чисел (НРЧ), отдельного числа и некоторые другие, а также подходы для решения задачи факторизации, основанные на этих моделях.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments6

Хватит подозревать разрабов в самозванстве. Научитесь лучше собеседовать

Reading time3 min
Views123K


Ну привет. Я только что с собеса, и у меня бомбит. Сколько не пишут на Хабре, как правильно собеседовать — лучше не становится.


Мне кинули предложение — Senior full-stack .NET Developer, удаленно, крутой проект, куча денег. В списке требований хренова гора не связанных между собой вещей из мира .net и js/ts. Выглядит так, будто просто свалили в кучу все, что нагуглили за 10 минут — причем мало понимая, что именно.


Тревожно, но ничего. Собеседовать, думаю, будет разработчик — человек, с которым я говорю на одном языке. Расскажу про то, что делал, обсудим подходы к решению задач, проблемы в .NET, перспективы C#. Поговорим про структуры данных. Расскажу, почему структурная типизация мне нравится больше, чем мнемоническая. Если пойдет хорошо, поделюсь даже своей идеей фикс — всегда использовать структуры вместо классов в качестве моделей. Посравниваю FLUX с MVVM, расскажу, как нереально красив симбиоз ФП и ООП в TypeScript.


В общем, предвкушаю хороший разговор.

Читать дальше →
Total votes 309: ↑275 and ↓34+241
Comments1581

Мой любимый файл в кодовой базе Chromium

Reading time6 min
Views86K
Код Хромиума весьма обширен, там каждому найдётся что-то по вкусу. А я вот решил рассказать о своём любимом файле в нём (а у вас есть такой?). Этот файл отражает всё: боль, разочарование, надежду, упорство, силу воли, ответственность за чужие провалы и самопожертвование. Я иногда читаю его и плачу и проникаюсь пониманием, какая же огромная часть айсберга скрыта под водой. Это, в общем, даже не файл с кодом. Это файл с конфигом, описывающим баги видеокарт, которые Хромиуму приходится обходить для нормального отображения своих страниц на разных платформах. Вот он: https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list.json

О чём вообще идёт речь? Давайте вспомним, как работает браузер: вы набираете какой-то адрес в адресной строке, браузер загружает контент и отображает его. Чуть детальнее об этом рассказывает хорошая статья «What happens when you type google.com into your browser and press enter?» (и сразу несколько её переводов на Хабре). В ней одним из последних пунктов упоминается, мол, «а теперь, когда всё готово, отрисовываем картинку на экране». Ага, вот так берём и отрисовываем, конечно.
Читать дальше →
Total votes 186: ↑185 and ↓1+184
Comments179

Внутренняя работа HashMap в Java

Reading time6 min
Views255K

[примечание от автора перевода] Перевод был выполнен для собственных нужд, но если кому -то это окажется полезным, значит мир стал хоть немного, но лучше! Оригинальная статья — Internal Working of HashMap in Java


В этой статье мы увидим, как изнутри работают методы get и put в коллекции HashMap. Какие операции выполняются. Как происходит хеширование. Как значение извлекается по ключу. Как хранятся пары ключ-значение.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments18

24-ядерный CPU, а я не могу набрать электронное письмо

Reading time9 min
Views100K
Я не искал неприятностей. Не запускал процесс сборки Chrome тысячу раз за выходные, а только занимался самыми обычными задачами 21-го века — просто писал электронное письмо в 10:30 утра. И вдруг Gmail подвис. Я продолжал печатать несколько секунд, но на экране не появлялось никаких символов. Затем внезапно Gmail отвис — и я вернулся к своему очень важному письму. Но впоследствии всё повторилось, только на этот раз Gmail ещё дольше не отвечал запросы. Это странно

Трудно устоять перед возможностью провести хорошее расследование, но в данном случае вызов особенно силён. Ведь я в Google работаю над улучшением производительности Chrome для Windows. Обнаружить причину зависания — моя работа. И после множества фальстартов и тяжёлых усилий мне всё-таки удалось выяснить, как Chrome, Gmail, Windows и наш IT-отдел вместе помешали мне набрать электронное письмо. По ходу дела нашёлся способ сэкономить значительное количество памяти для некоторых веб-страниц в Chrome.

В расследовании оказалось так много нюансов, что я оставлю некоторые для другой статьи, а сейчас полностью объясню причины подвисаний.
Читать дальше →
Total votes 137: ↑129 and ↓8+121
Comments161

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 1 — 14

Reading time24 min
Views59K

Некоторое время назад в моей ленте в фейсбуке всплыла ссылка на книгу Эндрю Ына (Andrew Ng) "Machine Learning Yearning", которую можно перевести, как "Страсть к машинному обучению" или "Жажда машинного обучения".


image<img src="<img src="https://habrastorage.org/webt/ds/rc/ct/dsrcctfottkedkf7o1hxbqsoamq.png" />" alt="image"/>


Людям, интересующимся машинным обучением или работающим в этой сфере представлять Эндрю не нужно. Для непосвященных достаточно сказать, что он является звездой мировой величины в области искусственного интеллекта. Ученый, инженер, предприниматель, один из основателей Coursera. Автор отличного курса по введению в машинное обучение и курсов, составляющих специализацию "Глубокое обучение" (Deep Learning).

Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments3
1
23 ...

Information

Rating
Does not participate
Location
Владикавказ, Северная Осетия, Россия
Registered
Activity