24 сентября 2011 г.

Использование tracert для определения времени передачи данных.

Использование tracert для определения времени передачи данных.
В статье про построение и использование цепочек SOCKS-proxy серверов было сказано о способах проверки прокси-серверов на работоспособность. Однако указанные способы, как правило, не дают данных о времени, затрачиваемом на передачу пакетов к серверу. Однако часто это имеет значение, и, если есть возможность выбирать из нескольких прокси серверов, то лучше выбирать более "быстрые" сервера.
Получить данные о времени, затрачиваемом на передачу пакетов к серверу, а также данные о том, через какие сетевые узлы проходят пакеты перед тем, как попасть на требуемый сервер, можно с помощью стандартной утилиты tracert в Windows (подробнее на http://ru.wikipedia.org/wiki/Traceroute). Она запускается из командной строки (для попадания в командную строку необходимо открыть "Пуск", затем "Выполнить", в строке ввести "cmd.exe"). В командной строке ввести tracert a.b.c.d, где a.b.c.d - IP-адрес сервера, или tracert abcd.net, где abcd.net - адрес Интернет-ресурса. Начнётся процесс трассировки. На экран (Рисунок 1) последовательно будут выводиться шаги трассировки (номер шага - в первом столбце). Узлы, через которые проходят тестовые пакеты будут отображаться в пятом столбце. Время в миллисекундах (ms), затрачиваемое на прохождение пакетов, отображаются в последней строке.

Рисунок 1.
Трассировка маршрутов к 80.30.211.114 и 220.166.64.218.

19 сентября 2011 г.

Модификация антивируса ESET NOD 32: обновление без запроса лицензионных ключей.

Модификация антивируса ESET NOD 32: обновление без запроса лицензионных ключей.
На одном из Интернет-ресурсов недавно был представлен способ модификации известного антивируса ESET NOD 32 (его 3 и 4 серий). Цель модификации - получение версии антивируса, не требующего для полноценного функционирования (для обновления вирусных сигнатур) использования лицензионного ключа. Для совершения данной модификации требуется скачать архив (ссылка на скачивание архива).В архиве помимо необходимых для модификации файлов имеется инструкция следующего содержания:
  1. Скачать архив NOD_32_Modification.rar и распаковать.
  2. Установить ESET NOD32 или ESS (подходит 3.0 или 4.0 версии), если он ещё не установлен.
  3. Перезагрузить компьютер и запустить систему в безопасном режиме (для этого нажимать клавишу F8 до начала загрузки ОС).
  4. Открыть папку NOD32ESS_x86 и запустить NOD32ESS_x86.bat для 32-разрядной ОС (XP, Vista, 7) или открыть папку NOD32ESS_x64 и запустить NOD32ESS_x64.bat для 64-разрядной ОС (XP, Vista, 7).
  5. Перезагрузить компьютер и запустить в обычном режиме. Теперь ESET NOD 32 обновляется без ввода данных лицензионного ключа.
  6. Для удаления NOD32 или ESS необходимо вначале запустить NOD32ESS_x86uni.bat или NOD32ESS_x64uni.bat в зависимости от разрядности ОС.
В архиве есть также две папки: x86 и x64, то есть для модификации NOD 32 в 32-разрядной версии Windows и 64-разрядной версии Windows соответственно. В папке x86 находятся папки NOD32ESS_x86 и NOD32ESS_x86uni, в папке x64 находятся папки NOD32ESS_x64 и NOD32ESS_x64uni. В папке NOD32ESS_x86 находятся файл реестра Windows Fix.reg и пакетный файл Windows NOD32ESS_x64. В папке NOD32ESS_x86uni - файл NOD32ESS_x64uni. Также в двух перечисленных ранее папках присутствует исполняемый файл утилиты SetACL. Аналогичное содержимое имеют папки в x64, с тем лишь отличием, что вместо 86 в названиях присутствует 64.
При следовании инструкции, представленной выше пользователь, действительно, получает "вечный" NOD 32, то есть версию антивируса, не требующую лицензионного ключа для своей полноценной работы.

Ниже в подробностях будет рассмотрен процесс такой модификации. Поскольку принципы осуществления модификации для 32-разрядной и 64 разрядной версии Windows идентичны, будет произведено рассмотрение процесса модификации для 32-разрядной версии ОС.
Первым делом при модификации пользователю предлагается выполнить сценарий пакетного файла NOD32ESS_x86.bat. Сценарий, находящийся в этом файле, следующий:
echo off
regedit /s Fix.reg
SetACL.exe -on "hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info"  -ot reg -actn ace -ace "n:System;p:set_val;m:deny"
exit

  • echo off отключает отображение информации, которая выводилась бы на экран  в командной строке в процессе выполнения сценария.
  • regedit /s Fix.reg вносит в системный реестр Windows данные из файла реестра Fix.reg, при этом используется ключ /s для "тихого" (s от английского silent - тихий) помещения данных, то есть без вывода окна с вопросом о подтверждении операции.
  • SetACL.exe -on "hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info"  -ot reg -actn ace -ace "n:System;p:set_val;m:deny".  Эта строка открывает полный доступ ( все права, в том числе редактирование, удаление и т.п.) к разделу системного реестра Windows hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info, снимая тем самым ограничение на запись и перезапись файлов (ключей) реестра в этом разделе. Работает это следующим образом. Вызывается утилита SetACL (подробное описание на сайте разработчика). -on "hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" задаёт объект (в данном случае - раздел), над которым будут производится операции. Здесь -on - ключ, а строка, заключённая в кавычки - путь к разделу. -ot reg - задаёт тип объекта, над которым будут производится операции. Здесь -ot - ключ, а reg - тип объекта (в данном случае - реестр). -actn ace "n:System;p:set_val;m:deny" определяет тип совершаемого действия (actn от английского action - действие) и параметры. Здесь -actn - ключ, а ace -  тип действия (в данном случае - контроль доступа к записи данных (ace от английского access control entries (ACEs) - контроль доступа к записям)). В кавычки заключены параметры доступа:  n:System  - (n от английского name - имя) кому разрешён доступ (в данном случае - системе), p:set_val - (p от английского permission - разрешение) параметр разрешения (в данном случае - установка некоторого значения (set_val от английского Set Value - установить значение)), m:deny - (m от английского mode - режим) установка режима доступа (в данном случае - отказ в установке разрешений, то есть доступ без разрешений (deny от английского deny - отказ)).
  • exit. Эта строка завершает выполнение сценария.

Таким образом, сценарий, описанный выше, лишь открывает файлу Fix.reg полную свободу действий в разделе системного реестра hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info.  То, что непосредственно осуществляет цель модификации находится в самом файле Fix.reg.
Ниже представлено содержание этого файла.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info]
"PackageTag"=dword:00000000
"ScannerVersionId"=dword:00000000
"ScannerVersion"="latest"
[HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile]
"SelectedServer"="AUTOSELECT"
[HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Settings]
"FailSafeServer"="http://update.eset.com/eset_eval/"
"DefaultServer0"="http://u21.eset.com/eset_eval/"
"DefaultServerWeight0"=dword:00000014
"DefaultServer1"="http://u24.eset.com/eset_eval/"
"DefaultServerWeight1"=dword:00000014
"DefaultServer2"="http://89.202.157.135/eset_eval/"
"DefaultServerWeight2"=dword:00000014
"DefaultServer3"="http://89.202.157.136/eset_eval/"
"DefaultServerWeight3"=dword:00000014
"DefaultServer4"="http://89.202.157.137/eset_eval/"
"DefaultServerWeight4"=dword:00000014
"DefaultServer5"="http://89.202.157.139/eset_eval/"
"DefaultServerWeight5"=dword:00000014
"DefaultServer6"="http://u30.eset.com/eset_eval/"
"DefaultServerWeight6"=dword:00000014
"DefaultServer7"="http://u31.eset.com/eset_eval/"
"DefaultServerWeight7"=dword:00000014
"DefaultServer8"="http://u32.eset.com/eset_eval/"
"DefaultServerWeight8"=dword:00000014
"DefaultServer9"="http://u33.eset.com/eset_eval/"
"DefaultServerWeight9"=dword:00000014
"DefaultServer10"="http://u34.eset.com/eset_eval/"
"DefaultServerWeight10"=dword:00000014
"DefaultServer11"="http://u35.eset.com/eset_eval/"
"DefaultServerWeight11"=dword:00000014
"DefaultServer12"="http://u36.eset.com/eset_eval/"
"DefaultServerWeight12"=dword:00000014
"DefaultServer13"="http://u37.eset.com/eset_eval/"
"DefaultServerWeight13"=dword:00000014
"DefaultServer14"="http://u38.eset.com/eset_eval/"
"DefaultServerWeight14"=dword:00000014
"DefaultServer15"="http://u39.eset.com/eset_eval/"
"DefaultServerWeight15"=dword:00000014
"DefaultServer16"="http://u40.eset.com/eset_eval/"
"DefaultServerWeight16"=dword:00000014
"DefaultServer17"="http://u41.eset.com/eset_eval/"
"DefaultServerWeight17"=dword:00000014
"DefaultServer18"="http://u42.eset.com/eset_eval/"
"DefaultServerWeight18"=dword:00000014
"DefaultServer19"="http://u43.eset.com/eset_eval/"
"DefaultServerWeight19"=dword:00000014
"DefaultServer20"="http://u44.eset.com/eset_eval/"
"DefaultServerWeight20"=dword:00000014
"DefaultServer21"="http://u45.eset.com/eset_eval/"
"DefaultServerWeight21"=dword:00000014
"DefaultServer22"="http://u46.eset.com/eset_eval/"
"DefaultServerWeight22"=dword:00000014
"DefaultServer23"="http://u47.eset.com/eset_eval/"
"DefaultServerWeight23"=dword:00000014
"DefaultServer24"="http://u48.eset.com/eset_eval/"
"DefaultServerWeight24"=dword:00000014
"DefaultServer25"="http://u49.eset.com/eset_eval/"
"DefaultServerWeight25"=dword:00000014
"DefaultServer26"="http://u50.eset.com/eset_eval/"
"DefaultServerWeight26"=dword:00000014
"DefaultServer27"="http://u51.eset.com/eset_eval/"
"DefaultServerWeight27"=dword:00000014
"DefaultServer28"="http://u52.eset.com/eset_eval/"
"DefaultServerWeight28"=dword:00000014
"DefaultServer29"="http://u53.eset.com/eset_eval/"
"DefaultServerWeight29"=dword:00000014
"DefaultServer30"="http://u54.eset.com/eset_eval/"
"DefaultServerWeight30"=dword:00000014
"DefaultServer31"="http://u55.eset.com/eset_eval/"
"DefaultServerWeight31"=dword:00000014
"DefaultServer32"="http://u56.eset.com/eset_eval/"
"DefaultServerWeight32"=dword:00000014
"DefaultServer33"="http://u57.eset.com/eset_eval/"
"DefaultServerWeight33"=dword:00000014
"DefaultServer34"="http://u58.eset.com/eset_eval/"
"DefaultServerWeight34"=dword:00000014
"DefaultServer35"="http://u59.eset.com/eset_eval/"
"DefaultServerWeight35"=dword:00000014
"DefaultServer36"="http://um10.eset.com/eset_eval/"
"DefaultServerWeight36"=dword:000000c8
"DefaultServerCount"=dword:00000025

