Search
Write a publication
Pull to refresh
28
0.2
Михаил @Flammar

Java (+Javascript) fullstack developer

Send message

Завяжите шнурки и подтяните свои штаны!

Reading time5 min
Views34K
Итак, что же замедляет разработку программного обеспечения?

Задумайтесь об этом вопросе на секунду. Как так выходит, что чем дольше Вы что-либо разрабатываете, тем сложнее и неприятнее добавлять в Ваше приложение новые фичи, попиливать архитектуру?

И почему раньше задачи решались так просто, а теперь выглядят запутанными и сложнореализуемыми?

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

Gray Hat Python — DLL и Code Injection

Reading time19 min
Views31K

Intro


Порой, когда вы реверсите или атакуете программу, полезно иметь возможность загрузить и выполнить свой код в контексте исследуемого процесса. Крадете ли вы хэши паролей или получаете доступ к удаленному рабочему столу целевой системы, методы внедрения кода и dll-библиотек предоставляют мощные возможности. Мы создадим несколько простых утилит на Питоне, которые позволят вам использовать оба метода. Эти методы должны входить в арсенал каждого разработчика программ, эксплойтов, шелл-кодов и пентестеров. Мы будем использовать внедрение DLL (DLL injection) для запуска всплывающего окна внутри другого процесса. Так же мы будем использовать внедрение кода (code injection), чтобы протестировать шелл-код, разработанный для уничтожения какого-либо процесса основываясь на его PID. Под конец главы мы создадим и скомпилируем Trojan’a (с функционалом backdoor’a) полностью написанного на Python. В большей степени он будет опираться на внедрении кода и использовании некоторых других скрытых тактик, которые должен использовать каждый хороший бэкдор. Давайте начнем с рассмотрения темы создания удаленных потоков, которые являются основой для обоих методов внедрения.
Читать дальше →

Читайте код, с остальным справится компилятор

Reading time3 min
Views3.1K

Введение


Уже не в первый раз мне задают связанные вопросы:
«Зачем ты делаешь так много функций?»;
«Зачем ты выносишь, однократно используемый, код в функции?»;
«Остальные не знакомы с твоими правилами именования функций. Как они будут с этим работать?». Поэтому опишу свое видение проблемы. Ну а сообщество подскажет, к чему же стоит стремиться.
Читать дальше →

День сурка

Reading time2 min
Views1.4K
Пожалуй, редкий зритель не смотрел фильм День сурка. Помните, когда Фил рассказывает мужику, с которым сидит за выпивкой в баре, о своей проблеме, тот отвечает: «это история моей жизни».

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

Посмотрим на примере одного рабочего дня, как все меняет пара движений.

До.


С утра прихожу, открываю IDE, загружаю проект. По аське приходит — привет, не посмотришь? Переключаюсь на задачу, смотрю — кажется, пустяк. Сажусь делать — выплывают дополнительные подробности, неожиданные моменты, углубляюсь в процесс. Гуглю. Открываю Хабр, думаю глянуть пару статей. Зависаю на Хабре… слышу голос: «Идешь обедать?». Опа — на часах уже два.
Читать дальше →

Несколько полезных сайтов-каталогов со скриптами

Reading time1 min
Views2.4K
Поискал ссылки поиском по хабру, не нашел.

Итак, прежде чем изобретать велосипед, у разработчика часто возникает необходимость посмотреть, какие же продукты уже были реализованы.
Кто-то начинает гуглить — что же, наверное, это правильно.

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

Итак, вот они:
www.hotscripts.com
www.planet-source-code.com
php.resourceindex.com
cgi.resourceindex.com
www.scripts.com/php-scripts
www.phpclasses.org
mymans.org/category/php

Компьютерное зрение с использованием человеческого мозга

Reading time1 min
Views25K


После более четырёх лет разработки Агентство по перспективным оборонным научно-исследовательским разработкам США (DARPA) представило уникальную систему компьютерного зрения. Уникальность её в том, что для уточнения распознавания компьютерная система использует ЭЭГ-сигнал с человеческого мозга.
Читать дальше →

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views358K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

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

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →

Переделываем блок питания в картинках

