Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
Записи с темой: информационные технологии (список заголовков)
23:40 

Был занят.

Танкист Апокалипсиса
Пытался поломать дистрибутив почтового клиента. Какого - неважно, но, думаю, догадаться можно. На самом деле, крэк под программу уже давно существует, но накладывается он после установки программы. И если с одной-двумя-десятью инсталляциями ещё можно смириться, то устанавливать эту прелесть на бОльшее количество компьютеров было бы лениво.
"И вот, беру я в руки молоток..."
Задача сформулирована достаточно чётко, просто и понятно:
а) установить программу.
б) крэкнуть всё, что нужно сломать.
в) внести изменённые файлы в дистрибутив и собрать его заново, как будто "так оно и было".
На словах всё просто. На деле же всё получилось намного сложнее. Сразу возник вопрос: чем дистрибутив открывать? Хорошо ещё, что он в формате MSI. Правда, на этом приятные новости заканчиваются, потому что пакет составлен таким образом, что при открытии его в Wise Installer видно всего лишь два файлика из более чем сотни. Игра с параметрами открытия и конвертации не помогла.
Хорошо.
Выяснилось, что можно сделать экспорт в формат XML. Экспорт меня не удовлетворил, поэтому пришлось отыскать программу msi2xml (она же - xml2msi) и, побаловавшись опциями, разобрать инсталлятор по косточкам.
Параметры были таковы: msi2xml -b Directory setup.msi , где Directory - каталог, куда распакуем содержимое, а setup.msi - дистрибутив. При использовании данной команды в каталоге появляются ресурсы инсталлятора (иконки, картинки и прочее), файл с именем setup.msi.xml (тут находятся скрипты, управляющие процессом установки программы) и один или более архивов в формате CAB (каб) - собственно, сама программа.
Распаковать архивы можно при помощи WinRAR или команды expand. Но WinRAR удобнее. :-) Да, вот ещё что: необходимо сделать также список имён файлов в архивах следующей командой: expand -D имя_файла_архива.cab > имя_списка_файлов.txt. Зачем это нужно, станет ясно позднее.
Распаковал.
Наложил кряк.
А теперь надо запаковать. Но тут ещё одна трудность: сделать архив можно при помощи команды makecab. Проблема только в том, что она не имеет документации. Вообще. Кое-что есть в Сети, но это ещё найти надо. Есть программы сторонних разработчиков, но архивы, которые ими создавались, оказались непригодны для использования в инсталляторе. (Чтобы это понять и найти выход, пришлось потратить немало времени) Почему непригодны? Да потому, что файлы в архив должны быть запакованы в том же порядке, что был в изначальном пакете! Вот тут-то нам и пригодится файл имя_списка_файлов.txt, сделанный ранее. Его надо подредактировать (убрать несколько строк, к именам файлов не имеющих отношения, удалить название каб-файла из начала строк, да добавить несколько строк с параметрами создаваемого архива (их не помню, ищите в Сети, они есть)) и вызвать следующую команду: makecab -F имя_списка_файлов.txt
Если всё было верно, на выходе получим плотно упакованные файлы программы. Далее всё просто, командой xml2msi -m setup.msi.xml воссоздаём инсталлятор и можем насладжаться жизнью.

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

Трудозатраты - огромны. Но знания - бесценны.

@темы: Опыт сын ошибок трудных, Информационные технологии

10:07 

Танкист Апокалипсиса
Впору плясать от радости, ибо мелочь, а приятно: на Линухе поднял VNC-сервер, что даёт возможность удалённого управления в графическом режиме. И это значит, что машинке на балконе найдутся новые вариатны применения.

На этом тернистом пути подстерегали валуны: "родной" VNC, поставляемый разработчиками протокола, отказался компилироваться с X6.9, ссылаясь на всякую хрень. Зато TightVNC собрался с одного пинка, поставился и запустился. В общем - сижу и наслаждаюсь. Но и тут есть свои нюансы - из Windows вводятся кракозябры вместо русских букв. Пойду копать, возможно, достаточно будет сменить клиентскую часть.

@темы: Информационные технологии

18:44 

И на что я убил день?

Танкист Апокалипсиса
День, помимо выполнения прямых обязанностей, был посвящён прикручиванию OpenGL к VNC. Ну запустил, посмотрел. Да, картинки отрисовываются, но скорость... В общем - представляет собой сугубо спортивный интерес.

@темы: Опыт сын ошибок трудных, Информационные технологии

10:36 

Вопрос к th

Танкист Апокалипсиса
А как так получается, что Википедия регулярно пропадает из поискового ответа Яндекса, но при этом остаются её клоны?

@темы: Информационные технологии

12:20 

На память

Танкист Апокалипсиса
Проверка проксей на анонимность.
http://bp4credit.com.ua/header_moni...ip=62.5.135.173

@темы: Информационные технологии

14:02 

Намучился я с postgresql и netams

Танкист Апокалипсиса
Вкратце о мучениях: при запуске Linux не включается система учёта траффика. Если точнее - запускается, но потом умирает. Экспериментальным путём установил, что "включаемость" считалки зависит от скорости успешного запуска СУБД. После этого в скрипт запуска PostgreSQL после команды запуска дописал следующее:
===начало===
POSTGRES_IS_RUNNING=`ps ax|grep "postgres: stats collector process"|grep -c -v grep`
until [ $POSTGRES_IS_RUNNING -gt 0 ];
do
sleep 1
POSTGRES_IS_RUNNING=`ps ax|grep "postgres: stats collector process"|grep -c -v grep`
done
===конец==
данная хрень читает список процессов и смотрит, не появился ли там процесс с названием "postgres: stats collector process". Если появился - задача считается выполненной и скрипт завершает работу. Если нет, то делается пауза в одну секунду и цикл повторяется снова.

@темы: Опыт сын ошибок трудных, Информационные технологии

11:17 

Очередная микрозатычка на пути спама.

Танкист Апокалипсиса
Спамеры обнаглели - вчера они умудрялись пропихивать к почтовику до 600 спам-соединений одномоментно. В общем, мне надоело, что, хоть спам и эффективно режется, но порядок энтропии во Вселенной возрастает, поэтому в фильтр spamass-milter я дописал три строчки в процедуру отброса сообщений с признаком "спам". Эти три строчки сохраняют IP-адрес, с которого пришло спам-письмо, в текстовой файл.
Затем я написал скриптик, который полученные адреса подставляет в iptables с правилом "послать на ...й" и держит их в этом режиме один час, после чего соединения с того адреса снова разрешаются. Для этого скрипт вызывается cron'ом ежеминутно.

Данное решение не претендует на универсальность.
=== патч spamass-milter ===
diff -Naur spamass-milter-0.2.0/spamass-milter.cpp spamass-milter-0.2.0-1/spamass-milter.cpp
--- spamass-milter-0.2.0/spamass-milter.cpp 2004-12-05 17:10:44.000000000 +0300
+++ spamass-milter-0.2.0-1/spamass-milter.cpp 2007-07-04 16:51:13.000000000 +0400
@@ -379,6 +379,11 @@
{
debug(D_MISC, "Rejecting");
smfi_setreply(ctx, "550", "5.7.1", "Blocked by SpamAssassin");
+/* Запись IP-адреса спамера в текстовой файл */
+ FILE *log=fopen("/var/spool/antispam/spamip.txt", "at");
+ fprintf(log, "%s\n", inet_ntoa(((context *)smfi_getpriv(ctx))->connect_ip));
+ fclose (log);
+
return SMFIS_REJECT;
}
}
=== конец патча ===

Скрипт, как было указано, должен вызываться как можно чаще, в идеале - сразу после получения IP, однако это уже тянет на полноценную программу. В переменной TEMP_VAR хранится размер очереди и. соответсвенно, время пребывания адреса в чёрном списке. Чем больше значение - больше времени.
=== текст скрипта ===
#!/bin/bash
BAD_IP_FILELIST_DIR=/var/spool/antispam
TEMP_VAR=60
for bad_spammer_ip in `cat $BAD_IP_FILELIST_DIR/spamip.txt.$TEMP_VAR`
do
iptables -D INPUT -s $bad_spammer_ip -j REJECT
done

rm -f $BAD_IP_FILELIST_DIR/spamip.txt.$TEMP_VAR

while [ $TEMP_VAR -gt 1 ]; do
let TEMP_VAR1=$TEMP_VAR-1
mv -f $BAD_IP_FILELIST_DIR/spamip.txt.$TEMP_VAR1 $BAD_IP_FILELIST_DIR/spamip.txt.$TEMP_VAR
let TEMP_VAR=$TEMP_VAR-1
done;

mv -f $BAD_IP_FILELIST_DIR/spamip.txt $BAD_IP_FILELIST_DIR/spamip.txt.1
touch $BAD_IP_FILELIST_DIR/spamip.txt

for bad_spammer_ip in `cat $BAD_IP_FILELIST_DIR/spamip.txt.1`
do
iptables -A INPUT -s $bad_spammer_ip -j REJECT
done
=== конец скрипта ===

@темы: Опыт сын ошибок трудных, Информационные технологии

10:13 

"И вновь продолжается бой..."

Танкист Апокалипсиса
со спамерами.
Решил прикрутить проверку на правильность адресов локальных получателей, для чего в наличии есть несколько способов:
1. Написать правила фильтрации самому (я попробовал. Ругани не было, но правила не работали - то ли запихнул не в то место конфигурационного фоайла sendmail, то ли ещё что)
2. Воспользоваться набором штепселей и затычек "Real Time Cyrus Integration Version 2". Штука заработала, но для того, чтобы она ещё проверяла и на наличие псевдонимов, надо было делать много лишних телодвижений. Лень.
3. Найти и собрать фильтр milter-ahead. Оказался сложен (то есть - не для ленивых) в сборке, не умеет, опять же, проверять псевдонимы.
По пунктам 2,3 невозможность проверки, возможно, связана с тем, что у меня БД пользователей и псевдонимов хранится в PostgreSQL.
4. Для велосипедистов.

Собственно, поступил четвёртым способом: взял и написал свой фильтр, который делает всё, что нужно. Сейчас он проходит тестирование, но уже показал свою эффективность - количество вторичного спама резко упало. Да и нагрузка на спаморезку снизилась за счёт отлупа на этапе передачи адреса получателя. Фильтр заточен под набор патчей для sendmail, обеспечивающих работу с СУБД PostgreSQL, хотя ничто не запрещает использовать его и отдельно, но это получится множенье сущностей.

Если всё пойдёт нормально - выложу проект в открытый доступ.

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

@темы: Опыт сын ошибок трудных, Информационные технологии

11:54 

Патч для Cyrus-IMAP

Танкист Апокалипсиса
Тут лежит патч для Cyrus-IMAP, исправляющий (меняющий) некоторые нюансы работы программы, в частности - пустой адрес отправителя в автоответе при включённом фильтре "VACATION".

Версия патча рассчитана на версию 2.2.8, для работы на 2.3.6 пришлось немного доработать напильником.



oss.digirati.com.br/mail/cyrus.html

@темы: Опыт сын ошибок трудных, Информационные технологии

23:33 

Качественный звук за $20?

Танкист Апокалипсиса
Почему бы и нет?
1. Покупается звуковая карточка на базе чипа CMI8768.
2. Покупается брекет с коаксиальным и/или оптическим выходом (можно ещё и со входами). Например - 12CR1-1SPAUD-12.
3. Если на звуковухе есть гребёнка для SPDIF, то жизнь удалась, в противном случае напаиваем 6 пинов (иголок) на место (в две колонки три ряда сверху), где должен был бы быть разъем.
4. Распиновка примерно такая:
1 - +12В?
2 - SPDIF OUT
3 - ?
4 - пустой
5 - ?
6 - GND

