December 16th, 2015

юмор

Теперь Фаерфокс наконец-то сможет больше памяти отожрать!!!

Ибо вышла, наконец-то, его 64-битная версия.

В защиту Фаерфокса таки скажу, что лично у меня основную память отжирает не сколько он сам, сколько штепсель AdBlock. Стоит его отменить -- и использование памяти резко снижается.
техника

Всё уже украдено

Думал тут сколхозить контроллер заряда свинцово-кислотных аккумуляторов. При зарядке таких аккумуляторов большим током самый главный параметр -- это, нет, не напряжение батареи. А зарядный ток. В начале зарядки он высокий, и по мере зарядки падает. Когда он упадёт до значения 5% ампер-часов (т.е. для батареи ёмкостью 50 А*ч это 2.5 ампера) -- батарею можно считать заряженной (если верить http://batteryuniversity.com/learn/article/charging_the_lead_acid_battery ).

Проблема в том, что моё зарядное устройство для свинцово-кислотных аккумуляторов дешёвое, и умеет только тупо выдавать ток до 12 ампер, и показывать его на амперметре. Контроль за зарядом -- ручками, сэр! Раз в пол-часа ходить проверять. Неудобно. Не было бы ничего проще приколхозить сюда ардуинку, которая смотрит за током, и когда достигается нужная степень зарядки -- обрубает ток и/или подаёт сигнал. На 20 минут работы, это включая написание программы.

Одна только проблема -- как измерять такой большой ток? Подключать последовательно сопротивление и мерять падение напряжения? Сопротивление при таком токе будет сильно греться, потери будут. Поэтому я в припадке творчества придумал -- индуктор и приклеенный к нему датчик Холла. Изящно? Изящно. Ну, я весь такой гениальный иду на eBay, набиваю "linear hall sensor" и вижу что? Правильно, уже готовый модуль, с датчиком Холла и встроенном прямо в микросхему индуктором, даже ничего делать не надо, подключай да пиши программу на пять строчек.

http://www.ebay.com/itm/New-design-20A-range-Current-Sensor-Module-ACS712-Module-Arduino-module-ACS712T-/181026550196?hash=item2a2605f1b4

*бросая треух на землю*

Всё уже придумано, ёлкин кот!!!!!
юмор

Безопасная ОС Линукс

"Это какой-то... позор?"

Originally posted by dil at 0-day in GRUB2
Originally posted by malaya_zemlya at 0-day in GRUB2
Если кто не видел - в популярном загрузчике Grub2 обнаружена уязвимость, позволяющая обходить защиту паролем, и дающая полный доступ к шеллу.

Эксплоит: вместо введения пароля нажать на Backspace ровно 28 раз, а потом Enter

Нет, это не секретный бекдор и не шутка девелоперов. Тут произошло нечто потрясающее. Постараюсь передать вкратце (если кому интересны все детали, то смотрите линк).

Если вместо ввода пароля нажимать на Backspace, то из-за пропущенной проверки программа заезжает за пределы буфера и начинает затирать нулями память с отрицательным смещением. Бывает.
В результате затирается стек, включая адрес возврата из текущей функции. Ок.
Соответственно, процессор прыгает на адрес 0, при чем в регистре esi остается текущая длина пароля, то есть -28.
По адресу 0, как водится, расположена таблица IVT, где лежат адреса обработчиков системных прерываний, но процессор ее сейчас интерпретирует не как адреса, в как исполняемый код. Оказывается, что в такой интерпретации IVT содержит функцию копирования блока памяти, где адрес, куда копировать, берется из регистра edi (он у нас установлен тоже в 0), а адрес откуда - из того самого регистра esi.
Получается, что функция начинает править собственный код и копировать данные из адреса -28 прямо поверх самой себя. Причем в цикле.
На первый раз портятся несколько инструкций в начале, но не критично.
На второй раз добавляются какие-то инструкции, меняющие содержимое стека,
А дальше... дальше появляется инструкция retw. Она берет со стека число и прыгает по обозначенному им адресу. А на стеке в этот момент лежит адрес встроенного шелла.

Занавес.