Reading time3 min
Views318K
Доброе время суток обитателю хабрахабра!
Довело меня увлечение электроникой до момента, когда дешевого китайского паяльника стало мало. Было принято волевое решение собрать паяльную станцию своими руками. Но вот беда, оказалось что в городе достать трансформатор на 24 вольта просто невозможно. Благодаря этому прискорбному факту и родилась статья.

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

Как известно у ATX есть линия, выдающая -12 вольт с силой тока около 0,5 ампер, так почему бы её не усилить? Но первый блин, как известно, комом: при попытке запитать чудо паяльник блок питания сделал «БЗЗЗ» и ушел на покой.

Второй попыткой было решено сделать удвоитель напряжения. Но удвоителю на вход нужен переменный ток, который можно взять от трансформатора. Но, как оказалось, и этот путь не привел к успеху…
Продолжение истории под катом (осторожно: много картинок)
Читать дальше →

Вышел бесплатный профессиональный видеоредактор Lightworks

Reading time3 min
Views102K
“Бэтмен навсегда”, “Остров проклятых”, “Отступники”, “Король говорит”, “Авиатор”, “Карты, деньги, два ствола”, “Криминальное чтиво” — это далеко не полный список фильмов, смонтированных с помощью Lightworks за его более чем двадцатилетнюю историю. С 1989 года Lightworks сменил несколько владельцев, пока в 2009 его не приобрела компания EditShare — производитель систем хранения видео для ТВ и киностудий. Новые хозяева решили порвать с традицией продавать подобный софт за тысячи долларов, и теперь профессиональная версия Lightworks стоит 60$, а базовая — бесплатна. Причём эта “базовая” версия мало чем отличается от платной и не уступит многим профессиональным версиям других редакторов. Но и это ещё не всё — EditShare собирается в ближайшем будущем выпустить версии для Linux и Mac (именно в таком порядке) и открыть исходники.


Читать дальше →

Установка Linux на дешёвые ARM-нетбуки

Reading time1 min
Views47K


Сделать дешёвый компьютер можно и без Raspberry Pi. Один из вариантов — поставить дистрибутив Linux на какой-нибудь ARM-нетбук под Android. Например, китайский нетбук WM8650 (производство WonderMedia Technologies) стоит примерно 50 евро. Это немного дороже Raspberry Pi, и у него нет хорошего GPU, зато есть монитор, корпус, аккумулятор, тачпад и т.д.

Один из линуксоидов опубликовал подробное описание, как поставить на нетбук WM8650 операционную систему Arch Linux и какие проблемы возникают при этом.
Читать дальше →

Ощущения как обратная связь

Reading time3 min
Views1.7K
Все мы к чему-то стремимся. Кто-то старается больше успевать и эффективнее работать. Другой следит за своими расходами и оптимизирует денежные траты. Иной пытается изменить какую-либо привычку — например, стать жаворонком.

Чувство времени

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

Моя методика простая и основана на ощущениях. Подойдет не всем, но многим. Суть в следующем — вы должны так строить работу над каким-либо аспектом своей жизни, чтобы выработать чувство на данный аспект. К примеру, если работаете с тайм-менеджментом, то должно появится «чувство времени» — позволяющее ощущать, как уходит время, и некую неловкость, когда оно уходит на ненужные дела.

Почему это работает и как появляется, описание внутри.
Читать дальше →

Почему не работают планы? Личный опыт в виде вебинара

Reading time1 min
Views3.2K
Проводил недавно вебинар по управлению временем.

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

Изложены основы time management в моем понимании. Только обобщение практического опыта под соусом IMHO и никаких претензий на абсолютность. Упор на простоту изложения, понятность. четкость и структурированность материала.

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

Таким образом, time management увязан с саморазвитием.

В качестве обзора затронутых тем можно посмотреть презентацию (Slideshare.net), используемую в вебинаре (1 мб)
Читать дальше →

Модели реальности и их роль в жизни людей

Reading time4 min
Views17K
Есть модель мира, и есть реальный мир.
Как в физике — есть какое-то явление, а есть его модели.

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

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

