Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
 Аватар для joker78rus
25 / 25 / 5
Регистрация: 04.10.2013
Сообщений: 46

Работающий Tor (The Onion Router), прокси на с#

15.10.2013, 12:33. Показов 9176. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, долго бороздил просторы нэта в поисках исходников||примеров||хоть какой-нибудь информации о использовании webbrowser'a через ТОР. Инфы вообще мало... так что кому пригодиться выкладываю рабочий код!!

Спасибо Delarko за помощь и содействие!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
using System.Net;
using System.Net.Sockets;
using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.Text;
 
namespace TorProgect
{
    class TorClass
    {
        private int countConnection;
        private Process _pTor;
        private const string soks = "127.0.0.1";
        private const string controlPort = "9150";
        private EventLog _log;
        private object  _proxyServer;
        private object _proxyEnable;
        public TorClass(EventLog log)
        {
            _log = log;
            StartTor();
 
        }
        public void StartTor()
        {
            try
            {
                if (_pTor == null)
                {
                    _pTor = new Process();
                    _pTor.StartInfo = new ProcessStartInfo(@"C:\Tor\TorBrowser\App\tor.exe");
                    _pTor.Start();
                    SetProxy("socks=" + soks + ":" + controlPort);
                }
            }
            catch (Exception ex)
            {
                _log.SendMessageLog("Ошибка запуска процесса Tor.exe" + ex.Message);
            }
        }
        public void StopTor()
        {
            try
            {
                if (_pTor == null) return;
                _pTor.Kill();
                _pTor = null;
                UnSetProxy();
            }
            catch (Exception ex)
            {
                _log.SendMessageLog("Ошибка остановки процесса Tor.exe" + ex.Message);
            }
        }
 
        private void SetProxy(string proxy)
        {
            try
            {
                string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
 
                RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
                _proxyServer = RegKey.GetValue("ProxyServer");
                _proxyEnable = RegKey.GetValue("ProxyEnable");
                RegKey.SetValue("ProxyServer", proxy);
                RegKey.SetValue("ProxyEnable", 1);
                RegKey.Close();
 
            }
            catch (Exception ex)
            {
                _log.SendMessageLog("Ошибка установки прокси" + proxy + "\r\n" + ex.Message);
            }
        }
 
        private void UnSetProxy()
        {
            try
            {
                string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
                RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
                RegKey.SetValue("ProxyServer", _proxyServer);
                RegKey.SetValue("ProxyEnable", _proxyEnable);
                RegKey.Close();
            }
            catch (Exception ex)
            {
                _log.SendMessageLog("Ошибка смены прокси\r\n" + ex.Message);
            }
        }
        public void RefreshTor()
        {//Конектимся к тору и обновляемм IP
            if (countConnection < 10)
            {
                IPEndPoint ip = new IPEndPoint(IPAddress.Parse(soks), 9151);
                Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                try
                {
                    server.Connect(ip);
                }
                catch (SocketException ex)
                {
                    _log.SendMessageLog("Unable to connect to server.\r\n" + ex.Message);
                    RefreshTor();
                    return;
                }
                //сигнал о 
                server.Send(Encoding.ASCII.GetBytes("AUTHENTICATE \"12345\"\n")); // ТУТ ВАШ ПАРОЛЬ, пароль задается через телнет командой: tor --hash-password 'new_tor_password'
 
                if (GetDataReceive(server).Contains("250"))
                {
                    _log.SendMessageLog("AUTHENTICATE 250 OK");
                    //сигнал о завершении смены цепочки серверов
                    server.Send(Encoding.ASCII.GetBytes("SETEVENTS SIGNAL\r\n"));
                    //if (GetDataReceive(server).Contains("650"))
                    //{
                    //    SendMessageLog("SETEVENTS SIGNAL 650 OK");
                    server.Send(Encoding.ASCII.GetBytes("SIGNAL NEWNYM\r\n"));
                    if (!GetDataReceive(server).Contains("250"))
                    {
                        _log.SendMessageLog("Unable to signal new user to server.");
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        countConnection++;
                        RefreshTor();
                    }
                    else
                    {
                        _log.SendMessageLog("SIGNAL NEWNYM 250 OK");
                        countConnection = 0;
                    }
                    // }
                }
                else
                {
                    _log.SendMessageLog("Unable to authenticate to server.");
                    server.Shutdown(SocketShutdown.Both);
                    server.Close();
                    RefreshTor();
                }
                server.Shutdown(SocketShutdown.Both);
                server.Close();
            }
        }
        private string GetDataReceive(Socket server)
        {
            byte[] data = new byte[1024];
            int receivedDataLength = server.Receive(data);
            string stringData = Encoding.ASCII.GetString(data, 0, receivedDataLength);
            return stringData;
        }
    }
}
Добавлено через 5 минут
Для авторизации по паролю там же в torrc нужно сделать вот такие изменения:

## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
HashedControlPassword 16:B55A3F6B52F34E55609F6676DDBCEF4FD2BA7 E318D9AF45AF878DB8A30
#CookieAuthentication 1
## Включение CookieAuthentication заставит tor создавать служебный файл,
## а подключаться на управляющий порт смогут только процессы, знающие содержимое этого файла.
Хэш-сумма пароля получается следующим образом: необходимо выполнить команду tor --hash-password 'new_tor_password' – в ответ получим сгенерированный хэш-код пароля

ibm: $ tor --hash-password 'new_tor_password'
May 04 19:29:14.173 [notice] Tor v0.2.1.29 (r318f470bc5f2ad43). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
16:B55A3F6B52F34E55609F6676DDBCEF4FD2BA7 E318D9AF45AF878DB8A30
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2013, 12:33
Ответы с готовыми решениями:

Tor не работает с .onion сайтами
Скачал tor с официального сайта, прописал bridge с оффициального сайта. Пытаюсь подключиться к обычным сайтам: все работает хорошо. Пытаюсь...

Svchost.exe, onion.exe, openvg.exe torrc и куча dll и cl, а также папка tor в Roaming

Получить прокси через TOR client (console C#)
Приветствую! Господа, помоги разобраться с вопросом о tor proxy. Нашел на просторах код. Но он не работает. При попытке подключения...

1
 Аватар для joker78rus
25 / 25 / 5
Регистрация: 04.10.2013
Сообщений: 46
26.12.2013, 17:08  [ТС]
Для авторизации ТОРа попробуйте создать бантик! (*.bat)

ECHO AvoidDiskWrites 1 > %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO DataDirectory . >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO GeoIPFile . >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO Log notice stdout >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO SocksListenAddress 127.0.0.1 >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO SocksPort 9150 >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO ControlPort 9151 >> %USERPROFILE%\AppData\Roaming\tor\torrc
ECHO HashedControlPassword 16:93D14CE11B2973A8603B91A4110DF18B290FD 7F01B72B34CCCD575759C >> %USERPROFILE%\AppData\Roaming\tor\torrc
@pause

start tor.exe --hash-password 12345
@pause
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2013, 17:08
Помогаю со студенческими работами здесь

Настройка tp-link wireless n router wr841n на раздачу прокси
Здравствуйте вот у меня есть роутер tp-link wireless n router wr841n как настроить его что он раздавал прокси сервер вроде, как написанно...

Клиент работающий через прокси winsock
Доброго времени суток! Вопрос в следующем нужно ли мне как-то настривать клиент если я работаю через прокси? Подробнее, в университете...

Tor vidalia/browser и его настройка в цензурируемой среде (гос учреждение; прокси; татарстан)
Здравствуйте! Заранее извиняюсь если написал не туда и за описание того, чего можно было бы избежать (объёмность поста). Не знаю как...

Как подключиться к сети Tor без использования Tor-браузера?
Здравствуйте. Подскажите пожалуйста, как реализовать на Delphi подключение к сети TOR ? Т.е напрямую, без использования самого Tor -...

Что вы скажете о таких вещах,как Tor? И почему,кстати,гугл находит сайты сети TOR?
Что вы скажете о таких вещах,как Tor? И почему,кстати,гугл находит сайты сети TOR? Я криптографию,безопасность и т.п вообще не знаю,но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru