Как стать автором
Обновить

Сетевые утилиты Linux

Сбор информации
0trace 0,01

Эта прога перечисляет хопы ( «traceroute») через TCP, типа HTTP или SMTP. Обычно хопы проверяются через traceroute, но данная прога делает немного больше — если traceroute при встрече с файерволлом возвращает обратно неполные данные, то эта прога проходит через файерволлы — как нож сквозь масло, причем самое главное — все происходит настолько незаметно, что никакая защита даже не может понять в чем дело, а не то, что бы дать сигнал опасности.

Инфо: lcamtuf.coredump.cx

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

Инфо: phenoelit-us.org/irpas/docu.html # осла

DIG

DIG (доменный группировщик) — многофункциональная прога для опрашивания DNS-серверов. Прога ищет DNS с указанием, что-бы ответы приходили с именем сервера (ов), которому (-ым) был послан запрос.

Инфо: linux.about.com/od/commands/l/blcmdl1_dig.htm

Dimytry

Обычная прога в командной строке закодированная чисто на C для сбора как можно больше информации о хосте.

Инфо: www.mor-pah.net

DNS-Ptr

Прога через которую можно сделать запросы с подменой IP-адреса и получить DNS IP-адреса, причем очень быстро.

Инфо: vejeta18.wordpress.com/2006/11/19/dns-ptr # более 12 [вниз]

dnstracer 1,5

Прога трассирует DNS-сервера, причем начальные точки запросов можно варьировать, прога так-же идет дальше по цепочке DNS-серверов, если они есть.

Инфо: www.mavetju.org/unix/dnstracer.php

dnswalk

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

Инфо: sourceforge.net/projects/dnswalk

DNS-bruteforce

Прога нужна для грубого взлома DNS по resolution. Короче, прога создает пустой словарь и заносит в него все слова до точки, после которой идет имя домена.Для пользы дела использует несколько потоков; один поток для каждого DNS. Обычно-же при брутфорсах DNS делается последовательный перебор. А через эту прогу можно вытаскивать из словаря N блоки (N это число DNS-серверов), и засылать N для DNS. Эта прога сейчас разрабатывается в рамках проекта revhosts, новые обновления доступны только через revhosts.

Инфо: www.revhosts.net/DNSBruteforce

dnsenum

Прога на Perl — собирает информацию о домене. Внимание!!! В Сети используется: DNS модуль. Более подробно смотреть на сайте

Инфо: www.filip.waeytens.easynet.be

dnsmap

Небольшая прога на C, для грубого взлома DNS. Обычно в проге хватает встроенного словаря, в особо сложных случаях можно подключить внешний файл словаря.

Инфо: unknown.pentester.googlepages.com [вниз]

DNSPredict

Скрипт на PERL — один из лучших инструментов для определения DNS имена через Google. Это средство, которое имеет важнейшее значение для сетевых карт, в прогу можно задать два или несколько связанных слов, а также доменное имя в качестве аргумента. Эти два слова посредством Google Sets будут расширены в ряд подобных слов. К примеру, слова «Земля» и «Марс» будут расширены до Венера, Меркурий, Юпитер, Сатурн, Нептун, Уран, Плутон. Если потом задать домен foo.com, dnspredict будет пытаться разрешить DNS venus.foo.com, mercury.foo.com и т.д. Самое радостное, что эта прога полностью готова к работе, и ничего уже не надо доустанавливать.

Инфо: johnny.ihackstuff.com/downloads/task, cat_view / GID, 16/limit, 5/limitstart, 0/order/ASC/

FingerGoogle

FingerGoogle нужна для поиска учетной записи пользователя DNS

Инфо: sourceforge.net/project/showfiles.php?group_id=82076

Firewalk

Firewalk — это активное разведывательное средство для сетевой безопасности, через эту прогу можно попытаться определить, через какие слои IPV4 протокола с учетом пересылки IP пройдут устройства. Firewalk работает через отправку TCP или UDP пакетов с TTL на единицуодну, чем на шлюзе. Если шлюз пропускает трафик, он будет направлять пакеты к следующему хопу, и выяснять ICMP_TIME_EXCEEDED. Если шлюз пребывания не дает проходить трафику, то, вероятно, пакеты заглохли, и не видно будет никакого ответа.

Инфо: www.packetfactory.net/projects/firewalk

Fport 2.0

fport докладывает о всех открытых TCP / IP и UDP портах и про все интерфейсы которые ими владею. Аналог 'netstat-' в терминале, показывает не только карты, порты, но запущенные процессы с указанием PID, имя и путь процесса. Fport можно использовать для быстрого скана неизвестных открытых портов и связанных с ними приложений.

Инфо: www.foundstone.com/us/resources/proddesc/fport.htm

Goog Mail Enum

Перечисляются почтовые домены через Google

Google-поиск

Googl -овский поиск скрипта из командной строки.

Googrape

Дает локализованый доступ к Google Hacking БД, позволяя искать доменное имя. Здорово подходит для поиска на основе записей.

Gooscan

Gooscan это инструмент, который автоматизирует запросы через Google Search Appliances.

Инфо: johnny.ihackstuff.com

Host

Host простая утилита для выполнения DNS поиска. Она обычно используется для преобразования имен в IP-адреса и обратно.

www.hmug.org/man/1/host.php

InTrace 1.3

InTrace — это одна из traceroute-подобных утилит, можно через нее перечислить все хопы с использованием существующих TCP соединений, к примеру начав с локальной сети (локальной системы), либо начав с удаленных хостов. Может быть полезной для создания разведывательной сети и для обхода брандмауэров.

Инфо: www.swiecki.net

Itrace

Itrace это программа, которая реализует traceroute (1), используя функцию ICMP ECHO REQUEST. Может помочь при поиске позади брандмауэров.

Инфо: phenoelit-us.org/irpas/docu.html # itrace

Maltego 2.0

Maltego — это открытый источник информации. Обычно нужна для добычи и сбора информации, а также что-бы понять эту информацию.

Инфо: www.paterva.com/maltego

Metagoofil 1.4

Metagoofil — еще один инструмент для сбора информации, предназначен для извлечения метаданных из официальных документов (PDF, DOC, XLS, PPT, ОРС, ODS) доступных на веб-сайтах.

Инфо: www.edge-security.com/metagoofil.php

Mbenum 1.5.0

MBEnum опрашивает обозреватель на предмет информации с которой он работал. Windows-сервера / рабочие станции хранят инфу о том, какие проги они запускали например, Terminal Services, SQL Server, сервер РАН т.д. MBEnum может быть полезна для получения общей картины в Windows.

Инфо: www.cqure.net/wp/mbenum

Netenum

netenum нужен для использования или для создания списков хостов для других программ. Прога не такая мощная, как другие инструменты, но за то она простая. При оформлении тайм, использует ICMP ECHO REQUEST для поиска доступных хостов. Если не определить тайм, то просто выведит IP-адрес в строке, поэтому прогу можно использовать в скриптах.

Инфо: phenoelit-us.org/irpas/docu.html # netenum

Nmbscan 1.2.4

nmbscan сканирует SMB / NetBIOS сети, используя протоколы NMB / SMB / NetBIOS. Бывает нужно для получения информации по локальной сети для того, что-бы к примеру проверить уровень безопасности. Через нее можно получить такую инфу, как NMB / SMB / NetBIOS / Windows хоста, IP-адрес, IP узла, Ethernet MAC-адрес, имя пользователя Windows, NMB / SMB / NetBIOS / Windows доменное имя, пароли браузера. Прога может обнаружить все NMB / SMB / NetBIOS / Windows хосты в локальной сети.

Инфо: nmbscan.gbarbier.org

Protos

Protos это сканер IP протоколов. Прога проходит через все возможные IP-протоколы и использует негативное сканирование для того что-бы разобраться в неподдерживаемых протоколах, бывает нужно чтобы разобраться в протоколе ICMP когда идет обмен между хостами, ну и понятно что обычным способом такие сообщения оказываются недоступными для перехвата.

Инфо: phenoelit-us.org/irpas/docu.html # Protos

PsTools

Прога для айтишников или разработчиков, для Веб-управления, диагностики и устранения неполадок Windows систем и приложений.

Инфо: technet.microsoft.com/en-us/sysinternals/default.aspx

PsInfo

PsInfo нужна для сбора основной инфы о локальной или удаленной системе Windows NT/2000, в том числе тип установки ядра, зареганной организацией и о владельце, количество процессоров и их тип, объем физической памяти

Инфо: technet.microsoft.com/en-us/sysinternals/bb897550.aspx

PsFile

PsFile хитрая прога для показа списка файлов в системе, которые были открыты дистанционно, а также позволяет закрыть открытые файлы либо по имени либо по ID файла.

Инфо: technet.microsoft.com/en-us/sysinternals/bb897552.aspx

PsList

Показать инфу о процессах и потоках.

Инфо: technet.microsoft.com/en-us/sysinternals/bb896682.aspx

PsGetSID

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

Инфо: technet.microsoft.com/en-us/sysinternals/bb897417.aspx

PsLoggedOn

PsLoggedOn это апплет который показывает есть ли определенный пользователь в Сетевом Окружении прямо сейчас.

Инфо: technet.microsoft.com/en-us/sysinternals/bb897545.aspx

PsLogList

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

Инфо: technet.microsoft.com/en-us/sysinternals/bb897544.aspx

PStoreView 1.0

PStoreView крадет содержимое Protected Storage. Вообщем обычно к примеру Internet Explorer содержит имя пользователя и пароль для автозаполнения, Outlook и имена учетных записей и паролей.

Инфо: www.ntsecurity.nu/toolbox/pstoreview

QGoogle

Запросы к Google через Python.

Инфо: diveintomark.org/projects/pygoogle

SMTP=cirt

Что-то связанное со сканом SMTP-серверов. Здесь много чего накручено, все делается как-то автоматом, просто мне это неинтересно, и поэтому я ничего про это не знаю.

Инфо: www.cirt.dk

SMTP-VRFY

Vrfy.pl использует VRFY команды для проверки пользователей / почты по сети с помощью списка в общей системе имен, такие как корень, администратора и т.д.…

Subdomainer 1.3

Subdomainer нужна для сбора инфы для получения списков субдоменных имен из открытых источников, как Google, MSN Search, Yahoo, PGP-серверы и т.д.

Инфо: www.edge-security.com/subdomainer.php

TCPtraceroute 1.5beta7

tcptraceroute — это traceroute — подобная программа, используящая возможности TCP-пакетов. Обычно traceroute посылает либо UDP или ICMP ECHO пакеты с TTL равным одному и приращениями TTL когда пункт назначения будет достигнут.

Инфо: michael.toren.net/code/tcptraceroute

TCtrace

TCtrace подобен itrace traceroute (1) как клон — но он использует TCP SYN-пакеты на след. Это позволяет вам отслеживать через брандмауэры, если вы знаете, хотя бы одну TCP службу, которая позволила бы перейти из внешки.

Инфо: phenoelit-us.org/irpas/docu.html # tctrace

Whoami

Показывает текущего пользователя и терминал за которым он работает.

Инфо: www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en

Составление карты сети

AMAP 5.2

AMAP это сервисный инструмент для проникновения по сети с целью тестирования. Программа выполняет быстрый и надежный протокол обнаружения приложений, в независимости от TCP / UDP портов, которым они обязаны.

Инфо: www.thc.org/thc-amap

Angry IP Scanner (ipscan) 3.0-beta3

Angry IP Scanner (или просто ipscan) — это кросс-платформенной сетевой сканер быстрый и простой. Он сканирует IP-адреса и порты, а также имеет много других функций.

Инфо: www.angryziber.com/w/Home

AutoScan 0.99_R1

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

Инфо: autoscan.free.fr

Fping

Fping это почти то же самое что и пинг (1), который использует Internet Control Message Protocol (ICMP) для повтора запроса, чтобы определить, когда хост доступен. fping отличается от пинг тем, что вы можете указать любое число хостов в командной строке или указать файл, содержащий списки хостов для пингования. Вместо того, пока у одного хоста, истечет таймаут или придет ответ, fping направит пинг пакет и тут же перейдет к следующему хосту в круговой системе моды.

Инфо: www.fping.com

Genlist

Сетевое сканирование хостов отвечающих на пинг

Hping

hping утилита командной строки, ориентированная на TCP / IP пакеты ассемблер / анализатор. Интерфейс вдохновил на пинг (8) Unix команды, но hping не только посылает запросы ICMP Echo. Он поддерживает TCP, UDP, ICMP и RAW-IP протоколы, имеет traceroute режиме, способен передавать файлы между охватываемым каналом, и еще много других функций.

Инфо: www.hping.org

Hping2 2.0.0-RC3

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

Инфо: sourceforge.net/projects/hping2

Hping3 3.0.0-альфа-1

hping3 скрипт на языке TCL, пакеты, могут быть получены и отправлены с помощью двоичной строки или через свойство rappresentation описания пакета. В принципе это значит, что всего из нескольких строк кода, можно сделать то, для чего потребовалось бы очень много строчек C-кода. К примеру, что то похожее можно увидеть в автоматизированных тестах безопасности с возможностью печати отчетов, TCP / IP тесты, многие виды атак, NAT-тин, прототипы брандмауэров, реализации протоколов маршрутизации, и так далее.

Инфо: gd.tuwien.ac.at/www.hping.org/hping3.html

IKE-Scan

IKE-сканирование, используется протокол IKE для обнаружения, слепка и проверки IPsec VPN-серверов.

Инфо: www.nta-monitor.com/tools/ike-scan


IKEProbe

IKEProbe могут быть использованы для определения уязвимостей в PSK реализации VPN сервера. Прога старается подобрать различные комбинации шифра, хеш и Диффи-Helman групп и предпринимает попытки заставить удаленный сервер перейдти в агрессивный режим.

Учебник использованием IKEprobe: www.securityfocus.com/infocus/1821 IKEProbe Скачать: www.ernw.de/download/ikeprobe.zip

Netcat 0.7.1

Netcat сетевая утилита, которая считывает и записывает данные через сетевые соединения, используя TCP / IP протокол. Она предназначен для надежного «Back-End» инструментария, которые могут быть использованы непосредственно или легко определятся другими программами и скриптами. В то же время, она является особенностью сетей отладки и разведывательным инструментом, поскольку она может создать практически любой вид связи который вам потребуется, и имеет несколько интересных встроенных возможностей в потенциале.

Инфо: netcat.sourceforge.net

Netdiscover

Netdiscover разведывательное средство, в основном разработана для тех, кто использует беспроводные сети без сервера DHCP.

Инфо: nixgeneration.com ~ Жайми / netdiscover /

Nmap

Nmap инструмент с открытым исходным кодом для сетевой безопасности, разведки и аудита. Она предназначена для быстрого сканирования больших сетей, хотя она отлично работает и с одним хостом.

Инфо: www.insecure.org/nmap

NmapFE

NmapFE GUI интерфейса для Nmap

Nmap учебник: www.nmap-tutorial.com/html/nmap-tutorial-single.html

P0f

P0f является универсальным пассивными OS инструментом для fingerprint.

Info: lcamtuf.coredump.cx/p0f.shtml

PSK-Crack

PSK-крэк пытается взломать IKE в агрессивном режиме предварительно через общих ключей, которые были ранее собранны с помощью IKE-скан с — pskcrack.

PSK может работать в двух различных режимах:

1) Словарь Крэк-режим: это режим, в котором PSK-крэк подбирает слово из словаря, пока не найдет совпадение, или все слова в словаре

2) Brute силовой Крэк-режим: в этом режиме PSK-крэк пытается всеми возможными комбинациями произвести подбор именно с указанной кодировкой до заданной длины.

Ping

PING использует ICMP протокол обязательно ECHO_REQUEST Датаграмма для получения ICMP ECHO_RESPONSE от хоста или шлюза. ECHO_REQUEST дейтаграмм (`` команд) имеют IP и ICMP заголовка, а затем `` структуры timeval и произвольное число `` колодки байт, используемых для заполнения пакета.

Пинг: www.hmug.org/man/8/ping.php

Protos

Protos сканер по IP — протоколу. Прога проходит через все возможные IP-протоколы и сканирует даже неподдерживаемые протоколы

Инфо: phenoelit-us.org/irpas/docu.html # Protos

ScanLine 1.01

ScanLine сканер портов в командной строке для всех платформ Windows. Он может выполнять традиционную ICMP «диагностику», сканировать TimeStamp, может показать количество прыжков, выполнить сканирование TCP, UDP невероятно просто, осуществить захват баннера и регулятор хоста. Сканирование производится в очень быстром параллельном режиме, не разделяя сканирование на несколько потоков. Программа может обрабатывать огромное количество и диапазоны IP-адресов, без всяких проблем.

Инфо: www.foundstone.com/us/resources/proddesc/scanline.htm

Scanrand

Scanrand это быстрый сетевой сканер, который может сканировать одиночные хосты в очень больших сетях очень эффективно.

Scanrand Учебник / использования: www.secureworks.com/research/articles/scanrand

SinFP

SinFP представляет собой новый подход к определению OS, дело в том, что многие начали выстаивать защиту подделывая информацию об OS, программа не полагаясь только на этот ответ последовательно опрашивает все порты и только на основе данного опроса выдвигает предположение об установленной OS

Инфо: sourceforge.net/projects/sinfp

UnicornScan

Unicornscan чрезвычайно эффективный сканер на необычном движке.

Инфо: www.unicornscan.org

UnicornScan PGSQL 0.4.6e модуль версии 1.03

Автоматический запуск сценариев UnicornScan.

XProbe2

Утилита определения OS

Инфо: xprobe.sourceforge.net

PBNJ 2.04

PBNJ набор инструментов для мониторинга изменений в сети с течением времени. Она делает это путем проверки изменений на целевой машине, включая в себя подробное описание служб, работающих на них. PBNJ анализирует данные полученные при сканировании и сохраняет их в базе данных. PBNJ Nmap нужен для сканирования.

Инфо: pbnj.sf.net

OutputPBNJ

часть PBNJ 2.0 набор инструментов для мониторинга изменений в сети.

ScanPBNJ

Программа для запуска Nmap сканирует и хранение результатов в базе данных PBNJ 2.0

Zenmap 4,60

Zenmap сканер безопасности в GUI. Отличается поддержкой плагинов.

Инфо: nmap.org/zenmap

Поиск и обнаружение уязвимостей

Absent

Absent это графический инструмент для автоматизации процесса слепых SQL-инъекций.

Absent не создан для помощи в обнаружении дыр SQL инъекций. Этот инструмент только ускоряет процесс восстановления данных.

Особенности:

* Автоматические SQL-инъекции
* Поддержка MS SQL Server, MSDE, Oracle, Postgres
* Cookies / Дополнительные заголовки HTTP
* Дополнительный текст прилагается к запросам
* Поддерживает использование прокси-серверов
* Множественные фильтры

Основные применения: www.0x90.org/releases/absinthe/docs/basicusage.php

Загрузка схемы: www.0x90.org/releases/absinthe/docs/schema.php

Загрузка отчетов из базы данных: www.0x90.org/releases/absinthe/docs/datapull.php

Pastel

Детектор Bruteforce Exploit представляет собой набор скриптов для автоматического теста реализации различных протоколов для буфера и / или уязвимость строки форматирования, путем направления множества длинных строк на сервер. В основном применяется для организации нападения без предварительного плана.

Главная страница: snake-basket.de/bed.html

CIRT Fuzzer

Простые службы TCP / UDP протоколов Fuzzer Версия 1.0

Инфо: HTTPS: / / www.buslab.org/index.php/content/view/45743/2

Checkpwd

Checkpwd быстрый словарь для подбора паролей для баз данных Oracle. Checkpwd читает хэши паролей из таблицы $ sys.user и сравнивает с hashkeys hashkeys рассчитывается из файла словаря.

Инфо: www.red-database-security.com/software/checkpwd.html

Локализация FF под любую местность и язык

Скоро будут доступны Unicode инсталлер и апдейтер пользовательских интерфейсов

