Pull to refresh
0
0
Send message

Реверсинг приложений под Android. Смотрим под капот

Reading time7 min
Views2.3K

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

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

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

Читать далее
Total votes 7: ↑7 and ↓0+9
Comments6

Простой пример использования Symfony Messenger

Level of difficultyEasy
Reading time6 min
Views2.8K

Пришёл и мой черёд асинхронно и многопоточно средствами PHP кое-что пообрабатывать… И я, естественно, вспомнил про компонент Messenger фреймворка Symfony.

Ранее я никогда Symfony Messenger не использовал.
Чтобы понять, как с ним работать, я пытался найти какой-то простой, законченный и самодостаточный пример, понятный даже чайнику, но мне это не удалось...

Всё, что находилось, было либо слишком сложным, либо это были какие-то отдельные куски кода, понятные только тем, кто уже работал с Symfony Messenger. К тому же всё, что находилось, в основном было "заточено" либо под Redis, либо под RabbitMQ. установка которых как-то немного перебор для учебного примера…

В-общем, я создал и выложил на GitHub такой простой, законченный и самодостаточный пример работы Symfony Messenger совместно с Symfony Console.

Посмотреть пример работы Symfony Messenger
Total votes 8: ↑8 and ↓0+12
Comments0

Одноплатник на 155-й серии

Reading time5 min
Views26K

Эта история началась с ухода в отпуск зимой. Вы только представьте! Полярная ночь, темно хоть глаз выколи и дикий мороз. И вот сижу я такой страдалец, не зная, чем себя занять горемычного. А тут выскакивает статья, что японцы собрали однобитный компьютер на четырех микросхемах. (Naoto64). И вот то ли от безделья, то ли от тоски, или азарт меня одолел, но решил я попробовать собрать «одноплатник» с минимальным количеством микросхем. Под словом «минимальным» я подразумеваю компромисс между функционалом и лишним корпусом микросхемы. В итоге получилось при минимальной комплектации 26 микросхем. Это конечно гораздо больше, чем у Naoto64, но за то это уже 4-х битный «одноплатник».

Читать далее
Total votes 226: ↑225 and ↓1+254
Comments127

Создание современного API на PHP в 2020 году

Reading time5 min
Views18K
Итак, на примере этого API, я хочу показать современную PHP архитектуру для высоконагруженных проектов. Когда проект еще в самом начале, и не то, что бизнеслогика (взаимоотношения с базой данных) не прописана, но и сама бизнес модель не очень ясна, построение эффективной IT архитектуры может идти только одним путем: необходимо жестко разделить frontend и backend.

Что обычно делали в таких ситуациях два-три года назад? Брался монолитный фрейворк типа Laravel или Yii2, вся бизнес модель разбивалась, худо-бедно, на блоки, а эти блоки уже имплементировались как модули фреймворка. В итоге еще через 3 года получалась огромная не поворотная машина, которая сама по себе медленная, а становилась почти невыносимо медленной, в которой фронтенд рендится через бэкенд посредством классической MVC архитеркутуры (пользователь отправил запрос, контроллер его подхватил, вызвал модель, та в свою очередь чего-то там натворила с базой данных, вернула все контроллеру, а тот наконец-то вызвал вьювер, вставил туда данные из модели и отдал это все пользователю, который уже успел открыть очередную банку пива...). А… ну еще особо продвинутые ребята, они не просто вьюверели Tweeter Bootstrap, а во вьювер вкручивали на самом деле очень хорошие библиотеки типа JQuery или вместо вьювера использовали какой-нибудь фронтенд фреймворк. В итоге поддерживать такой БеЛаЗ становилось все сложнее, а ввести нового программиста в команду было очень сложно, ибо не все рождаются Энштейнами. Добавим сюда тотальное отсутствие документации разработчика (камменты в 9000 файлах почитаешь — там все есть!) и в итоге, смотря на это все, становилось по-настоящему грустно…
Читать дальше →
Total votes 35: ↑6 and ↓29-18
Comments50

Препарируем Wazuh. Часть 2: Подключаем источники

Reading time5 min
Views3.3K

В первой статье мы начали рассмотрение решения с открытым кодом Wazuh. Мы развернули систему в конфигурации All In One, то есть все компоненты находятся на одном узле. В этой статье мы продолжим настройку нашего SIEM. Конечно, после установки он уже не совсем бесполезен, так как он собирает события из операционной системы, на которой развернут, поэтому если вы зашли в консоль и увидели какие-то алерты то в общем это нормально, так как события уже собираются, прав ила корреляции отрабатывают и алерты создаются. Но при промышленном использовании нам естественно необходимо подключать другие узлы в качестве источников событий. Этим мы сегодня и займемся.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments4

Как я написал клиент электронного дневника своей области

Reading time5 min
Views12K

Сейчас я учусь в 8 классе. Где-то с октября (сейчас апрель) я изучаю разработку мобильных приложения для андроид. И как это бывает у каждого - я столкнулся с проблемой: а какое приложение мне сделать? И мне крайне повезло. Я не стал делать какой-нибудь фейковый магазин, калькулятор, блокнот, туду лист и всякую подобную заезженную тему.