то ли на 3, то ли на 5 пине находится SPDIF IN - это можно уточнить.
5. Подключаем к брекету через соответствующие контакты SPDIF OUT и GND. +5В берём от блока питания (красный провод).
6. Можно поставить драйверы с cmediadrivers.googlepages.com - у меня с родными драйверами глючил Media Player Classic.

Наслаждаемся 96 кГц/24 бит через цифровой выход.

@темы: Позитив, Информационные технологии

11:27 

Танкист Апокалипсиса
Если кому нужен Web JetAdmin 10.0, то вот прямая ссылка: ftp.hp.com/pub/softlib/software9/COL18803/ja-53...

@темы: Информационные технологии

13:33 

Драйверы

Танкист Апокалипсиса
Это пи...ц. Дистрибутив драйвера для видеокарт ATI в ноутбуках ASUS весит 202 мегабайта. И выкачивается он со скоростью 900 байт/с. Проклятые узкоглазики.

@темы: Негатив, Информационные технологии

13:45 

Танкист Апокалипсиса
mapbuilder.by.ru/mapbuilder.zip
MapBuilder - программка для склеивания картинок GoogleMaps в одну карту.

@темы: Информационные технологии

15:09 

ZRC - зло

Танкист Апокалипсиса
Все эти недожелезные RAID - зло и уродство. Особенно - для SCSI. Производить железки стоимостью более 3 тысяч долларов, чтобы впихнуть в них программный RAID - верх засирания мозгов маркетологами.

@темы: Негатив, Информационные технологии

22:27 

Свой угол в Сети.

Танкист Апокалипсиса
Обзавёлся полноценным виртуальным пристанищем: www.dukess.ru

@темы: Позитив, Информационные технологии

10:53 

Спаморезка выложена

Танкист Апокалипсиса
Вот в этой заметке я расписывал создание фильтра проверки наличия почтовых адресов для фильтрации дурных спам-ботов, широковещательного и вторичного спама. Также, после тестирования и исправления совсем уж вопиющих ошибок, обещал выложать программку в мир. Итак, это свершилось: dukess.ru/index.php/software/5-lrc-milter-v-023

Документации на неё пока нет никакой, кроме комментариев в тексте программы. Лицензия - GPL v.2 .

@темы: Позитив, Информационные технологии

22:36 

продолжение мыльной оперы про спам.

Танкист Апокалипсиса
Фильтр для проверки локальных адресов был опробирован, протестирован и утверждён к использованию. Правда, как ни странно, после ввода его в эксплуатацию количество доходящего спама стало возрастать. После анализа ситуации стало понятно, что ничего странного в этом нет: при предварительном отсеве "плохих" писем спаморезке (SpamAssassin'у) просто стало не на чем обучаться.

Поэтому была пересмотрена концепция и фильтр lrc-milter был переписан в плагин для SpamAssassin. Если он покажет себя успешным средством - выложу в общий доступ.

@темы: Позитив, Информационные технологии

22:01 

Ойядурак!

Танкист Апокалипсиса
Блондинки бывают не только женского полу, ага:
Внедрить плагин для проверки на корректность локальных адресов, проверить его работоспособность прямо с локального адреса (localhost) сервера, а после этого удивляться "а почему это у нас всё отвалилось?". Ещё бы - при отбросе спам-писем блокируются на час IP-адреса спамеров, а в этот раз спамером оказался я.

Ойядурак!

@темы: Позитив, Опыт сын ошибок трудных, Информационные технологии

13:20 

Танкист Апокалипсиса
Плагин к спаморезке.
Выложен: www.dukess.ru/index.php/software/lrc-sa

@темы: Информационные технологии

00:13 

Танкист Апокалипсиса
А не пошло ли название опции чистки дерева исходных кодов ядра Linux "mrproper" от названия торговой марки чистящих средств?..

@темы: Информационные технологии

Что-то видел, что-то знаю...

главная