29 дек. 2009 г.

Металлолом

Пришлось два дня провозиться с железякой 95-го года производства. Точнее с тремя. Какие-то, на то время очень крутые, персоналки. 80 МБ рамы (4 симма по 20, получается, МБ - я таких не встречал никогда, хотя симмы застал); HDD 4GB; Pentium 133, Win 98 (на корпусе - наклеечка "Designed for Windows 95" :) ); 12-x CD-Rom (круть по тем временам). Пока разобрал корпус, придумал пару новых выражений нецензурных - [censored] и [censored][censored][censored][censored]. Позже скину фотки сего дела.
Задача была поставить на машинку какой-нибудь Linux. Для того, чтобы сотворить железяку, которая будет будить сервера, уснувшие в случае отключения света, но не проснувшиеся при его появлении. То есть такая ситуация.



  • На серверах (несколько штук подключены к одному smart-UPS, который, в свою очередь управляется на одном из серверов) поднят apcupsd.

  • Пропадает свет. Сервера корректно тушатся командами от мастера, затем выключается и сам мастер. При этом между выключением первого сервера и выключением самого UPS проходит около 5 минут
  • .
  • UPS отключает питание с выходов.

  • По включении питания UPS заряжается до указанного в настройках заряда батареи, включает питание на выходах, сервера начинают загружаться.



Но если питание в электросети появится до отключения UPS-а и после отключения первого сервера, то последний так и останется выключенным. Для этого было решено поставить какой-нибудь старый тазик, который будет включен прямо в электросеть, чтобы по появлению электричества начинать рассылать нужным серверам сообщения Wake On Lan.
Под руками оказались 3 полусобранные машины с вышеописанной конфигурацией. С загрузочныз компактов грузиться они упорно не хотят - если старт и происходит, то тут же процесс обрывается с разнообразными сообщениями о невозможности правильно сконфигурировать привод. С загрузкой с дискет примерно та же история.

После дня мученний скопировал имевшуюся под руками Slax - Live-дистрибутив Slackware. Скопировал его на диск c:\ одной из машинок. Прописал в autoexec.bat запуск. Без особых проблем он запускается. Но с непонятной периодичностью теряет сделанные настройки. То /root пропадает, то настройки сети... Полдня с ним провозился. Плюнул.

Подошел zipslack. Подключил винт с машинки к донору, распаковал на него пакет zipslack-а. Прописал, опять-таки, в autoexec.bat его запуск. Стартует, конфигурацию запоминает... Всё хорошо. Пришлось, правда скачать perl.tgz и установить его. Для того, что в пакет не входят компиляторы, которыми можно было бы собрать программку для отсылки WOL-пакетов. А perl поставился без компиляции, а перловый скрипт (взятый отсюда) очень даже нормально с этой задачей справляется.


Таким образом получился костыль 15-летнего возраста, который помогает молодым брендовым серверам, лет на 14 младше этого костыля. :)

Каламбурчик

Наше счастье - постоянно
Ешь кокосы, жуй бананы
Ешь кокосы, жуй бананы...
...Хочу МЯСА!

Чунга Чанга.

9 дек. 2009 г.

"iMax Download Manager"

Вчера столкнулся, как, подозреваю, и еще несколько сот тысяч, пользователей, с т.н. "вымогателем". При попытке запуска любого exe-файла приложение тут же закрывалось. Через пару минут после старта системы выскакивало окно с надписью "Вы нарушили правила использования пакета iMax Download Manager." + [куча текста] + "отправьте СМС на номер такой-то с текстом таким-то". Троянец был подхвачен неизвестно когда (пользователь работал с правами админа и что где и как запускал - неизвестно). Но активизировался троян 08/12/2009. Сообщений в форумах - море. С разными кодами и советами. Часа 4 ушло на попытки вычислить откуда происходит запуск и как его вычистить и на выдумывание новых воззваний в адрес пользователей и троянописателей. Ничего не получалось. Кроме воззваний. Потом в одном посте таки подсказали симптом - в windows\system32\ располагаются несколько DLL-файлов с одинаковым размером, признаком системных скрытых файлов и белибердой в имени. Загрузился с LiveCD, выстроил список файлов по размерам. Нашел группу из десятка файлов с одним размером и признаками скрытости. Снес их в архив и перезагрузился. Помогло.

Если это читает кто-то живой! :)
Работайте с учеткой обычного пользователя! Используйте права администратора только при необходимости. Значительно упростите себе жизнь!

3 дек. 2009 г.

Грязные хаки в C++

В блоге "C++ для всех" наткнулся на статейку "Вокруг public, private и protected". В двух словах - 4 метода доступа к private-членам класса. Особенно улыбнуло

1 #define private public
2
3 class some {
4 public:
5 int a;
6 protected:
7 int b;
8 private:
9 int c;
10 };
11
12 void hack(some& obj) {
13 obj.c = 0;
14 }


:)