Search
Write a publication
Pull to refresh
-2
0
Вадим @Disasm

Пользователь

Send message

Система оплаты проезда общественного транспорта Москвы

Reading time8 min
Views183K
image
Предыстория
В далёком 2005 году, когда я был ещё мелким ребёнком, я впервые увидел такую вещь как «Социальная карта москвича» Смотря на то как пенсионеры прикладывают её при проходе через турникеты наземного транспорта и метрополитена, я стал задумываться над тем, как же работает вся эта система. Но в детстве у меня не было возможности этим заняться. Позже, когда я уже сам начал зарабатывать деньги, я решил всерьёз приступить к изучению системы оплаты проезда в общественном транспорте.

RFID
Конечно же я начал с поиска в гугле и без особых усилий нашёл название данной — RFID (Radio Frequency IDentification) или в переводе на русский Радиочастотная Идентификация. Прочитав статью на википедии, я понял что метки (карты) делятся на 3 диапазона работы, Метки диапазона LF (125—134 кГц), Метки диапазона HF (13,56 МГц), Метки диапазона UHF (860—960 МГц). В общественном транспорте используются метки второго диапазона — HF.
Читать дальше →

Интерфейс SAS: история, примеры организации хранения

Reading time9 min
Views109K
В прошлый раз мы с вами рассмотрели все, что касается технологии SCSI в историческом контексте: кем она была изобретена, как развивалась, какие у нее есть разновидности и так далее. Закончили мы на том, что наиболее современным и актуальным стандартом является Serial Attached SCSI, он появился относительно недавно, но получил быстрое развитие. Первую реализацию «в кремнии» показала компания LSI в январе 2004 года, а в ноябре того же года SAS вошел в топ самых популярных запросов сайта storagesearch.com.

Начнем с основ. Как же работают устройства на технологи SCSI? В стандарте SCSI все построено на концепции клиент/сервер.

Клиент, называемый инициатором (англ. initiator), отправляет разные команды и дожидается их результатов. Чаще всего, разумеется, в роли клиента выступает SAS контроллер. Сегодня SAS контроллеры — это HBA и RAID-контроллеры, а также контроллеры СХД, стоящие внутри внешних систем хранения данных.

Сервер называется целевым устройством (англ. target), его задача — принять запрос инициатора, обработать его и вернуть данные или подтверждение выполнения команды обратно. В роли целевого устройства может выступать и отдельный диск, и целый дисковый массив. В этом случае SAS HBA внутри дискового массива (так называемая внешняя система хранения данных), предназначенный для подключения к нему серверов, работает в режиме Target. Каждому целевому устройству (“таргету”) присваивается отдельный идентификатор SCSI Target ID.

Для связи клиентов с сервером используется подсистема доставки данных (англ. Service Delivery Subsystem), в большинстве случаев, это хитрое название скрывает за собой просто кабели. Кабели бывают как для внешних подключений, так и для подключений внутри серверов. Кабели меняются от поколения к поколению SAS. На сегодня имеется три поколения SAS:

— SAS-1 или 3Gbit SAS
— SAS-2 или 6Gbit SAS
— SAS-3 или 12 Gbit SAS – готовится к выходу в середине 2013 года



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

Мобильный телефон своими руками. Часть 2

Reading time5 min
Views119K
В первой части мы рассмотрели «железную» часть проекта, в этой части мы приступим к экспериментам с устройством.


Модуль M10-TE-A, основа нашего телефонного аппарата.

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

Оберточная библиотека-перехватчик

Reading time5 min
Views5.5K
Доброго времени суток всем!
Недавно я выкладывал свою реализацию перехватчика(тут).
Получился он, чего уж греха таить, громоздким и коряво работающим. В 1 же из комментариев отписался уважаемый k_d и упомянул о своей обертке над mhook(MHook vs Zuma).
Конечно, меня заинтересовала альтернатива, работающая с перехватом не только __cdecl'а но и, более того, позволяющая ставить перехват практически в любом месте кода.
Решение понравилось и я решил переписать свою библиотеку, которую использую для различного рода перехватов, начисто, с использованием материала от k_d. Текущий вариант умеет перехватывать все, до чего дотянутся загребуще-экспериментальные ручки программиста и парсить аргументы из стека(по крайней мере, потенциально идея это все умеет. Наверное.)
Представляю Вашему вниманию то, что получилось.
Читать дальше →