Первым делом изменяется необходимая информация в разделе HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info (Рисунок 1).  Обнуляются значения параметров PackageTag и ScannerVersionId. То есть тег упаковки текущей версии и версия вирусных сигнатур принимают нулевое значение. При этом параметр ScannerVersion принимает значение "latest". Это необходимо для того, чтобы при попытке совершить обновление вирусных сигнатур серверу передавалась информация о том, что нужно получить последнюю версию этих сигнатур.

Рисунок 1.
В разделе HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info подчёркнуты параметры, значения которых изменяются.

Следующим шагом в раздел  HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile добавляется параметр SelectedServer со значением "latest" (Рисунок 2). Это необходимо для того, чтобы сервер, с которого будут загружаться обновления вирусных сигнатур, выбирался автоматически.

Рисунок 2.
Раздел HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile.

Затем в разделе HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Settings изменяются адреса и типы серверов, с которых производится обновление вирусных сигнатур, увеличивается их количество (Рисунок 3). Здесь стоит отметить, что изначально (до описываемой модификации) адреса серверов выглядят следующим образом: http://umN.eset.com/eset_upd,  где N - некоторое (как правило, двузначное) число, или http://a.b.c.d/eset_upd , где a.b.c.d - IP-адрес сервера. Модификация меняет некоторые названия и добавляет свои таким образом, что eset_upd заменяется на eset_eval. При загрузке обновлений вирусных сигнатур из директории eset_eval сервера с обновлениями не проверяются данные лицензионного ключа.