Читать далее
Total votes 97: ↑96 and ↓1+114
Comments29

Best Practices по подключению к сторонним API в проекте

Level of difficultyMedium
Reading time6 min
Views15K

При разработке больших web-проектов нам часто приходится взаимодействовать с API сторонних или внутренних микросервисов. Когда количество таких взаимодействий растёт, настройки вызовов к другому API и подробности самих вызовов кратно множатся и могут растекаться по проекту.

В Домклике у нас микросервисная архитектура, и каждому сервису приходится взаимодействовать с десятком других. Чтобы межсервисное взаимодействие было предсказуемым, надёжным, удобным и отслеживаемым, мы следуем ряду практик при разработке, и в этой статье я расскажу вам о них.

Узнать лучшие практики
Total votes 23: ↑22 and ↓1+25
Comments6

Радикальная защита селфхостинга. Уровень: хардвар и хардкор

Level of difficultyMedium
Reading time6 min
Views9.7K

Сейчас у многих есть свой личный сервер. Насколько вы задумывались о безопасности? Настроили вход по ssh‑ключам, firewall и на этом всё? Давайте поговорим про РЕАЛЬНУЮ безопасность.

Эта статья о том, как запариться, распилить свой ноутбук болгаркой, вставить туда микроконтроллер и интегрировать всё это с умным домом. Или по‑простому: радикальная защита селфхостинга — уровень «хардкор».

Вводные
У меня был старый ноутбук Thinkpad t440p, который лежал без дела. Я решил сделать на нем селфхостинг.

Читать далее
Total votes 41: ↑40 and ↓1+53
Comments36

Знакомьтесь, MiSTer

Reading time14 min
Views44K

Я долго придумывал вступление к теме FPGA-реимплементации в контексте ретро, но это сложнее чем кажется. Давайте попробуем издалека. Сейчас электроника довольно неплохо стандартизирована, но ведь 40-50 лет назад ситуация была гораздо сложнее. То, что мы сейчас принимаем как должный и абсолютный незыблемый стандарт, когда-то таковым не являлось. Как, например, то, что в 1 байте 8 бит. Были машины и с 6 и с 9 битными байтами и много чего еще. Тем собственно старая техника и интригует. Сколько человекочасов было убито на её проектирование, какие гениальные и не очень решения принимались. И всё это будет утеряно? Да и просто - как это всё работало? Вопрос, который, думаю, интересовал многих ретро-энтузиастов ещё с детства.

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

Nginx cache: всё новое — хорошо забытое старое

Reading time12 min
Views98K
В жизни каждого проекта настает время, когда сервер перестает отвечать требованиям SLA и буквально начинает захлебываться количеством пришедшего трафика. После чего начинается долгий процесс поиска узких мест, тяжелых запросов, неправильно созданных индексов, не кэшированных данных, либо наоборот, слишком часто обновляемых данных в кэше и других темных сторон проекта.

Но что делать, когда ваш код “идеален”, все тяжелые запросы вынесены в фон, все, что можно, было закэшировано, а сервер все так же не дотягивает до нужных нам показателей SLA? Если есть возможность, то конечно можно докупить новых машин, распределить часть трафика и забыть о проблеме еще на некоторое время.

Но если вас не покидает чувство, что ваш сервер способен на большее, или есть магический параметр, ускоряющий работу сайта в 100 раз, то можно вспомнить о встроенной возможности nginx, позволяющей кэшировать ответы от бэкенда. Давайте разберем по порядку, что это, и как это может помочь увеличить количество обрабатываемых запросов сервером.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments27

Как своими руками сделать WiFi камеру слежения (ESP32-CAM)

Reading time6 min
Views89K

К старту курса по разработке на С++ рассказываем, как самостоятельно собрать IP-камеру с обнаружением движения. За подробностями приглашаем под кат, где вы найдёте много фотографий и видео на Youtube-канале автора, за которым наблюдают более 30 000 человек.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments35

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 1

Level of difficultyEasy
Reading time4 min
Views1.4K

Допустим, вы являетесь разработчиком на каком-нибудь небольшом проекте. Есть только ограниченный доступ в App Store Connect и Google Play. Это такие ограничения, как подписание сборок, публикация в маркеты.

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

Данная статья будет вам полезна, если вы увидите себя хотя бы в одном из перечисленных случаев:

1. Процесс сборки под iOS или Android занимает слишком много времени и ресурсов вашего компьютера
2. На проекте есть другой разработчик, который активно занят проектом и день через день вносит какие-то изменения, но только вы можете сделать сборку
3. Ваш проджект менеджер попросил отправить очередную сборку тестировщикам, но вы не имеете доступ к своему компьютеру

Это будет подробный туториал с множеством скриншотов.

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

Как с помощью Terraform создавать различные окружения

Reading time5 min
Views5.9K

Применяя Terraform, действуйте по принципу “не повторяйся” (DRY) при создании инфраструктуры в различных средах/регионах/облачных провайдерах

Terraform упростил способ организации инфраструктуры в облаке и управления ею в виде кода. Но лучшие практики, такие как разделение инфраструктуры в соответствии с несколькими типами окружения (staging / QA / production. стейджинг / тестирование и обеспечение качества / продакшн), не меняются. Возможно, для потребностей вашего бизнеса, необходимо распространить инфраструктуру на несколько географических областей. Или вы задумываетесь о применении стратегии мультиоблачных вычислений.

Для решения такой ситуации надо суметь прописать несколько различных типов используемого окружения в коде. Задача состоит в том, чтобы максимально факторизировать код в соответствии с принципом DRY (Don't Repeat Yourself. Не повторяйся). Существует множество способов добиться этого с помощью Terraform.

В этой статье мы рассмотрим две стратегии для достижения этой цели с помощью Terraform. У каждой из них есть свои сильные и слабые стороны, в конце мы сравним их. Начнем!

Читать далее
Total votes 5: ↑2 and ↓30
Comments1

Как развернуть свой Wireguard VPN сервер с WEB-интерфейсом за одну команду

Level of difficultyEasy
Reading time2 min
Views52K

WireGuard является одним из наиболее популярных и простых в использовании VPN-решений, предоставляющих безопасное сетевое соединение. Если вы ищете быстрый и простой способ развернуть собственный VPN-сервер WireGuard с WEB-интерфейсом, то Docker-контейнер представляет отличное решение. В этой статье мы рассмотрим, как установить и запустить Docker-контейнер WireGuard с WEB-интерфейсом за одну команду, а также как подключиться к нему с различных устройств.

Исходники

Читать далее
Total votes 10: ↑2 and ↓8-6
Comments20

GPT для чайников: от токенизации до файнтюнинга

Reading time13 min
Views96K

К моему удивлению, в открытом доступе оказалось не так уж много подробных и понятных объяснений того как работает модель GPT от OpenAI. Поэтому я решил всё взять в свои руки и написать этот туториал.

Читать далее
Total votes 26: ↑25 and ↓1+29
Comments8

MNT Reform — Полностью открытый ноутбук для параноиков

Reading time3 min
Views60K


MNT Reform — самый открытый ноутбук для параноиков из когда-либо созданных. Вся схемотехника плат, загрузчик и драйвера открыты, в нем нет веб-камеры, а в качестве батареи заменяемые банки 18650. Настоящее торжество красноглазия.

Используется ARM процессор i.MX8 в виде готового SoM (system on module) с полностью пассивным охлаждением и всего 4GB оперативной памяти.
Читать дальше →
Total votes 62: ↑59 and ↓3+73
Comments129

Клонируем ОС автоматически без дополнительных серверов и пакетов

Reading time8 min
Views41K

Как-то раз мне пришлось собирать несколько серверов виртуализации, и на них надо было установить порядка 500 машин, каждая из которых должна была быть клонирована.

Самые разношёрстные машины. Некоторые из них жили на Windows, а некоторые на Linux. Машины достаточно самостоятельные. В них уже установлены клиенты, которые занимались подключением и настройкой ОС, но сами ОС необходимо было доустанавливать.И если с Linux у нас всё ещё более-менее просто — rsync и grub, и всё готово, то Windows не настолько “переносимая” ОС (меня ждало создание sysprep образ и клонирование именно его).

Мне не хотелось устанавливать различные инструменты, такие как Puppet или Ansible. Более того, диски различных машин имели разный размер. К сожалению, надо было именно клонировать, а не просто копировать образы qcow дисков.

В итоге, просидев несколько дней над достаточно разрозненной документацией старого, надёжного и проверенного временем инструмента, я нашёл способ легко и безболезненно, а главное — автоматически, клонировать ОС.

Более того, в сети не пришлось устанавливать и настраивать никакие инструменты. Единственное, что мне потребовалось — это SSH сервер, на который были сложены образы ОС.

Итак, под кат.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments10

Затыкаем рот Windows 10

Level of difficultyHard
Reading time33 min
Views101K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

Однако жизнь сложная штука и не ограничивается только стандартными вариантами. Существуют ситуации, когда подобная сетевая активность операционной системы (ОС) нежелательна и даже вредна. За примерами далеко ходить не надо. Попробуйте подключить к Интернету давно не используемый резервный компьютер, собранный на старом железе. Пока софт на нём не обновится, использовать его будет практически невозможно, всё будет дико тормозить и еле шевелиться. А если вам в этот момент нужно срочно что-то сделать?

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Total votes 171: ↑161 and ↓10+197
Comments308

Конструктор для embedded-разработчика

Level of difficultyMedium
Reading time12 min
Views20K

В статье я расскажу о своей попытке создать удобный и красивый модульный конструктив для настольного прототипирования микроконтроллерных устройств

Читать далее
Total votes 106: ↑106 and ↓0+106
Comments126
1

Information

Rating
Does not participate
Registered
Activity