Pull to refresh
55
0
Григорий‮‮‮‮‮ @LMaster

User

Send message

Перехват вызовов API-функций

Reading time11 min
Views74K
— Папа, я бежал за троллейбусом и сэкономил пять копеек!
— Сынок, бежал бы за такси — сэкономил бы пять рублей!


Сегодня я хочу рассказать вам, как сэкономить 10 тысяч долларов. А заодно, что гораздо менее интересно – научить перехватывать вызовы Win32 API функций, и не только. Хотя, в первую очередь – конечно, именно их.
Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments72

Браузер Кавер

Reading time1 min
Views777
image
На днях мы с ludoedoed запустили сервис для веб-дизайнеров www.browsercover.me, он быстро оборачивает картинки в окна популярных браузеров так, что картинки становятся похожими на скриншоты будущих сайтов. Это помогает восприятию, точно вам говорю. Готовые картинки отправляются заказчикам и в портфолио (самовывоз).

Пользоваться сложно: нужно сначала загрузить картинку, потом в муках выбрать какой-нибудь браузер, определиться с размером конечного изображения, ввести ЮРЛ для адресной строки и заголовок окна (мы даже шрифты и способы сокращения символов подгоняем, для пущей убедительности), решить, нужна ли вам полупрозрачная тень и статус-бар. После этого придется нажать на «Криэйт э каверед превью» и сохранить готовую картинку. Все время придется крутить горизонтальный скроллбар, хорошо хоть колесом мышки.

Будем рады услышать критику, а не просто получить минусы.
Будем рады, если вы будете пользоваться сервисом.
Будем рады, если станем миллионерами.
Будем рады, если вы ими станете.
Будем рады, если вы будете рады.
Total votes 180: ↑162 and ↓18+144
Comments126

Профилактика SQL-инъекций

Reading time4 min
Views35K


SQL-инъекции (также известные как «Нарушение в целостности структуры SQL-запроса») являются одними из самых распространённых и наиболее опасных уязвимостей в вопросе безопасности. SQL-инъекции очень опасны, потому что они открывают двери хакерам в вашу систему через веб-интерфейс, и позволяют получить неограниченный доступ: например удалять таблицы, изменять базу данных, и даже получить доступ к внутренней корпоративной сети. SQL-инъекции это чисто программная ошибка, и не имеет ничего общего с хост-провайдером. Итак, вы занимались поисками безопасного JSP хостинга, PHP хостинга, или любого другого, вы должны знать, что за профилактику SQL-инъекций несут ответственность только разработчики, а не хост провайдер.

Почему же происходят SQL-инъекции


SQL-инъекции это очень распространённая проблема, но по иронии судьбы, их также легко предотвратить. SQL-инъекции так распространены, поскольку очень много мест, где может присутствовать уязвимость, и в случае успешной инъекции, хакер может получить хорошую награду (например полный доступ к данным в базе).
Читать дальше →
Total votes 94: ↑69 and ↓25+44
Comments95

Что такое генетический алгоритм?

Reading time1 min
Views24K
В рамках проекта Computer Science Student сегодня я постараюсь дать короткое наглядное объяснение: что такое генетический алгоритм? В самой простой и общей формулировке для решения самой простой задачи. Исходные коды решения (код не самый качественный, потому что писался на скорую руку; но код и не важен в этом курсе) и текст самих заданий доступен на CS-Student Wiki.

Первая часть


Вторая часть — под катом.
Читать дальше →
Total votes 104: ↑86 and ↓18+68
Comments100

Тонкости использования селекторов аттрибутов в CSS

Reading time4 min
Views34K
CSS может связываться с HTML элементами используя любые из его атрибутов. Вы наверняка знаете о классах и ID. Проверим это в HTML:
<h2 id="first-title" class="magical" rel="friend">David Walsh</h2>

Этот один элемент имеет три аттрибута: ID, class и rel. Для выбора элемента в CSS вы можете использовать селектор ID (#first-title) и селектор class (.magical). Но знаете ли вы, что можно использовать для выбора атрибут rel? Это так называемый селектор атрибута:
h2[rel=friend] {
  /* woohoo! */
}

Читать дальше →
Total votes 165: ↑140 and ↓25+115
Comments116

JVM изнутри – организация памяти внутри процесса Java

Reading time2 min
Views120K
Наверное, все, работающие с Java, знают об управлении памяти на уровне, что для ее распределения используется сборщик мусора. Не все, к сожалению, знают, как именно этот сборщик (-и) работает, и как именно организована память внутри процесса Java.
Читать дальше →
Total votes 58: ↑39 and ↓19+20
Comments16

7 шагов по переносу программы на 64-битную систему

Reading time20 min
Views40K

Аннотация


В статье рассмотрены основные шаги, обеспечивающие корректный перенос 32-битных Windows приложений на 64-битные Windows системы. Хотя статья ориентирована на разработчиков, использующих язык Си/Си++ в среде Visual Studio 2005/2008, она будет полезна и другим разработчикам, планирующим перенос своих приложений под 64-битные системы.

Читать дальше →
Total votes 107: ↑103 and ↓4+99
Comments51

12 советов по созданию макетов в браузере

Reading time5 min
Views7.9K
перевод статьи: 12 Killer Tips for Designing in the Browser
image

Как Вы создаете макет сайта?

Обычный проект начинается с создания макета в Фотошопе и потом с использованием HTML и CSS максимально приближается к виду исходного PSD файла. Не смотря на это, развивается направление в веб-дизайне пропускающее этап Фотошопа в пользу создания первоначальной композиции прямо в браузере с использованием вашего любимого редактора. Я уверен, что прямо сейчас Ваша голова шумит от причин, по которым этот подход ограничит ваш дизайн, но есть огромное количество вещей, которые Вы можете делать в браузере. Эта статья познакомит с инструментами и приемами, которые понадобятся для создания великолепных работающих макетов на первом же этапе работы.

Основная идея


Meagan Fisher на 24ways.org представил неотразимый довод проектирования в браузере. Хотя я и не разделяю его презрение к Фотошопу (Я люблю Фотошоп больше любого другого ПО на планете), я согласен с некоторыми другими его пунктами. Фишер говорит, что статическое изображение не дает по настоящему ощутить, как сайт будет работать и что проектирование в браузере направляет твои силы на организацию контента до дизайна, что гарантирует большее удобство и создание правильной структуры

Мы будем использовать статью Фишера как затравку для наших заметок по превращению в профессионала в создании фантастических in-browser макетов готовых к работе сразу по получению одобрения от клиента.

Читать дальше →
Total votes 49: ↑40 and ↓9+31
Comments19

Получаем атрибуты S.M.A.R.T

Reading time5 min
Views14K
S.M.A.R.T это технология оценки состояния жесткого диска, помогающая оценить текущее состояние и предсказать возможные проблемы и выход устройства из строя. Атрибуты S.M.A.R.T условно можно разделить на две группы: параметры, отражающие процесс изнашивания (старения) диска и текущие параметры (например, параметры производительности).

Каждый атрибут имеет идентификатор, тип (критический, показатель производительности, счетчик ошибок, счетчик событий), текущее значение, пороговое значение (если текущее меньше порогового — начинайте искать новый диск), самое низкое, зафиксированное, значение атрибута. Описание каждого атрибута можно посмотреть здесь.

На этом теоретическая часть заканчивается, перейдем к практике. Напишем программу, которая будет считывать и отображать атрибуты S.M.A.R.T. Скачать готовую программу с исходниками можно здесь.
Читать дальше →
Total votes 55: ↑45 and ↓10+35
Comments43

Как собрать бинарный deb пакет: подробное HowTo

Reading time15 min
Views225K
Сегодня я расскажу на абстрактном примере как правильно создать *.deb пакет для Ubuntu/Debian. Пакет мы будем делать бинарный. Пакеты, компилирующие бинарники из исходников здесь не рассматриваются: осилив изложенные ниже знания, в дальнейшем по готовым примерам можно понять суть и действовать по аналогии :)

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

В качестве бонуса в конце статьи будет пример быстрого создания собственного локального репозитория: установка пакетов из репозитория позволяет автоматически отслеживать зависимости, и конечно же! — устанавливать всё одной консольной командой на нескольких машинах :)

Для тех, кто не хочет вдаваться в мощную систему установки софта в Linux, рекомендую посетить сайт проги CheckInstall: она автоматически создаёт deb-пакет из команды «make install» ;) А мы вместе с любопытными —
поехали дальше!
Total votes 73: ↑63 and ↓10+53
Comments40

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вторая. Базовые сведения о платформе. Первая программа

Reading time4 min
Views128K
Если в первой статье все получилось хорошо — мы получили базовую программную обстановку для продолжения обучения.

Едем дальше.

Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.

Открываем ДШ.

Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.

Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.

Вкратце расскажу о том, что обязательно нужно понимать.

Читать дальше →
Total votes 54: ↑48 and ↓6+42
Comments16

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вводная

Reading time3 min
Views83K
Доброго тебе времени суток, хороший человек.

Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.

Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.

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

Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;