Дизассемблируем Windows Explorer — отключаем группировку на панели задач

Reading time6 min
Views92K
Однажды, в 2009 году, вышла Windows 7. В то время я сидел на Висте, которая притормаживала на моем стареньком компьютере, и я решил пересесть на семерку сразу после ее выхода.

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



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



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

Под катом:
  • Подробная демонстрация того, как можно самостоятельно подправить принцип работы такого системного процесса, как explorer, под себя, используя отладчик OllyDbg.
  • Готовое решение описанной выше проблемы.

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

Уязвимость нулевого дня в roundcube

Reading time3 min
Views36K
Есть много разного полезного софта, который присутствует на большинстве хостингов. Например, стандартом de-facto является phpmyadmin, отсутствие которого пользователи не поймут и не оценят.

Для почты такое “приложение по умолчанию” — roundcube.

Сегодня мы поговорим о уязвимости zero-day, которая отдает в руки злоумышленнику всю почту ваших пользователей

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

Готовясь к отключению Google Reader-а

Reading time5 min
Views12K
В преддверии 1 июля, дня когда произойдёт отключение самой удобной, на мой взгляд, читалки rss-фидов, я озадачился выбором альтернативы. И учитывая привычку Google отключать сервисы, которые казалось бы пользуются успехом, мой выбор лежал скорее в стороне относительно независимых решений. Доверить хранение кучи своих фидов кому-либо кроме гугла я уже не хотел, мало ли что придёт в голову какому-нибудь эффективному интернет-менеджеру. Кроме того, мне очень хотелось ещё и помочь друзьям, которые тоже пользовались google reader и так же как я настороженно ждут его конца. Не буду останавливаться на вариантах, которые возникли передо мной — об этом уже достаточно написано другими.
Мой выбор пал на Tiny Tiny RSS — tt-rss.org/redmine/projects/tt-rss/wiki.
Читать дальше →

Как запустить программу без операционной системы: часть 2

Reading time8 min
Views65K


В первой части нашей статьи мы рассказали о том, каким образом можно получить простую программу “Hello World”, которая запускается без операционной системы и печатает сообщение на экран.

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

! ВАЖНО!: Все дальнейшие действия могут успешно осуществляться только после успешного прохождения всех 6-ти шагов описанных в первой части статьи).

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

Как найти PCI устройства без операционной системы

Reading time7 min
Views39K
В ходе работы нам периодически приходится сталкиваться с достаточно низкоуровневым взаимодействием с аппаратной частью. В данной статье мы хотим показать, каким образом происходит опрос PCI-устройств для их идентификации и загрузки соответствующих драйверов устройств.

В качестве минимальной базы для работы с PCI-устройствами будем использовать ядро, поддерживающее спецификацию Multiboot. Так удастся избежать необходимости писать собственный загрузочный сектор и загрузчик (loader). Кроме того, этот вопрос и так отлично освещен в интернете. В качестве загрузчика будет выступать GRUB. Грузиться мы будем с флэшки, так как с нее удобно загружать и виртуальную, и реальную машину. В качестве виртуальной машины будем использовать QEMU. В качестве реальной машины должна выступать машина с обычным BIOS-ом (не UEFI), поддерживающим загрузку с USB-HDD (обычно присутствует опция Legacy USB support). Для работы понадобятся Ubuntu Linux со следующими программами: expect, qemu, grub (их можно легко установить при помощи команды sudo apt-get install). Используемый gcc должен компилировать 32х битный код.
Читать дальше →

АнтиЗапрет — Скажи цензуре нет!

Reading time1 min
Views280K
Как и обещал, сделал бесплатный VPN и прокси-сервер, который проксирует только ресурсы, внесенные в единый реестр запрещенных сайтов Роскомнадзором, Роспотребнадзором или ФСКН.
Не нужно искать прокси или VPN, включать/выключать их постоянно, а один раз настроить и забыть.

ПростоVPN.АнтиЗапрет


Сервис использует API сайта antizapret.info и обновляет списки раз в сутки.
Есть два способа настройки: как прокси и как VPN.
Читать дальше →

Exim + DKIM на примере FreeBSD 8.2

Reading time4 min
Views44K

Что такое DKIM и как оно работает


DKIM (расшифровывается как DomainKeys Identified Mail) — метод идентификации письма по доменным ключам.
DKIM настраивается на почтовом сервере для того, чтобы подписывать исходящие письма цифровой подписью. Наличие такой подписи в заголовке отправленного письма сообщает серверу-получателю, что оно действительно было отправлено с указанного домена.
Известно, что в СПАМ-письмах часто в поле From: ставят е-mail, не имеющий совершенно никакого отношения к отправителю. В этом случае DKIM поможет распознать реальное письмо от спама. В отличие от других методов цифровой подписи письма, DKIM совместим с существующими форматами и протоколами и может быть плавно интегрирован в имеющиеся системы доставки и получения почты.

Подпись письма происходит на SMTP-сервере с помощью секретного ключа (Private key), а расшифровка подписи происходит на сервере-получателе или клиентской программе с помощью публичного ключа (Public key). Что интересно, публичный ключ хранится в DNS, что позволяет убить сразу двух зайцев. Во-первых, нет необходимости прикладывать Public key с каждым письмом для его расшифровки. А во-вторых, в таком случае DKIM позволяет сообщать серверам-получателям что делать с письмом, которое не имеет цифровой подписи, но якобы отправлено от вас. Эта технология называется ADSP (Author Domain Signing Practices). ADSP также хранится в DNS SMTP-сервера и доступен всем и отовсюду.

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

Cacti: Мониторинг SMART

Reading time5 min
Views46K


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

У жестких и твердотельных накопителей есть встроенная технология, которая позволяет производить самостоятельную самодиагностику — S.M.A.R.T., к ней мы и будем работать.
S.M.A.R.T. — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.

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

В качестве исходного сервера выступает Linux CentOS 6, работающий, в роли файлового хранилища.

Linux содержит группу пакетов под названием «Smartmontools», которые представляют собой набор утилит для проверки состояния дисков. Непосредственно конфигурация демона smartd для регулярного тестирования и мониторинга SMART, выходит за рамки данной статьи, интересующиеся могут самостоятельно найти примеры настройки в Интернете.

Нас же интересует графическое отображение ключевых параметров, аномальное изменение которых можно увидеть порой только визуально. И в этом нам поможет Cacti.
Читать дальше →

Другая сторона 22nm: неизвестные герои Кремниевой долины

Reading time5 min
Views72K

Каждые несколько лет Intel анонсирует переход на новый технологический процесс. Если сюда добавить новости от других полупроводниковых компаний, то и года не проходит, чтобы та или иная из них не заявила о новом прорыве. Имена этих компаний хорошо известны и у всех на слуху. Но в их тени (совершенно незаслуженно) затерялась одна компания, труд которой незримо стоит едва ли не за каждым из технологических достижений в полупроводниковых технологиях. «Страна должна знать своих героев»…
Читать дальше →

Как запустить программу без операционной системы

Reading time13 min
Views184K

Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).

В интернете существует огромное количество описаний и туториалов о для того как написать собственную мини-ОС, даже существуют сотни готовых маленьких хобби-ОС. Один из наиболее достойных ресурсов по этой тематике, который хотелось бы особо выделить, это портал osdev.org. Для дополнения предыдущей статьи про PCI (и возможности писать последующие статьи о различных функциях, которые присутствуют в любой современной ОС), мы опишем пошаговые инструкции по созданию загрузочного диска с привычной программой на языке С. Мы старались писать максимально подробно, чтобы во всем можно было разобраться самостоятельно.

Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.

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

Мобильный пасьянс, или как поиметь высокоскоростной GPRS/3G Интернет по тарифу не более 10 рублей за 1 Гигабайт без абонентской платы в условиях Российской глубинки

Reading time6 min
Views70K
Мобильный пасьянс
Почитав топик (в котором обсуждался вопрос помегабайтной оплаты Интернета) я был в сильном недоумении, и до последнего момента пытался найти хотя бы один коммент с адекватным решением. И, поэтому, решил поделиться своими мыслями по этому вопросу.

Помегабайтная оплата, это же — прошлый век!

Дело в том, что уже давно операторы предлагают решения, обеспечивающие быстрый и недорогой мобильный Интернет, причем, для современных сетей 4G, производя не помегабайтную, а, что более актуально для современных условий, погигабайтную тарификацию трафика с интервалами, тарификации в 2 Гигабайта, без абонентской платы, с возможностью пользоваться высокоскоростным Интернетом, затрачивая при этом всего от 10 рублей в месяц, а, то, и, того круче — возможность полностью бесплатного использования Интернета.

Постановка задачи:

Мне, как продвинутому пользователю сетей сотовой связи GSM,
хотелось бы иметь доступный мобильный GPRS/EDGE/3G/4G-Интернет:
— без ограничения скорости независимо от объема трафика;
— без обязательной ежемесячной абонентской платы за услуги связи;
— с тарификацией по суммарному объему израсходованного трафика;
— со стоимостью 1 Гигабайта трафика не более 10 рублей;
— с суточным периодом списания денежных средств в соответствии с расчетом;
— с нетарифицируемым объемом трафика до 50 мегабайт в сутки;
— с гарантированной защитой от «случайного» ухода-в-минус из-за перерасхода;
— с возможностью линейного масштабирования скорости в сторону увеличения.

Кажется невероятным?

Тем не менее, для абонентов Центрального региона РФ такая задача вполне разрешима!
В этом топике я попытаюсь развеять сомнения на этот счет, и предложу решить простенькую задачку, связанную с экономией на расходы по оплате Интернета.

Не понимаю, как можно одному оператору иметь такой разброс в тарифах на один и тот же 3G-Интернет с разницей в три порядка! (впрочем, так же, не понимаю, как при таком раскладе можно за 1 SMS-сообщение брать больше 1 копейки).

Дисклеймер:

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

Миниатюрные платы Odroid U2 и Odroid X2

Reading time3 min
Views65K
Не так давно (~13.02.2012) начались поставки миниатюрных плат Odroid U2 и X2, по размеру близких к Raspberry Pi, но оснащённых начинкой, позволяющей использовать их в роли обычного компьютера. Не долго думая я заказал себе 2 платы: Odroid U2 и Odroid X2.

Небольшой обзор плат под катом.
Читать дальше →

Российские спецслужбы всё-таки умеют прослушивать Skype

Reading time1 min
Views33K

Такое утверждение сегодня с утра выдвинула газета «Ведомости» со ссылкой на специалистов «участников рынка информационной безопасности».
Читать дальше →

Linux 3.8 Local Root Vulnerability

Reading time1 min
Views12K
Похоже, вызов clone() с параметрами CLONE_NEWUSER|CLONE_FS приводит к получению uid 0, т.е. позволяет получить обычному пользователю права суперпользователя.
Эксплоит работает только в том случае, если в ядре встроена поддержка namespaces, а также у пользователя есть права на запись в корневую файловую систему (в большом количестве систем корень и домашний раздел находятся на одном и том же разделе).

Для запуска эксплоита в 32-битном окружении, поменяйте все вхождения lib64 на lib, а ld-linux-x86-64.so.2 на ld-linux.so.2.

Эксплоит
Сообщение в рассылке
Новость на Linux.org.ru

Тренировка NiMH аккумуляторов. Есть ли смысл?

Reading time6 min
Views124K
Пролог



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

Собственно параметров, интересных потребителю, два — емкость батареи и ее внутреннее сопротивление. Возможных манипуляций тоже немного — разрядить да зарядить. Измеряя в процессе разряда ток и время можно оценить емкость аккумулятора. По разнице напряжения аккумулятора на холостом ходу и под нагрузкой можно оценить внутреннее сопротивление. Повторив цикл разряд-заряд (т. е. выполнив «тренировку») несколько раз, можно понять имеет ли вообще это действо смысл.

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

Использование моделей в Qt

Reading time4 min
Views103K
За последний год пришлось довольно много работать с Model/View фреймворком Qt. Приходилось как писать собственные модели, так и переделывать существующие. И вот, после созерцания очередного творения, решил представить общественности некоторые наработки.

Начнем с очевидного:

Не используйте виджеты

Все эти QTableWidget, QListWidget и QTreeWidget — не для вас.

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

Одни плюсы, а минусов, при этом, не замечено.
Читать дальше →

Information

Rating
Does not participate
Location
Долгопрудный, Москва и Московская обл., Россия
Date of birth
Registered
Activity