для
* Firefox
* L10n
* Mozilla
* Планеты
* Thunderbird

До сих пор, локализация проектов, которые не имеют таблицу символов Windows (Windows code-page ), были из обречены на неудачи в локализации инсталлера и пользовательских интерфейсов для всех приложений на основе Mozilla. Мы все знаем, что таблицы символов это ЗЛО; здесь основные проблемы, связанные с таблицами символов для этих двух компонентов:
• Языки, которые не имеют таблицу символов не могут локализовать инсталлер и пользовательский интерфейс.
• локализации инсталлера и пользовательских интерфейсов для языков, которые имеют кодовое страница могли работать только, если Windows была настроена для использования в точности, что таблица символов, в противном случае пользователи видели бы нечитабельный текста (см., например, этот скриншот, который был сделан из Российской версии на Английская версии Windows XP).

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

Вскоре было выясненно, что существует два бага ответственных за поддержку Unicode в инсталлере и пользовательскom интерфейсе. После перехода на Юникод NSIS, который является проектом Джима Парка (Jim Park), цель которого интегрировать поддежку Unicode в NSIS Installer. Почти готовы поддержка Unicode для инсталлера (Unicode поддержка пользовательских интерфейсов выйдет в ближайшее время).

Попытался резюмировать, что это означает для локализаторов:

* Это повлияет на ветки разработок Firefox (3.2) и 3.1, Thunderbird 3.0, SeaMonkey 2.0, а также Sunbird 1.0.
* Если Вы уже перевели установки и обновления стринг’ов для вашей местности, нет ничего особенного для вас — вы можете расслабиться и наслаждаться результатами (которые будут заключаться в том, что инсталлер и обновления пользовательского интерфейса будут корректно отображаться во всех языковых версиях Windows )!
* Если вы еще не перевели и установки обновлений на сегодняшний день, это означает, что вы можете начать работу прямо сейчас! Но пожалуйста, не публикуйте свои переводы до тех пор, пока баг 305039 не будет исправлен, иначе ваши переведенные сборки будут падать.

AJAX с нуля

Год назад, когда я слышал слово AJAX, мне сразу становилось страшно, перед глазами появлялись крутые программеры пьющие, по выходным, зеленый чай с тибетскими монахами, ну и т.д. и т.п. Дело в том, что человеку, пытающемуся с нуля разобраться, что же такое AJAX, не следует видеть код вроде этого:

window.addEvent('domready', function() {
$('aj').addEvent('click', function(event) {
event.stop();
new Request.HTML({
url: 'script.php',
method: 'get',
update: $('ajax_area'),
onRequest: function(){$('ajax_area').innerHTML="\"Загрузка...\"";},
onComplete: function(){$('ajax_area').innerHTML="";}
}).send('stage=1');
});
});
// Написано с помощью фреймворка mootools

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

Использование rsync в режиме клиента для ОС Windows

Хочу поделиться вариантом использования rsync для синхронизации файлов между внешней UNIX/Linux системой и локальной системой Windows.


Подобные задачи иногда возникают в работе администратора. Однако оказалось непросто быстро найти в сети работоспособный вариант версии rsync под win32 и сразу начать использовать для решения возникших задач автоматизации переноса файлов. Я не буду рассказывать о преимуществах rsync. На мой взгляд, это наиболее универсальный и гибкий инструмент синхронизации файлов между хостами.



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

Финт ушами или экономим время


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



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

Искуственный интеллект: главное практика

Очень часто я встречаю слишком пространные рассуждения на тему искуственного интеллекта. Кому то не нравится что он поработит человечество, кто то хочет приписать к нему человеческие эмоции. Даже разговаривая со своим окружением часто натыкаюсь на софизмы. Неудивительно что ИИ еще не создан, — мы не знаем чего хотим от него.
Теория без практики не может создать ничего полезного. Практика без теории хотя бы попытается.
Читать дальше →

Flex. Привязка XML данных (Data Binding) без использования MXML.

Темой статьи стала проблема, с которой я столкнулся, разрабатывая некоторый продукт на Flex'е.

Начнем. Как можно привязать XML данные к некоторому значению визуального компонента... В общем-то не сложно:
[Bindable]<br/>
private var some_xml_data: XML;

и MXML'ом привязуем его к компоненту:
<some_component some_property="{some_xml_data}/>

Когда изменяется some_xml_data то some_property в some_component'а тоже меняется... 
Припустим компонент some_component создает динамически еще некоторые компоненты,
которым передается некоторая выборка из some_property some_component'а:
var dynamic_component: DynamicComponent = new DynamicComponent();<br/>
dynamic_component.some_other_property = some_property.item.(@name=='name')[0];<br/>

Итак постает вопрос - как сделать так чтобы data binding в dynamic_component тоже работала?
BindingUtils.bindProperty(dynamic_component, 'some_other_property', some_property.item.(@name=='name'), '0');