Однако где-то 95% людей не знают, что у них в голове мозг занимается тем же самым, только первые годы жизни. Он изучает и моделирует реальный мир, закладывая себе модели явлений, характеров людей, абстрактных понятий, и так далее, которые потом человек в своем сознании использует как инструмент, воспринимая модель как реальность. Далее всю жизнь человек этим и занимается, составляя все более сложные модели.

Вот только отличий от физиков тут три. Первое — это незнание природы работы мозга. И отсюда вытекающая уверенность, что все, что человек видит, думает и знает — и есть истина. То есть человек себя убедил (читай сделал себе модель) в том, что Windows лучше, чем Linux — все, теперь в его модели мира может быть только этот факт. Второе отличие как раз в уточнении модели. Люди не уточняют модели реальности, как правило, более того, мозг специально отсекает факты, противоречащие модели, либо вырабатывает «адаптеры» в виде «логических объяснений», чтобы не нарушить комфорта в восприятии мира — все знают нелюбовь к изменениям, боязнь, что «мир встанет с ног на голову».
Читать дальше →

Как прокачивать мозг

Reading time8 min
Views174K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

Не правда ли, картинка объемна?

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.

Но обо всем по порядку.

Понимание роли мозга


Нет невежества страшнее, чем невежество по отношению к самому себе.

Мозг управляет почти всем в нашем организме — от дыхания, работы органов чувств до сложных мыслительных процессов и воображения. Существует множество методик и советов по развитию, однако, как я убедился, мало какие делают упор на роль мозга в процессе.
Читать дальше →

Об управлении временем, саморазвитии и деньгах

Reading time8 min
Views13K
Я хочу рассказать о том, почему в отдельности не работают подходы, которые люди начинают применять, прочитав ту или иную книгу из области time-management или управления финансами.

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

Вот, например, езда на автомобиле. Сначала человек меняет свои привычки, установки, доводит до автоматизма простые действия. Затем сдает экзамен, и только потом выезжает на дорогу и начинает набирать настоящий опыт, в процессе которого и становится мастером.

А когда мы говорим об управлении временем, часто случается следующее. Человек прочитал одну книгу, один день попробовал вести хронометраж — бросил, лениво. Написал план на неделю, месяц, год, и ни разу их не открыл. На следующий день писал план первые три дня, а потом забросил — ибо ничего не успевал.

Или с деньгами.
Читать дальше →

QuickAdm — быстрые универсальные админки

Reading time1 min
Views14K
В процессе работы, я как-то набрел на проект phpMyEdit — web-интерфейс, позволяющий относительно просто поднимать админки для табличных данных.

После доработки для себя, родилось решение, которое я назвал QuickAdm. Оно делает за очень короткие сроки админки через web-интерфейс к таблицам, имеет простейшую ACL и защиту паролем.

Таблицы называются объектами, их поля — свойствами. Имя объекта/свойства равно имени таблицы и поля в MySQL, поэтому вводить нужно латиницей.

Потестить это можно тут: http://yamozg.ru/adm (логин/пароль для чтения reader/reader, админские admin/admin — удаление таблиц там не работает, ибо запрещено на уровне БД).

Скачать вот тут: http://yamozg.ru/quickadm.tar.gz (настроить нужно config.php и выполнить quickadm.sql в нужной базе, приложение расчитано на работу в папке /adm/ относительно корня сайта).

Код изяществом не отличается, написан как адаптер поверх этого phpMyEdit, поэтому прошу особо не пинать. Думаю, кому-нибудь может пригодится.

Метод одного дня

Reading time4 min
Views8.2K
Понедельник начинается в субботу.
А. Стругацкий, Б. Стругацкий.

Прошедшее забыто, грядущее сокрыто, настоящее даровано. Поэтому его и зовут настоящим!
Мудрая Черепаха из «Кунг-фу Панда»

Сегодня пойдет речь о методе, который я применяю, когда уматывают планы и лениво что-то делать вообще. Я знаю, есть люди, не любящие планирование. Есть люди, которые не любят загадывать. Есть те, кому просто непонятно, как работает его организм. Во всех этих состояниях я бывал, делюсь опытом.

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

Под катом простая схема, как этого достичь.
Читать дальше →

Information

Rating
4,811-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity