Ок, по логированию. Так что именно он начинает логировать? В вашей статье ничего этого нет. У вас просто указание на инициализатор класса. Поясните?
Где драма вселенского масштаба из-за DpsInitProvider с моей стороны? Это у вас драма "сливают" "шпионы" и т.д. Я вам просто указываю, что вы ничего не подтвердили и просто описали поведение почти любого приложения в системе Андроид.
АГА! Мы выяснили, что в обфускация в коде DpsInitProvider (а не в Манифесте, в Манифесте уже все нормально, но в статье-то все еще про Манифест речь).
Эти провайдеры инициализируются по своим именам классов, вот вы мне их прямо и указали. Какая цель-то у всего этого? Я так понял, что вы говорите о том, чтобы спрятать SDK, которые инициализируются... Но они литералли плейнтекстом лежат. Плюс файлы классов SDK и типичные запросы очень хорошо видно при статическом/динамическом анализе.
смешиваете два принципиально разных понятия - стандартную обфускацию кода (proguard/r8, переименование классов в p000.a) и целенаправленное шифрование строковых ключей в метаданных манифеста.
Да, кстати, насчет этого. Я поправился в комментарии, погуглите, что такое DexGuard или подобные подходы.
Повторюсь, вы со своей обфускацией заладили, никак на мои 4 вопроса первоначальные не ответили.
Повторю их:
НАХОДКА 7: LoggerInitializer
Вы понимаете же, что это просто класс логгера, который во всех приложениях есть, потому что все приложения что-то логируют как правило? Если это не детский пет-проект, а любой мало-мальский энтерпрайз, которому нужно ошибки клиентов отлаживать?
Читает meta-data из AndroidManifest
Вы же понимаете, что любое приложение может читать свой Манифест и вообще-то автоматически его читает при запуске? Вы в курсе, как работает система Андроид?
Потому что обфускация - это стандартные флаги компиляции... Просто ставишь в gradle.config minifyEnabled true и получаешь такой аутпут. Что это вообще доказывает? Это вы себе придумали, что код должен быть открытый и всем доступный.
Я 4 примера привел. Если вы не поняли суть - в тексте это обозначена как какая-то находка или проблема. Где здесь проблема? Вы вообще понимаете, что это стандартное системное поведение?
P.S. Если вы считаете, что нельзя врубать флаги обфускации вы еще, может, скажите, что HTTPS нельзя использовать? Или еще что нужно всегда все исходники выкладывать?
P.P.S. Насчет обфускации перечитал кусок в статье. Ок, это не minifyEnabled флаг, что-то уровня DexGuard или аналогичного. Вывод не отменяет. Наличие обфускации - это абсолютно нормальный ход защиты от скрейпинга, который применяет вся индустрия в том или ином виде. Некоторые регуляторы даже ее требуют явным образом.
Это был бы нормальный разбор, а не вот этот компот от автора в духе "НАХОДКА 7: LOGGER INITIALIZER", за которой следует... инициализация класса инциализации логгера (?)
С такими базовыми вещами он обычно нормально справляется.
Сложности возникают в случае узкоспециализированных запросов, которые требуют строгой логической согласованности, например, написание кода конфига с подключением аддона. Или решение логической задачи (при этом можно поспрашивать, например, как сделать это без аддона или вообще в каком направлении двигаться, чтобы решить проблему).
В целом поражает, что уровень "понимания" почти всех базовых концептов, которые могут придти в голову, у этого чатбота очень хорош. Но при этом он туповат в плане построения цепочек логических выводов. Но надо сказать, что человек тоже "out of box" не очень хорошо строит какие-то длинные цепочки, а то, что таковым кажется обычно подразумевает наличие у этого человека набитых шишек на вопросе и изучение опыта других набивших шишки.
Проблемы с рендерингом и его поддержкой высосаны из пальца. Flutter просто имеет свой движок рендеринга + набор UI под android/ios нативные компоненты. Не вижу проблем особых с поддержкой этих наборов, т.к. он почти не меняется (ну вот скажите, что такого особо важного нового появилось в нативных компонентах за последний год-два?), а при необходимости очень легко кастомизируется.
Сканер штрихкодов. Что, правда в компании размера Ozon не найти на аутсорс двух нативщиков на неделю, чтобы они написали плагин нативный по работе с камерой, чтобы потом использовать его из Dart?
К Hive вообще много вопросов -- почему именно эту БД выбрали для проектов. Есть более качественные решения и более быстрые.
Ну вот насчет SDK для аналитики, возможно, есть нюансы, но все равно что-то слабо верится, что написать обертку над нативкой -- это такое сложное занятие. У меня был опыт, при том, что в нативке я почти не работаю, делал по слабым воспоминаниям о котлине и мануалам по свифту.
Фактически все эти обертки - это просто прокидывание вызовов к нативному коду. В чем здесь могут быть проблемы - не представляю и с такими проблемами не встречался.
Сейчас, например, делаю кросплатформенный ВПН (десктоп + мобилка). Вот сидим и пишем плагины для работы с нативным платформенным API. Один раз написали и забыли, дальше все чисто на Flutter. Понятно, что есть какие-то баги, но они минимальные, потому что у всех этих плагинов как правило очень простая логика работы -- они 1 к 1 мапят системные вызовы.
Ваш кейс вообще выглядит как очень простое приложение на Flutter. Я бы в 10 из 10 случаев рекомендовал писать его на Flutter и не обращать внимание на аргументы из разряда "мне не нравится Dart" и "Google убьет Flutter" (почему воообще, лол) пропускать мимо ушей.
Мне кажется, мистер @Maximov_psyслишком сильно отделяет рационализацию от эмоций. Вот в примере с дождем выше: дождь пошел и мне грустно так как: а) это нарушило мои планы б) напомнило мне о грустном событии в жизни.
Я могу осознать то, что определенная эмоция возникает у меня в результате дождя из-за каких-то не полностью формализуемых нейронных связей в моей голове. Я не планирую дальше в это углубляться, я просто буду знать, что дождь влияет на мое настроение. Возможно, я подумаю о том, чтобы систематически улучшить мое настроение, перебравшись в более теплую страну. Возможно, я пойму, что мы расстались с моим хомяком в дождливую погоду, поэтому я испытываю чувство стыда, так как хомяк потом умер от неразделенной любви, порезав себе вены остро заточенным концом от металлической пипетки для водопоя в своей маленькой унылой клетке совсем один вдалеке от родного дома под лозунги о денацификации Украины.
Причем уровень абстракции может быть любой. Например: мне весело с этим человеком. Я могу пытаться формализировать дальше, но мне это не нужно, я просто прихожу и веселюсь. Если поток счастья прекращается, то можно начинать думать, что пошло не так.
И вся ваша работа,@Maximov_psy, это рационализация эмоций для возможности их использования в благоприятном для субъекта ключе, не так ли?
С чем это связано -- без понятия. Может, отключили рекламную кампанию? Может, поменяли алгоритмы ранжирования для СМИ? Может, сами новостные сайты поменяли СЕО оптимизацию? Что значит "все ограничения введены вручную"?
Не проверил выдачу гугла по запросу "путин" в России -- так как за рубежом и русского ВПНа нет. В Чехии вижу следующие сайты (в порядке следования):
Так я не понял, ответственность личная, для всех или для страны целиком?
Какая по вашему оптимальная стратегия действий для Запада?
P.S. Я согласен, что моя изначальная формулировка "мирных людей уже нет" не корректна. Лучше будет "все граждане России несут ответственность за существующий режим". При этом размер этой ответственности разный. Для большинства он выражен в "штрафах".
Ну вы тут ставите знак = между экономическими санкциями и убийствами почему-то. Да, разрушают экономику. Но это все еще в рамках дипломатических решений. В отличие от нашей "ёперации". Я считаю это вполне приемлемой альтернативой полноценным боевым действиям со стороны НАТО&Co и эскалацией конфликта.
Про разрушение экономики и сопутствующий ущерб согласен с@darthmaul.
Товарищи, в этом плане выглядит довольно прикольным поисковик Neeva. У него модель подписки (правда, вроде как сделали бесплатный вариант, что немного беспокоит); нет рекламы; возможности полнотекстового поиска и интеграции с Notion, Google (Drive, Calendar, Contacts, Gmail) и потенциально другими сервисами, которыми я не пользуюсь; возможности фильтрации по "типу" контента (официальные источники, форумы, новости, etc.).
Всё это пока сыровато, но выглядит как решение проблемы с гуглом, если не скатится. По крайней мере, я заплатил 5$/мес и изучаю (чтобы зарегаться, нужен ip из США). На английском качества поиска хорошее + пока не пришли правообладатели и не повырезали половину контента.
Почитал тут в Консультант Плюсе следующее дело "от 24 июля 2018 г. N А40-18827/2017" с требованием "о признании действий ответчиков по извлечению и последующему использованию информационных элементов из базы данных пользователей социальной сети "ВКонтакте" нарушением исключительного права истца как изготовителя базы данных пользователей социальной сети "ВКонтакте", обязании ответчиков прекратить нарушение исключительных прав истца, прекратить извлечение информационных материалов из базы данных пользователей социальной сети "ВКонтакте", прекратить неоднократное использование информационных материалов из базы данных пользователей социальной сети "ВКонтакте", уничтожить со всех информационных носителей информационные элементы, ранее извлеченные из базы данных пользователей социальной сети "ВКонтакте", взыскании компенсации за нарушение исключительного права в размере 1 руб.".
С одной стороны выглядит так, как вы говорите. Парсить нельзя, потому что сайты - это базы данных, и мы извлекаем существенную их часть (это, собственно, позиция ВК). Но конкретно это дело, например, отправили на "доработку" в суд первой инстанции по причине отсутствия исследования механизма работы алгоритма извлечения данных из базы данных ВК ответчиком. Не было точно определено существенным ли было извлечение данных; непонятно, был ли факт "неправильного" использования базы даннных ВК для случая несущественного извлечения данных; непонятно, как именно использовались данные. Читать судебные постановления на этом моменте я потерял способность, которая восстановится непонятно когда, так что буду рад комментариям со ссылками на правоприменительную практику, где судом разрешены эти вопросы.
Вообще дело, кажется, интересное, потому что суд первой инстанции принял сторону ответчика, аппеляционный - ВК, а кассационный - послал всех н****.
Нарушение — парсить контент, владельцы которого сделали хотя бы самые минимальные телодвижения к тому, чтобы он был закрыт. Скажем robots.txt создали, где разрешили ходить только Гуглу и Яндексу.
Либо
Запрет на парсинг прописан в законе об авторском праве. И потому файлик robots.txt — это не запрет на парсинг, а разрешение на него.
Ок, по логированию. Так что именно он начинает логировать? В вашей статье ничего этого нет. У вас просто указание на инициализатор класса. Поясните?
Где драма вселенского масштаба из-за DpsInitProvider с моей стороны? Это у вас драма "сливают" "шпионы" и т.д. Я вам просто указываю, что вы ничего не подтвердили и просто описали поведение почти любого приложения в системе Андроид.
АГА! Мы выяснили, что в обфускация в коде DpsInitProvider (а не в Манифесте, в Манифесте уже все нормально, но в статье-то все еще про Манифест речь).
Эти провайдеры инициализируются по своим именам классов, вот вы мне их прямо и указали. Какая цель-то у всего этого? Я так понял, что вы говорите о том, чтобы спрятать SDK, которые инициализируются... Но они литералли плейнтекстом лежат. Плюс файлы классов SDK и типичные запросы очень хорошо видно при статическом/динамическом анализе.
Да, кстати, насчет этого. Я поправился в комментарии, погуглите, что такое DexGuard или подобные подходы.
Повторюсь, вы со своей обфускацией заладили, никак на мои 4 вопроса первоначальные не ответили.
Повторю их:
Вы понимаете же, что это просто класс логгера, который во всех приложениях есть, потому что все приложения что-то логируют как правило? Если это не детский пет-проект, а любой мало-мальский энтерпрайз, которому нужно ошибки клиентов отлаживать?
Вы же понимаете, что любое приложение может читать свой Манифест и вообще-то автоматически его читает при запуске? Вы в курсе, как работает система Андроид?
Это просто... класс кастомной ошибки. Или тут тоже злые шпионы поработали?
Вы документацию по ContentProvider читали, примеры кода ининциализации видели? Что такое ООП и наследование/override знаете?
Чего достигает ваше "супер шифрование строковых ключей в метаданных манифеста", какая конечная цель у этого невероятно опасного действия?
P.S. про какие сервисы речь?
P.P.S. покажите, что КОНКРЕТНО там в манифесте-то зашифровано. А то вы что-то про манифест написали, а сам манифест не показываете.
Потому что обфускация - это стандартные флаги компиляции... Просто ставишь в gradle.config minifyEnabled true и получаешь такой аутпут. Что это вообще доказывает? Это вы себе придумали, что код должен быть открытый и всем доступный.Я 4 примера привел. Если вы не поняли суть - в тексте это обозначена как какая-то находка или проблема. Где здесь проблема? Вы вообще понимаете, что это стандартное системное поведение?
> НАХОДКА 7: LoggerInitializer
> Читает meta-data из AndroidManifest
> SessionSenderUnexpectedException extends Exception
> Фальшивый ContentProvider (все методы пустые)
P.S. Если вы считаете, что нельзя врубать флаги обфускации вы еще, может, скажите, что HTTPS нельзя использовать? Или еще что нужно всегда все исходники выкладывать?
P.P.S. Насчет обфускации перечитал кусок в статье. Ок, это не minifyEnabled флаг, что-то уровня DexGuard или аналогичного. Вывод не отменяет. Наличие обфускации - это абсолютно нормальный ход защиты от скрейпинга, который применяет вся индустрия в том или ином виде. Некоторые регуляторы даже ее требуют явным образом.
Это был бы нормальный разбор, а не вот этот компот от автора в духе "НАХОДКА 7: LOGGER INITIALIZER", за которой следует... инициализация класса инциализации логгера (?)
Где анализ? Вот это вы "анализом" назвали?
> НАХОДКА 7: LoggerInitializer
> Читает meta-data из AndroidManifest
> SessionSenderUnexpectedException extends Exception
> Фальшивый ContentProvider (все методы пустые)
P.S. Кого вы обманываете. Вся статья - просто один большой нейрослоп отсталой LLMки
информация некорректная
автор не ответил ни на одну существенную перетензию
С такими базовыми вещами он обычно нормально справляется.
Сложности возникают в случае узкоспециализированных запросов, которые требуют строгой логической согласованности, например, написание кода конфига с подключением аддона. Или решение логической задачи (при этом можно поспрашивать, например, как сделать это без аддона или вообще в каком направлении двигаться, чтобы решить проблему).
В целом поражает, что уровень "понимания" почти всех базовых концептов, которые могут придти в голову, у этого чатбота очень хорош. Но при этом он туповат в плане построения цепочек логических выводов. Но надо сказать, что человек тоже "out of box" не очень хорошо строит какие-то длинные цепочки, а то, что таковым кажется обычно подразумевает наличие у этого человека набитых шишек на вопросе и изучение опыта других набивших шишки.
Проблемы с рендерингом и его поддержкой высосаны из пальца. Flutter просто имеет свой движок рендеринга + набор UI под android/ios нативные компоненты. Не вижу проблем особых с поддержкой этих наборов, т.к. он почти не меняется (ну вот скажите, что такого особо важного нового появилось в нативных компонентах за последний год-два?), а при необходимости очень легко кастомизируется.
Сканер штрихкодов. Что, правда в компании размера Ozon не найти на аутсорс двух нативщиков на неделю, чтобы они написали плагин нативный по работе с камерой, чтобы потом использовать его из Dart?
К Hive вообще много вопросов -- почему именно эту БД выбрали для проектов. Есть более качественные решения и более быстрые.
Ну вот насчет SDK для аналитики, возможно, есть нюансы, но все равно что-то слабо верится, что написать обертку над нативкой -- это такое сложное занятие. У меня был опыт, при том, что в нативке я почти не работаю, делал по слабым воспоминаниям о котлине и мануалам по свифту.
Фактически все эти обертки - это просто прокидывание вызовов к нативному коду. В чем здесь могут быть проблемы - не представляю и с такими проблемами не встречался.
Сейчас, например, делаю кросплатформенный ВПН (десктоп + мобилка). Вот сидим и пишем плагины для работы с нативным платформенным API. Один раз написали и забыли, дальше все чисто на Flutter. Понятно, что есть какие-то баги, но они минимальные, потому что у всех этих плагинов как правило очень простая логика работы -- они 1 к 1 мапят системные вызовы.
Ваш кейс вообще выглядит как очень простое приложение на Flutter. Я бы в 10 из 10 случаев рекомендовал писать его на Flutter и не обращать внимание на аргументы из разряда "мне не нравится Dart" и "Google убьет Flutter" (почему воообще, лол) пропускать мимо ушей.
Да неееее, это патриотизм, так можно. Как вы лодгку поплывете, так ее и назовет
Признать военнообязанных медсестер-айтишников как женщин
Поржал со штангенциркуля)
Мне кажется, мистер @Maximov_psyслишком сильно отделяет рационализацию от эмоций. Вот в примере с дождем выше: дождь пошел и мне грустно так как: а) это нарушило мои планы б) напомнило мне о грустном событии в жизни.
Я могу осознать то, что определенная эмоция возникает у меня в результате дождя из-за каких-то не полностью формализуемых нейронных связей в моей голове. Я не планирую дальше в это углубляться, я просто буду знать, что дождь влияет на мое настроение. Возможно, я подумаю о том, чтобы систематически улучшить мое настроение, перебравшись в более теплую страну. Возможно, я пойму, что мы расстались с моим хомяком в дождливую погоду, поэтому я испытываю чувство стыда, так как хомяк потом умер от неразделенной любви, порезав себе вены остро заточенным концом от металлической пипетки для водопоя в своей маленькой унылой клетке совсем один вдалеке от родного дома под лозунги о денацификации Украины.
Причем уровень абстракции может быть любой. Например: мне весело с этим человеком. Я могу пытаться формализировать дальше, но мне это не нужно, я просто прихожу и веселюсь. Если поток счастья прекращается, то можно начинать думать, что пошло не так.
И вся ваша работа,@Maximov_psy, это рационализация эмоций для возможности их использования в благоприятном для субъекта ключе, не так ли?
Нууууу... Вот по РИО новостям статистика (https://www.liveinternet.ru/stat/RS_Total/Riaru_Total/ref_servers.html?id=2126850&id=2129217&show=перестроить+график&per_page=10). Возможно, заблокировали их приложуху в сторе, да. Но никаких 90% не вижу.
По поводу Ленты -- тут, да, видно (https://www.liveinternet.ru/stat/RS_Total/Riaru_Total/ref_servers.html?id=2126850&show=перестроить+график&per_page=10), что упал трафик приложухи и с поиска одновременно.
С чем это связано -- без понятия. Может, отключили рекламную кампанию? Может, поменяли алгоритмы ранжирования для СМИ? Может, сами новостные сайты поменяли СЕО оптимизацию? Что значит "все ограничения введены вручную"?
Не проверил выдачу гугла по запросу "путин" в России -- так как за рубежом и русского ВПНа нет. В Чехии вижу следующие сайты (в порядке следования):
wikipedia
gazeta.ru
ria.ru
kremlin.ru
lenta.ru
rbc.ru
Так я не понял, ответственность личная, для всех или для страны целиком?
Какая по вашему оптимальная стратегия действий для Запада?
P.S. Я согласен, что моя изначальная формулировка "мирных людей уже нет" не корректна. Лучше будет "все граждане России несут ответственность за существующий режим". При этом размер этой ответственности разный. Для большинства он выражен в "штрафах".
Ну вы тут ставите знак = между экономическими санкциями и убийствами почему-то. Да, разрушают экономику. Но это все еще в рамках дипломатических решений. В отличие от нашей "ёперации". Я считаю это вполне приемлемой альтернативой полноценным боевым действиям со стороны НАТО&Co и эскалацией конфликта.
Про разрушение экономики и сопутствующий ущерб согласен с@darthmaul.
Потому что по их мнению никаких мирных людей уже нет и вы лично в ответе за действия своей страны.
Товарищи, в этом плане выглядит довольно прикольным поисковик Neeva. У него модель подписки (правда, вроде как сделали бесплатный вариант, что немного беспокоит); нет рекламы; возможности полнотекстового поиска и интеграции с Notion, Google (Drive, Calendar, Contacts, Gmail) и потенциально другими сервисами, которыми я не пользуюсь; возможности фильтрации по "типу" контента (официальные источники, форумы, новости, etc.).
Всё это пока сыровато, но выглядит как решение проблемы с гуглом, если не скатится. По крайней мере, я заплатил 5$/мес и изучаю (чтобы зарегаться, нужен ip из США). На английском качества поиска хорошее + пока не пришли правообладатели и не повырезали половину контента.
Откуда цифры?
Хмммм...
Почитал тут в Консультант Плюсе следующее дело "от 24 июля 2018 г. N А40-18827/2017" с требованием "о признании действий ответчиков по извлечению и последующему использованию информационных элементов из базы данных пользователей социальной сети "ВКонтакте" нарушением исключительного права истца как изготовителя базы данных пользователей социальной сети "ВКонтакте", обязании ответчиков прекратить нарушение исключительных прав истца, прекратить извлечение информационных материалов из базы данных пользователей социальной сети "ВКонтакте", прекратить неоднократное использование информационных материалов из базы данных пользователей социальной сети "ВКонтакте", уничтожить со всех информационных носителей информационные элементы, ранее извлеченные из базы данных пользователей социальной сети "ВКонтакте", взыскании компенсации за нарушение исключительного права в размере 1 руб.".
С одной стороны выглядит так, как вы говорите. Парсить нельзя, потому что сайты - это базы данных, и мы извлекаем существенную их часть (это, собственно, позиция ВК). Но конкретно это дело, например, отправили на "доработку" в суд первой инстанции по причине отсутствия исследования механизма работы алгоритма извлечения данных из базы данных ВК ответчиком. Не было точно определено существенным ли было извлечение данных; непонятно, был ли факт "неправильного" использования базы даннных ВК для случая несущественного извлечения данных; непонятно, как именно использовались данные. Читать судебные постановления на этом моменте я потерял способность, которая восстановится непонятно когда, так что буду рад комментариям со ссылками на правоприменительную практику, где судом разрешены эти вопросы.
Вообще дело, кажется, интересное, потому что суд первой инстанции принял сторону ответчика, аппеляционный - ВК, а кассационный - послал всех н****.
Кстати, вы уж, пожалуйста, определитесь, либо
Либо