Результат - some_other_property меняется только 1 раз, когда вызывается метод bindProperty,
последующие изменения в some_xml_data никак не влияют. В документации и гугле я ничего не нарыл…
Поковырявшись  пару часов в том что генерирует Flex Builder выяснилось следующее
(привожу в пример код, в ходе буду объяснять):
//импорт необходимых классов<br/>
//точного их описания не дам, так как все что я нашел, это исходники классов,<br/>
//которых нет в документации<br/>
import mx.binding.Binding;<br/>
<br/>
import mx.binding.PropertyWatcher;<br/>
import mx.binding.XMLWatcher;<br/>
<br/>
//исходное свойство<br/>
<br/>
[Bindable]<br/>
private var src_prop: XML = <br/>
  <root><br/>
<br/>
    <item0><br/>
      <item1 name="some name" /><br/>
    </item0><br/>
<br/>
  </root>;<br/>
<br/>
//результирующее свойство<br/>
private var dest_prop: XML;<br/>
 <br/>
//функция которая связывает dest_prop как dest_prop = src_prop..item1.@name<br/>
private function bindProp(): void {<br/>
<br/>
  var binding:Binding;<br/>
//Создает объект для связывания.<br/>
// public function Binding(document:Object, srcFunc:Function,<br/>
//                           destFunc:Function, destString:String)<br/>
//document - это документ, который является целью всей этой работы ( не очень звучит) ).<br/>
//  (в большинстве случаев это будет this)<br/>
//srcFunc - это функция, которая возвращает значение которое <br/>
// задается результирующему свойству<br/>
//destFunc - функция, которая будет принимать значения<br/>
//  и назначать его результирующему свойству.<br/>
//destString - наименование результирующего свойства, которое предоставляется в виде строки <br/>
<br/>
  binding = new Binding(<br/>
    this,<br/>
    function(): * {<br/>
      return src_prop..item1.@name;<br/>
    },<br/>
    function(_sourceFunctionReturnValue:*):void {<br/>
      dest_prop = _sourceFunctionReturnValue;<br/>
    },<br/>
    'dest_prop'<br/>
  );<br/>
 <br/>
//PropertyWatcher - нужен если заменяется значение свойства<br/>
//public function PropertyWatcher(propertyName:String,<br/>
//                                events:Object,<br/>
//                                listeners:Array,<br/>
//                                propertyGetter:Function = null)<br/>
//propertyName - наименование свойства для просмотра.<br/>
//events - события которые указывают что свойство изменилось <br/>
//  (в данном случае это {propertyChange: true}).<br/>
//listeners - массив Binding объектов, которые слушают этот Watcher.<br/>
//propertyGetter - функция-помощник которая используется для доступа <br/>
//  непубличный переменных.<br/>
  var watcher: PropertyWatcher = new PropertyWatcher(<br/>
    'src_prop', <br/>
    {propertyChange: true},<br/>
    [binding],<br/>
    function(propertyName:String):* {return this[propertyName];}<br/>
  );<br/>
   watcher.updateParent(this);<br/>
//XMLWatcher - нужен если меняется значение какой то ветки XML'а<br/>
//addChild - добавляет watcher'a, который будет наблюдать за <br/>
//  измениями внутри свойства.<br/>
  watcher.addChild(new XMLWatcher('item1', [binding]));<br/>
<br/>
//исполняет присваивание dest_prop = src_prop..item1.@name<br/>
  binding.execute();<br/>
}


Также можно связать данные не только с XML а и с другими типами данных
используя следующие классы с Flex SDK пакета mx.binding:
ArrayElementWatcher<br/>
FunctionReturnWatcher<br/>
RepeaterComponentWatcher<br/>
RepeaterItemWatcher<br/>
StaticPropertyWatcher


Надеюсь, данная публикация поможет людям, которые столкнулись с этой проблемой.

(не)идеальные тексты

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

Переводчику, который разбирается в материале и в языке, платят не менее 10 долларов за 1800 знаков с пробелами.
То есть, существует такое понятие как специализация переводчика: если я работаю с финансовой документацией, я имею необходимую подготовку в этой области (второе образование, самообразование), я ни за что не ввяжусь в перевод книги по теоретической механике, потому что мне незнаком препредмет книги. Мне знакомы принципы перевода. Я умею работать со справочниками. При необходимости я консультируюсь по трудным местам со специалистами в нужной области.

Издательства вроде Питер, Феникс, АСТ и т.п. платят 3-4 доллара за 1800 знаков с пробелами (есть даже предложения по 1-2 доллара).
Это деньги, за которые работают студенты, домохозяйки, безработные (т.е. не фрилансеры, а те, кого выгнали с работы) и т.п. О какой-либо специализации речи здесь не идет. Эти люди — гастарбайтеры от перевода, не знающие русского языка, не знающие английского языка, уважающие программу Промт и не знающие правил перевода. Выпускаемый ими продукт имеет соответствующее качество. От того, что они много раз повторят «Я переводчик», переводчиками они не становятся.

Многие переводчики согласны и хотят работать в издательствах, но нам и нашим семьям тоже надо кушать.
Теперь сравним ставки и возможности заработка
Нормальный переводчик: 10 страниц по 10 долларов в день умножаем на 20 рабочих дней (допустим, мы соблюдаем все выходные) = 2000 долларов в месяц (это минимальный заработок без учета срочных заказов).
Гастарбайтер от перевода: 10 страниц по 4 доллара в день умножаем на 20 рабочих дней = 800 долларов. А если Джамшуту платят 1-2 доллара?

Поэтому когда вы в следующий раз столкнетесь с такой книгой, пожалуйста, помните, вы столкнулись с результатом работы Джамшута, но не переводчика.

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

ЗЫ Ессно, у каждого правила есть исключения и среди трех-четырех долларовых переводчиков встречаются нормальные. Один на пару десятков тысяч наверное.

ЗЗЫ На инвайт не претендую, просто как всегда веду свою пропагандистскую работу :-)

Шаблон проектирвоания «завод».

Пишу в гугл переводчике «завод» — выдает factory. Пишу factory — выдает завод…
В моем понимании завод — что-то чуть-чуть круче чем фабрика. Теперь о паттернах.
Можно придумать огромное множество вариантов реализании данного шаблона (http://www.php.net/manual/ru/language.oop5.patterns.php), Но суть, на то он и шаблон одна.
Ниже будет мой вариант реализации шаблона. Соль — возможность не явного создания объектов известных классов.
Однако сдеть слишком «узкий» пример, но не судите строго.
Читать дальше →

Перенос установленных пакетов с одной машины на другую

Для резервирования и переноса установленных пакетов ПО с одного компьютера на другой можно воспользоваться следующим рецептом:

  1. Резервирование


    • Устанавливаем пакеты dpkg-repack и fakeroot

      $ sudo apt-get install dpkg-repack fakeroot

    • Создаем директорию для хранения пакетов и переходим в нее

      $ mkdir ~/dpkg-repack; cd ~/dpkg-repack/

    • Собираем установленные пакеты(это займет некоторое время)

      $ fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1`

      Теперь в папке ~/dpkg-repack содержатся все установленные в системе пакеты.

  2. Перенос


    • Переносим директорию с пакетами(~/dpkg-repack) на другой компьютер
    • Заходим в перенесенную директорию и устанавливаем все пакеты

      $ sudo dpkg -i *.deb


  3. Создание репозитория


    • Для того, чтобы использовать собранные пакеты как репозиторий нужно выполнить следующие действия:
    • Перейти в директорию с пакетами (~/dpkg-repack) и выполнить индексацию:

      $ dpkg-scanpackages. /dev/null | gzip -9c > Packages.gz

      Отредактировать список репозиториев /etc/apt/sources.list, добавив в него путь к репозиторию:

      deb file:/home/mike/dpkg-repack/ ./



    PS: Стоит упомянуть, что собранные пакеты будут содержать модификации внесенные после установки.

Удаление мусора в debian-based дистрибутивах

Как известно, при удалении программы штатными средствами с помощью менеджеров управления пакетами, таких как apt-get, aptitude или synaptic, конфигурационные файлы по умолчанию не удаляются. Можно принудительно заставить удалить все файлы настроек, выбрав соответствующие команды при удалении пакетов, но это сопровождается рядом неудобств. Во-первых, надо вручную указывать все пакеты, для которых необходимо удалить файлы конфигурации. Во-вторых, так можно делать только с установленными пакетами, то есть, если программа была раньше установлена, а в последствии удалена, то для удаления ее конфигурационных файлов ее надо поставить заново. Неудобно, правда?
Но нет проблем, которые невозможно решить!
Читать дальше →

Бот для Jabber'a своими руками

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

Идея написания бота возникла просто из баловства и интереса к джабберу. Поигрался с ним пару дней и понял, что есть достаточно большой простор для практического применения:
  • Для корпоративного багтракера. О каком-либо изменении или добавлении новой задачи пользователь автоматически уведомляется через jabber
  • Автоматизация работы с этим же багтракером
  • Мониторинг состояния чего-либо (сервер, приложение ...)

Читать далее

Безопасность, подтверждение времени

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

К сожалению, задача подтверждения точного времени не может быть решена и рассматривается менее строго. Такую задачу можно сформулировать, как необходимость подтверждения доверительным центром существования документа, который был создан не позднее некоторой даты. Это означает, что если есть подтверждение в виде даты 10 февраля 2009 года для некоторого текста, то он мог быть написан и 5 января 2009 года, и 1 марта 1995 года, но не 20 марта 2010 года.
Читать дальше →

Icq бот (для тех кто ушёл на jabber)

В свете последних событий — много кто перешёл на jabber. Но терять контакты не хочется. А зачастую ещё меньше хочется возиться с транспортами (как бы они не были прекрасны — почти все траспорты в России сейчас не работают). Ниже я хочу рассказать вам о максимально быстром способе поднятия icq бота, который будет отвечать за вас автоматически — можете заставить его поведывать людям, ищущим вас ваши новые контакты… или как у меня — ссылки на мануалы по настройке jabber.

Что нам потребуется. Любой постоянно включенный компьютер, на котором есть возможность запускать php. То есть в принципе — любой web сервер)
Читать дальше →

Хитрое обрамление DIV'ов или как я боролся со скукой.

Не так давно, я долго придумывал расстановку блоков для одного маленького сайта, и для этого мне не хватало визуализации. В чем проблема спросите вы? А я банально отвечу, когда я делал блоки в графическом редакторе (firework, photo shop, и тп) мне не хватало наглядности, да с одной стороны блоки есть, даже кое как мог их подчеркнуть (тень, края и тп) для большего выделение одного от второго. И тут же меня постигла лень, крутить их в разные стороны, да так чтобы они все были ровненькие, симметричные (в плане расстановки), да и чтобы текст их тянул куда надо, ой…

После всего этого мозг-о-сотрясения полез я в любимый блокнот рубать код и смотреть на результат как говорится в режиме «Real Time» (настоящее время), много ума не понадобилось чтобы сверстать блоки подобающим образом, и опять выпал за грань реально, блоки ни как не выделялись визуально и меня это немного бесило. Я не мог лицезреть то расположение блоков которое хотел. Ах как я любил рисовать блоки в графическом редакторе, делать им закругление краев под 7PX, да подкидывать тени на 4PX под 60% под углом в 270 градусов, да еще цвета блокам постоянно менять или вообще заменять цвета картинками, и тут до меня дошла идея сделать блок который будет иметь все то что я перечислял захлебываясь собственной слюной!
Не долго раздумывая я вспоминал CSS 3 и проклинал БРАУЗЕРЫ его не поддерживающие (на сей момент почти все), но как говорили многие хорошие люди надо видеть плюсы и использовать то что есть. А есть у нас “IE6, Safari, да Opera, в прочем и многое другое (но это уже совсем другая история)”.
И так! Для начала я взял первое что было в голове, а это собственно картинка нашего будущего блока:
image
Читать дальше →

Как поймать клик на иконке в MacX dock из Qt приложения

Иногда средств Qt не хватает, что бы корректно обрабатывать нативные события в разных ОС. В этой статье я хочу рассказать, об одном из таких специфических событий, а именно клик, на иконке в маковском dockе.

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

Демосцена и трекерная музыка — подкасты от Manwe^SandS, или Что такое Сцена?

Доброго времени суток, Хабр!
Думаю, самое время пополнить уже давно пустующий блог "Демосцена" новой записью и заодно порадовать доблестных программеров, стартаперов, верстальщиков и других хабражителей.
Надеюсь, что вам понравится то, о чём расскажет эта статья, и что я смогу рассказать Хабру, хабражителям и хабразрителям о тайнах, ресурсах и хитростях Демосцены и трекерной музыки уже в статусе зарегистрированного пользователя Хабры.

Пожалуй, многие так толком и не знают, что же такое Демосцена.
Самое интересное, что даже бывалые фанаты Сцены (особенно в России) в большей своей части оказались в неведении насчёт того, как именно появился этот феномен цифровых технологий и какие звёзды в своё время блистали на небе этого рукотворного мира.
Помочь молодому поколению компьютерщиков, хакеров и электронных музыкантов решился Александр Мачуговский, на Сцене известный как Manwe из российской демогруппы SandS вместе со своими друзьями и коллегами со Сцены.

О том, как всё это происходило, о том, что происходит сейчас, о легендах старой и новой Сцены и о многом другом мы будем говорить в наших передачах. И будем слушать много интересной музыки, которую, пожалуй, больше нигде не найти. ©

Начать загрузку Сцены в мозг

Олимпиадная информатика. Часть первая: подготовка

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

В процессе подготовки мне дали несколько ценных советов. Ими я с Вами и поделюсь.

Свою статью я разобью на три части: советы по подготовке, советы по работе, отчет о том, как все прошло.
Начнем

Как домейнер и программер проект делали

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

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

Так вот. Каким же образом можно разделить сферы влияния и ответственности между автором идеи и скриптов (программером) и владельцем подходящего домена-ключевика (домейнером). Причем таким образом, что партнерство было взаимовыгодным и партнеры были заинтересованы друг в друге.

Для начала, домен. Домен естественно остается в собственности домейнера. Это как минимум естественно. Да и в случае разрыва отношений – домен остается у своего старого хозяина.

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

Идем дальше. Идея проекта, вопросы функционального развития – это все ложится на плечи программера. Скрипты – его, хостинг – его, все вопросы можно решать самостоятельно.

Домейнеру, который скорее всего знаком с SEO и продвижением сайта, придется заняться продвижением, поисковой оптимизацией, контекстной рекламой, PR-ом.

Вроде бы обязанности расписаны.

Теперь давайте подумаем, что было у одного и другого до начала совместных боевых действий – и что останется после разрыва отношений.

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

А что же домейнер. Домен остался при нем. Трафик, полученный в результате активной работы по продвижению проекта, еще некоторое время будет идти и им можно будет воспользоваться. Так же к домейнеру отходят регистрации домена в каталогах, PageRank, тИЦ, бэк-линки и все остальное, что собственно являлось заслугой самого домейнера.

Таким образом, на мой взгляд, проекты определенных масштабов вполне могут создаваться и существовать в таких условиях.

В общем-то, я прошелся по верхам и наверняка что-то упустил – поэтому продолжение мысли приветствуется.