ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

кто работал с Socks4/5?
  #1  
Старый 24.06.2008, 10:57
Аватар для sn0w
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию кто работал с Socks4/5?

всем привет! есть кто работал с носками? нужно написать прогу которая бы использовала сокс-сервера, а опыта по сабжу нет , язык - c/c++
__________________


snow white world wide

Последний раз редактировалось sn0w; 24.06.2008 в 11:11..
 
Ответить с цитированием

  #2  
Старый 24.06.2008, 12:06
Аватар для spider-intruder
spider-intruder
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме:
3886281

Репутация: 929


Отправить сообщение для spider-intruder с помощью ICQ
По умолчанию

Тебе надо тунель через нескольок носков или работа с 1 ?

http://www.cyberguru.ru/cpp-sources/network/csocksifiedsocket-ili-kak-ustanovit-konnekt-tcherez-socks4/5-proksi.html

Может поможет?

http://forum.sources.ru/index.php?showtopic=167593

Там линки на класс

Последний раз редактировалось spider-intruder; 24.06.2008 в 12:11..
 
Ответить с цитированием

  #3  
Старый 24.06.2008, 13:16
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

http://ru.wikipedia.org/wiki/SOCKS - доки, тут все придельно просто

Вечером когда прийду домой скину функции для socks 4/5
 
Ответить с цитированием

  #4  
Старый 24.06.2008, 14:37
Аватар для sn0w
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

Цитата:
Сообщение от nc.STRIEM  
http://ru.wikipedia.org/wiki/SOCKS - доки, тут все придельно просто

Вечером когда прийду домой скину функции для socks 4/5
только не забудь
__________________


snow white world wide
 
Ответить с цитированием

  #5  
Старый 24.06.2008, 18:17
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

вот, когдато писал

socks4
Код:
SOCKET socks4(char *socks, int sockport, char *server, int srvport)
{
	struct hostent *Ip = gethostbyname(socks);
	if(Ip == NULL) 
		return 0;

	sockaddr_in sa;
	sa.sin_family = AF_INET;
	sa.sin_port = htons(sockport);
	sa.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)Ip->h_addr)));

	char pack[12];
	pack[0] = 0x04;
	pack[1] = 0x01;
	pack[2] = srvport/256;
	pack[3] = srvport%256;
	
	Ip = gethostbyname(server);
	if(Ip == NULL) 
		return 0;
	char ip[16];
	strcpy(ip, inet_ntoa(*((struct in_addr *)Ip->h_addr)));
	char *p = ip;
	int i, j = strlen(ip), k=4;
	for(i = 0; i<j; i++)
		if(ip[i] == '.')
		{
			ip[i] = 0;
			pack[k] = atoi(p);
			k++;
			p = ip+i+1;
		}
	pack[k] = atoi(p);

	pack[8] = rand()%255;
	pack[9] = rand()%255;
	pack[10] = rand()%255;
	pack[11] = 0x00;

	SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(s == SOCKET_ERROR)
		return SOCKET_ERROR;

	if(connect(s, (SOCKADDR *)&sa, sizeof(sa)) == SOCKET_ERROR)
		return SOCKET_ERROR;

	if(send(s, pack, 12, 0) == SOCKET_ERROR)
		return SOCKET_ERROR;
	
	i = recv(s, pack, 4, 0);
	if(i == 0 || i == SOCKET_ERROR)
		return SOCKET_ERROR;
	if(pack[1] == 0x5a)
		return s;
	return 0;
}

socks5
Код:
SOCKET socks5(char *socks, int sockport, char *server, int srvport)
{
	struct hostent *Ip = gethostbyname(socks);
	if(Ip == NULL) 
		return 0;
	
	sockaddr_in sa;
	sa.sin_family = AF_INET;
	sa.sin_port = htons(sockport);
	sa.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)Ip->h_addr)));
	
	char pack[12];
	SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(s == SOCKET_ERROR)
		return SOCKET_ERROR;
	
	if(connect(s, (SOCKADDR *)&sa, sizeof(sa)) == SOCKET_ERROR)
		return SOCKET_ERROR;
	
	if(send(s, pack, 3, 0) == SOCKET_ERROR)
		return SOCKET_ERROR;
	
	int i = recv(s, pack, 2, 0);
	if(i == 0 || i == SOCKET_ERROR)
		return SOCKET_ERROR;
	if(pack[0] != 0x05 || pack[1] == 0xFF)
			return 0;

	pack[0] = 0x05;
	pack[1] = 0x01;
	pack[2] = 0x00;
	pack[3] = 0x01;
	
	Ip = gethostbyname(server);
	if(Ip == NULL) 
		return 0;
	char ip[16];
	strcpy(ip, inet_ntoa(*((struct in_addr *)Ip->h_addr)));
	int  j = strlen(ip), k=4;
	char *p = ip;
	for(i = 0; i<j; i++)
		if(ip[i] == '.')
		{
			ip[i] = 0;
			pack[k] = atoi(p);
			k++;
			p = ip+i+1;
		}
	pack[k] = atoi(p);
	pack[8] = srvport/256;
	pack[9] = srvport%256;

	if(send(s, pack, 10, 0) == SOCKET_ERROR)
		return SOCKET_ERROR;
	
	i = recv(s, pack, 10, 0);
	if(i == 0 || i == SOCKET_ERROR)
		return SOCKET_ERROR;
	if(pack[0] == 0x05 && pack[1] == 0x00)
			return s;
	return 0;
}
 
Ответить с цитированием

  #6  
Старый 24.06.2008, 18:30
Аватар для ElteRUS
ElteRUS
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
Провел на форуме:
7215020

Репутация: 1423
По умолчанию

Вот еще по сабжу: объясняется принцип работы соксов + пример на пхп (думаю зная принцип работы переделать под что угодно не проблема)

Организация работы php скрипта через socks5 сервер

PHP + socks5(авторизация по методу username/password)

Socks5 изучение продолжается:BIND
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто работал с glavmed cash$$$ Болталка 17 01.04.2009 18:40
кто как умирал гейлордфакерЪ Болталка 82 12.07.2008 11:57
кто на сях работал с таблицами excel? sn0w С/С++, C#, Delphi, .NET, Asm 2 26.03.2008 22:21
кто есть кто GreenBear Болталка 20 02.02.2008 02:39
Юмор: Кто сказал что у админов халявная работа? silveran Болталка 7 21.07.2007 02:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