Рисунок 3.
Раздел  HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Settings.

После модификации антивирус ESET NOD 32 обновляет свои вирусные сигнатуры без запроса данных лицензионного ключа.

Содержимое файла NOD32ESS_x86uni.bat, необходимого для полноценного удаления антивируса ESET NOD 32 выглядит следующим образом:
echo off
SetACL.exe -on "hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info"  -ot reg -actn clear -clr dacl,sacl
exit
Строки echo off и exit были рассмотрены ранее. Строка SetACL.exe -on "hklm\SOFTWARE\ESET\ESET Security\CurrentVersion\Info"  -ot reg -actn clear -clr dacl,sacl выполняет действия по принципу, уже описанному ранее. В данном случае отличие в параметрах ключа  -actn: здесь он имеет значение clear (от английского clear - чистить) и в наличии ключа -clr с параметрами dacl,sacl. Этот ключ очищает списки управления доступом: список избирательного управления доступом (dacl (описание DACL на сайте wikipedia.org), от английского Discretionary Access Control List - список избирательного управления доступом) и список управления доступом к объектам Microsoft Windows (sacl (описание SACL на сайте wikipedia.org), от английского System Access Control List - системный список управления доступом).

Таким образом, данная модификация открывает права доступа к защищённым разделам системного реестра Windows, отведённым для NOD 32 и изменяет в них данные так, что для обновления вирусных сигнатур не требуются данные лицензионного ключа.

13 сентября 2011 г.

Свобода: миф или реальность?


А.И.Бахматов
Свобода: миф или реальность?
    Свобода – одно из тех слов, которые для большинства людей являются наиболее значимыми. Даже звучит оно особенно, причём во всех языках, как-то всеобъемлюще и красиво. Но это слово. Понятие и вообще смысл, вкладываемый в некоторое слово и само слово – это не одно и то же.
    Так что же такое свобода? Трактовок может быть много. Вообще понятие свободы у каждого человека своё. Всё зависит от того, как человек понимает и видит свободу со своих позиций. Для среднестатистического гражданина какого-либо развитого в той или иной степени государства свобода – это возможность самому планировать своё свободное время, самому выбирать товары и продукцию для личных нужд, самому строить свой круг общения и т.д. Для человека, находящегося в пенитенциарном учреждении, свобода – это вообще весь мир за пределами колючей проволоки. Для революционера свобода – это то, ради чего он живёт, то, что он должен нести тем, кто несвободен по каким-либо причинам (как правило, из-за тоталитарного или абсолютистского режима). Обычный человек, живущий в современном мире, видит себя свободным, он работает (учится), что-то делает, чем-то увлекается. В своих мыслях он свободен. Но свободен ли он на самом деле?
   Свобода какого-либо элемента – независимость его от других элементов, отсутствие его привязки к какой-либо системе. Как следствие, на такой элемент не распространяются какие-либо влияния. Однако весь мир – это огромная динамическая система, подчиняющаяся общим законам физики, химии и других наук. И эта система может быть рассмотрена на разных уровнях организации. Люди в мире, как и другие живые существа (а также представители неживой природы) – элементы этой системы. А значит, они не могут по определению системы быть свободными. Вся ценность системы, а также её кардинальное отличие от совокупности, в том, что элементы в ней зависят друг от друга. Какое либо изменение одного элемента всегда влечёт изменения других элементов. Человек – элемент общества, природы, Земли. И есть ряд положений и примеров, которые могут служить подтверждением мнимого характера свободы человека.  
   Выбор. Это понятие – одно из самых ярко демонстрирующих отсутствие свободы у человека. Многие люди видят свободу, как возможность совершать выбор так, как они считают нужным. Но совершают ли они свой выбор исключительно сами, или под влиянием множества факторов, которые, в результате и приводят именно к определённому выбору? На деле выбор человека, один из основных критериев его свободы, - самый сильный пример отсутствия этой самой свободы. Выбор человека никогда не бывает необоснованным. Но на выбор человека, как правило, влияет что угодно, кроме его простого желания сделать этот выбор. В конце этого процесса человек лишь выполняет действия, направленные на реализацию этого выбора. Однако даже если человек сам обосновал все причины совершить некоторый выбор, сам взвесил все аргументы и сам пришёл к нужному выводу, необходимость совершения данного выбора всегда вызвана внешними факторами, влиять на которые человек не в силах. Ниже будут приведены примеры.

  •  Человек решил приобрести какую-либо деталь одежды, например, зимнюю куртку. Даже если он это сделал, вероятнее всего, не из-за следования модным тенденциям, а из-за наступления зимы (хотя это тоже является внешним влиянием, не зависящим от человека), то будет приобретена куртка, так или иначе, соответствующая или моде, или вкусам этого человека, которые, в свою очередь, тоже формируются под влиянием внешних факторов.   
  •  Любовь некоторого молодого человека к девушке, или наоборот. Это считается большинством людей верхом проявления личной свободы. Однако на самом деле всё противоположно, и это есть пример наибольшей зависимости человека от физических, биохимических, психологических и других факторов. Различные группы учёных, представляющие авторитетные научные центры, доказали, что любовь – сложная совокупность биохимических и психологических процессов. Во-первых, у человека ещё в детстве формируется внешний облик людей, которые в будущем ему будут привлекательны. Во-вторых, при общении с другим человеком, в человеке происходят разные процессы. Если случилось уникальное сочетание привлекательности внешнего облика, а также частотного диапазона голоса и некоторых других характеристик, то в человеке запускаются сложные биохимические процессы, происходит выброс гормонов. Как следствие, возникает чувство влюблённости. При этом оно имеет свойство сохраняться. Это происходит потому, что мозг запоминает полученные характеристики объекта. Они сохраняются в подсознании.    

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

  •  Гипотетический пример. Некоторый человек поселился на одном из необитаемых островов Тихого океана (в экваториальной зоне), обустроился там и живёт натуральным хозяйством, ведя отшельнический образ жизни. Он не имеет электронных приборов, его существование не представляет интереса для кого-либо. Пусть также в рамках данного примера будет исключена возможность появления у данного человека психических расстройств под действием очень длительного пребывания в одиночестве. На первый взгляд есть все основания считать данного человека абсолютно свободным. Однако при более тщательном рассмотрении ситуации можно прийти к выводу, что на существовании данного человека сказывается влияние деятельности других людей. Действительно, под влиянием деятельности человечества меняется климат. Его изменение может внести изменение в организацию хозяйства человеком, живущим на острове. Также, несмотря на очень невысокую вероятность, рядом с этим островом может случиться разлив нефти. Может также случится стихийное бедствие, уже без участия человечества.  
  •  Независимость государства. Ещё один яркий пример. Любое государство считается свободным, пока оно независимо. Однако это лишь формальное определение. На деле же государство зависит от множества факторов: экономического взаимодействия с другими государствами, от членства в международных организациях, от отношения с другими государствами. И всё это делает государство (по крайней мере, его нормальное существование) зависимым от приведённых выше факторов. Если государство потеряет какого-либо экономического партнёра или к нему будут применены санкции согласно постановлению ООН, то положение этого государства сильно ухудшится, будут потеряны источники дохода.  

   Вообще примеры зависимости различных элементов можно наблюдать на разных уровнях организации: от атомно-молекулярного (взаимодействие атомов, молекул и их составляющих: элементарных частиц) до вселенского (взаимодействие планет, звёзд и даже галактик между собой). Человек и его зависимость от различных обстоятельств – пример на уровне общественно-социальной организации.
 Свобода есть лишь в понимании и представлении людей. Человеку намного легче думать, что он свободен, чем осознать относительный характер этой свободы (а точнее – её мнимый характер). Для многих людей очень трудно и даже болезненно осознать, что они – элементы подсистем, составляющих общую систему – мир. Даже максимально талантливые, способные и трудолюбивые люди могут в лучшем случае лишь что-то кардинально менять в этой системе, однако выйти из неё они не могут.
   Часто бывает, что действие одного человека или группы людей влечёт изменение в жизнях миллионов людей. И в этом тоже заключается несвобода этих миллионов людей. Самым ярким примером этого является решение ректора Венской художественной академии не принимать Адольфа Гитлера в академию. Тогда ректор посоветовал ему заняться архитектурой или ещё чем-нибудь другим. И Гитлер занялся политикой. А потом, уже спустя 32 года, началась Вторая Мировая война…  
   Вывод. Свобода, к сожалению, это всё-таки миф. Красивый миф, который есть в мыслях каждого человека, потому как не всегда готовы принять правду: свободы нет. Есть лишь слово свобода и её относительное понятие. Поэтому в данном случае применима весьма известная фраза: «Только утратив всё до конца, мы обретаем свободу». Но утратить всё можно только со смертью…
P.S.
Всё представленное выше является исключительно личным взглядом на жизнь и не претендует на абсолютною достоверность.

12 сентября 2011 г.

Построение и использование цепочек SOCKS-proxy.

Построение и использование цепочек SOCKS-proxy.
Иногда возникает необходимость анонимного использование сети Интернет. Хотя понятие анонимности всегда относительно в силу многих причин, некоторую её степень всё же можно обеспечить. Вопросы связанные с анонимностью в Интернете возникают в поисковых системах с завидной регулярностью. И если анонимный просмотр веб-страниц (то есть работа с HTTP/HTTPS) не является сложной задачей для опытного пользователя, то полностью анонимное использование возможностей Интернета является чуть более сложной задачей.
Действительно, для анонимного веб-сёрфинга существуют сайты-анонимайзеры и специальные программы по подмене IP-адреса (Mask My Ip (Рисунок 1), HideIP и другие).

Рисунок 1.
На изображении - окно программы Mask My IP. Настоящий IP (Real IP) заменяется липовым (Fake IP). Любой Интернет-ресурс по определению IP-адреса обращающегося к нему компьютера выдаст, что пользователь находится в Судане. К тому же, комизм ситуации в том, что это может быть и Южный Судан, ставший суверенным государством с 9 июля 2011 года, то есть позже выпуска этой версии программы.

Такие программы и веб-ресурсы со сходным функционалом обеспечивают анонимный просмотр веб-страниц, облегчают работу с файлобменными ресурсами, лимитирующими количество скачиваний в некоторый промежуток времени или ещё как-либо, помогают обойти несложную защиту на некоторых ресурсах, например, в случае, если реальный IP-адрес был заблокирован к использованию на них.
Во всех случаях, описанных выше, используется HTTP/HTTPS соединение. Однако иногда возникают более общие случаи - когда необходим не только анонимный веб-сёрфинг, но и анонимное использование программ, использующих Интернет-соединение. При этом в большинстве случаев используется протокол передачи данных SOCKS (SOCKS 4 и SOCKS 5). Для анонимного соединения в рамках работы с такой программой может существовать множество причин: бан реального IP-адреса, защита от потенциальных угроз и другие виды деятельности, требующие анонимности. Далее речь пойдёт об одном из способов организации SOCKS-анонимности: построении цепочек SOCKS-proxy.
Схема построения цепочки SOCKS-прокси в общем виде:
  1. Определение числа прокси-серверов в цепочке (обычно необходимо 3-5 сервера).
  2. Поиск оптимально работающих SOCKS прокси-серверов.
  3. Проверка выбранных SOCKS прокси-серверов на работоспособность.
  4. Соединение с полученной цепочкой.
  5. Использование цепочки программами.
Для построения и использования цепочки SOCKS-прокси нужно необходимое программное обеспечение. Для выстраивания непосредственно самой цепочки будет рассмотрена программа SocksChain (в данном случае - версия 3.0, хотя на текущий момент существуют и более поздние версии). Для перехвата системных вызовов программ и направления их сетевых запросов по цепочке прокси будет рассмотрена программа  SocksCap (версия 2.40).


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


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


Третий шаг.
В полученном списке прокси-серверов необходимо выделить работающие и не работающие. Это можно сделать как минимум двумя способами. Первый: использовать какой-либо on-line сервис по сканированию списков прокси-серверов. Вот пример достаточно функционального и удобного сервиса (на момент выхода статьи действует): http://cp1251.darkoff.ru/proxychecker/. Второй: использовать специальное программное обеспечение. В частности, в программе SocksChain версии 3.0 имеется Proxy Manager - модуль по тестированию прокси серверов (Рисунок 2).

Рисунок 2.
Тестирование списка SOCKS-прокси в программе SoksChain. Песочные часы слева от адреса сервера означают, что сервер ещё тестируется, если они сменяются белым крестиком в красном кружке, то сервер не работает, если же вместо песочных часов появляется лампочка, то сервер можно использовать - он работает.

В программу SoksChain 3.0 можно также добавлять адреса прокси-серверов вручную (Рисунок 3).

 Рисунок 3.
Для добавления в список прокси-сервера вручную необходимо нажать кнопку "Add" в окне "Proxy manager". Появится окно "Proxy settings". В нём нужно внести необходимую информацию: IP-адрес сервера или его имя,  порт, поставить галочку напротив названий тех протоколов, которые поддерживает сервер. Затем нажать кнопку "OK". Сервер внесён в список.

Четвёртый шаг.
Соединение работающих серверов в цепочку (Рисунок 4). Для этого в программе SoksChain 3.0 в меню "Service" выбрать пункт "New" или использовать комбинацию клавиш <Ctrl>+<N>. Появится окно "Add listener". В поле "Name" нужно ввести название новой цепочки (по умолчанию Chain).  Галочку слева от надписи "Auto-creating chain" нужно снять, если планируется построение цепочки вручную. Далее, из списка серверов справа выбрать работающие (те, которые слева от себя содержат "лампочку"), при этом кнопка "<-" станет активной. При необходимости можно удалить сервер из списка (кнопка "Delete") или править его настройки (кнопка "Edit"). Когда сервера добавлены в список слева, нажать кнопку "OK". Цепочка построена и сохранена, теперь она появится в основном окне программы в левом списке, там же, где находится тестовая цепочка "Test chain".

 Рисунок 4.
Добавление серверов к цепочке.

Пятый шаг.
Использование построенной цепочки SOCKS-прокси какой-либо программой. Для того чтобы пустить трафик от какой либо программы по выстроенной цепочке прокси нужно использовать программу SocksCap. Сначала необходимо в меню "File" выбрать пункт "Settings". Откроется окно "SocksCap Settings" (Рисунок 5). В поле ввода "SOCKS Server" произвести ввод адреса 127.0.0.1 - это адрес localhost, то есть самого компьютера. В поле ввода "Port" ввести порт, выбранный ранее в программе SocksChain 3.0 для соединения с цепочкой прокси. Затем, если всё введено верно, нажать кнопку "OK". Суть в том, что SocksCap будет направлять все сетевые вызовы программы в выбранный порт на localhost, то есть на локальной машине (на самом компьютере), откуда они уже через этот порт пойдут с помощью программы SocksChain 3.0 на цепочку прокси и далее в Интернет.

 Рисунок 5.
Предварительная настройка SocksCap.

Следующим шагом будет запуск программы, сетевые вызовы которой нужно пустить через цепочку прокси, в SocksCap (Рисунок 6). Для этого нужно нажать кнопку "New". Появится окно "New application Profile". В нём нажать кнопку "Browse" и выбрать исполняемый файл нужной программы.Имя профиля по умолчанию - название исполняемого файла выбранной программы. Имя профиля можно изменить при необходимости. Далее нажать кнопку "OK".

 Рисунок 6.
Создание нового профиля программы.

Выбранная программа после этого появится в основном окне SocksCap (Рисунок 7). При её выделении активируются кнопки "Delete", "Modify" и "Run". Кнопка "Delete" позволяет удалить профиль с текущей программой, кнопка "Modify" - изменить настройки (имя профиля и путь к исполняемому файлу программы), кнопка "Run" произведёт запуск программы и теперь все её сетевые вызовы пойдут через выстроенную. цепочку SOKS-proxy.

Рисунок 7.
Выбранная программа в основном окне SocksCap, её можно запускать нажатием кнопки "Run".

Теперь, если все инструкции были выполнены правильно и SOCKS прокси-сервера работают без сбоев, анонимность обеспечена.
Стоит отметить, что есть и другие способы запуска программ с последующей анонимностью их сетевых вызовов: другое программное обеспечение и другие  методы. В качестве примера можно привести программу WideCap - в некотором роде более расширенную версию программы SocksCap, которая, в отличие от SocksCap, является shareware-программой и выполняет свои задачи полноценно только после платной регистрации.