Читать дальше →
Total votes 67: ↑60 and ↓7+53
Comments32

DLL Injection

Reading time4 min
Views70K
DLL инъекция дает возможность выполнять свой код в адресном пространстве уже запущенного процесса. Многие используют инфицирования для написания читов для игр, выполнения вредоносных действий для системы и т.п. Но данный прием не обязательно применять для реализации коварных планов, а например, для обновления своего приложения.
Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments74

Какие бывают META теги и зачем они нужны

Reading time7 min
Views264K

META-теги


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

META-теги имеют два возможных атрибута


— <META HTTP-EQUIV="имя" CONTENT="содержимое">
— <META NAME="имя" CONTENT="содержимое">
META-теги должны находиться в заголовке HTML-документа между <HEAD> и </HEAD> (особенно это важно для документов, использующих фреймы).

Стандартом HTML 4.01 значения и имена мета-тегов НЕ оговариваются, поэтому мы будем рассматривать те значения, которые уже устоялись в интернете и используются чаще других.
подробнее о META тегах
Total votes 118: ↑89 and ↓29+60
Comments47

peeep.us — ссылки на закрытые страницы

Reading time1 min
Views5.3K
Привет, Хабр!

Хочу сообщить тебе, что как-то ночью я, большой ненавистник сервисов сокращения ссылок, и сам запустил свою сокращалку. Но не простую, а с изюминкой.

Суть сервиса в том, что вместе с самой ссылкой peeep.us хранит содержимое страницы с точки зрения пользователя, который создавал ссылку. Это дает возможность опубликовать или дать другу ссылку на страничку, обычно недоступную для просмотра извне. Например, можно показать другу классный пост на Лепре или личное сообщение вконтакте. А еще его можно использовать просто как хранитель состояния сайта. По пииипнутой ссылке будет всегда доступно содержимое страницы на момент времени, когда она была создана (вместе с удаленными коммантариями, например). Это как кеш Google или archive.org, только по требованию.

Вот как это выглядит: прекрасный пост Артема Шитова. Видна лепра?

Чтобы просто сохранить состояние страницы нужно ввести адрес на peeep.us и кликнуть submit. А если нужно сделать ссылку на закрытую страницу, придется воспользоваться букмарклетом, который есть там же. Букмарклет скачает текст страницы XMLHttpRequest'ом, а затем отправит куда надо. Все, вроде бы, несложно.

Кстати, сам сервис работает на Google AppEngine, то есть потенциально закроется или заддосится только вместе с гуглом целиком ;). А если кому интересно, откуда такое тупое название, так это от слова peep — подглядывать [в замочную скважину].
Total votes 182: ↑167 and ↓15+152
Comments139

Почему важен DOCTYPE и как его правильно использовать

Reading time7 min
Views131K
Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям :)
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:

Почему так важен DOCTYPE



Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.
Читать дальше
Total votes 180: ↑128 and ↓52+76
Comments95

XSS на yandex.ru

Reading time1 min
Views1.8K
Вчера один мой друг (LMaster) нашел пассивную XSS на Яндексе. Специально сформированный адрес, переданный жертве, позволяет похитить cookies. Не фильтруется GET-параметр add. Для срабатывания скрипта не требуется никаких действий пользователя.
Запрос:
_http://www.yandex.ru/?add=3188">&edit=1


P.S. Сам он не имеет доступа на хабр. Основная тема.

UPD: Уязвимость закрыта. Об этом уже сообщено в комментариях. Пожалуйста, не создавайте сотни ответов: «Не работает!»
Total votes 90: ↑72 and ↓18+54
Comments52

Выравнивание полей формы с помощью CSS

Reading time2 min
Views165K

Задача


Добиться, чтобы поля ввода находились друг под другом, и при этом их положение определялось максимальной длиной заголовка поля слева. Решение не должно использовать таблиц и JavaScript.

forms_1

Читать дальше →
Total votes 230: ↑203 and ↓27+176
Comments241

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

Reading time8 min
Views71K
Это не попытка создать список всех существующих инструментов для CSS разработки. Только некоторые, наиболее полезные были отобраны и размещены в соответствующих категориях.


Чтобы инструмент был по-настоящему полезен, у него должна быть хорошая документация и дружелюбный интерфейс. К сожалению, некоторые инструменты в списке не полностью попадают под данные критерии. Если кто-то знает лучшие альтернативы с более дружелюбным интерфейсом и большей функциональностью, пишите в комментариях.
Читать дальше →
Total votes 179: ↑170 and ↓9+161
Comments65

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity