Читать «Bash IT Happens Истории ## 12101 – 12200» онлайн - страница 23

Bash.org.ru IT

И да, неявное преобразование типов в С/С++, к которому надо относиться очень внимательно — страшная вещь, особенно когда пишутся кроссплатформенные приложения. Не зря в одной толстой священной книге от Страуструпа этому вопросу отведена чуть ли не целая глава.

#12147: Криптоустойчивый контейнер

12:12 28.04.2014, IT happens

Некоторое время назад родственники стали жаловаться, что в их подъезде какие-то нехорошие люди регулярно то ломают домофон, то портят почтовые ящики и выбрасывают. Жильцы подозревают в этом раздел сфер влияния районного ЖКХ и местного ТСЖ, но доказать ничего не могут. Обращались неоднократно к участковому — всё бесполезно. После очередного раза, когда взломали их ящик, и без того потрёпанный жизнью, внезапно пришла идея. В закромах был найден антивандальный коммутационный ящик подходящего размера, доработан болгаркой для получения входящей корреспонденции, окрашен и повешен на четыре анкера 10×150 непосредственно в бетонную стену рядом с остальными.

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

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

#12148: Недоперезагрузка

12:24 28.04.2014, IT happens

Многие, наверно, слышали поговорку: «Нет повести печальнее на свете, чем повесть о заклинившем ресете». Появление поговорки, скорее всего, связано с тем, что на злосчастную кнопку обращают внимание, когда раскидано уже полмашины, а виновник проблем всё это время был на виду. Мне ситуация с запавшим ресетом попадалась раз пять, поэтому я уже давно включил проверку этой проблемы в шорт-лист предварительной диагностики, но оказалось, что невнимательность и неудачное стечение обстоятельств могут придать этой поломке новый колорит.

На ремонт принесли старенький системник на nForce2. Индикатор пост-кодов показал, что на шине PCI активен сигнал Reset. Причин такому состоянию может быть очень много: от отсутствия одного из напряжений питания до убитого южного моста. Первым делом я решил исключить самый естественный источник этого сигнала, для чего отключил провода, идущие к передней панели корпуса. Оценив, что до разъёма очень неудобно будет тянуться отвёрткой, решил вернуть кнопку питания на место. На свою беду я запомнил, какой провод на какие штырьки шёл, и прочитал подписи только на материнке, причём неправильно из-за того, что они были сделаны весьма оригинальным способом.

Если бы машина не стартовала сразу после подачи питания, я бы неизбежно понял, что вместо Power вернул на место Reset, а так я посчитал, что эта проверка выполнена, и продолжил диагностику.

Все основные и вторичные напряжения питания были в порядке, и я начал искать, не греется ли какая-нибудь из микросхем сильнее обычного. Заинтересовала меня температура южного моста — палец ещё не обжигает, но в моём понимании он так греться не должен. Так как южный мост не просаживал своё питание, был вариант, что нагрев идёт из-за сдохшего встроенного USB-контроллера. Все дальнейшие манипуляции разумнее было делать, изъяв материнку из корпуса.