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

Release HttpProxyServer
  #1  
Старый 16.07.2007, 21:25
Аватар для da_ff
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

Репутация: 71
Отправить сообщение для da_ff с помощью ICQ
По умолчанию Release HttpProxyServer

Вот собсна решил наваять и выложить на общий суд
-язык с+api
-открывает 31337 порт
-логов не ведет
-весит мало ~10к (так я не понял откуда лишних 5к взялись а они лишние, точно)
-исходники прилагаются

HttpProxyServer

Последний раз редактировалось da_ff; 17.07.2007 в 21:58..
 
Ответить с цитированием

  #2  
Старый 18.07.2007, 11:49
Аватар для da_ff
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

Репутация: 71
Отправить сообщение для da_ff с помощью ICQ
По умолчанию

несколько человек добавили в репу с примерно следующим коментарием
Цитата:
Сообщение от kez  
на*** релизить ***ню всякую? давай ещё блокнот напишем?
причем тут блокнот это первый опыт в сетевом кодинге я просил посмотреть и высказать мнения, указать слабые места, показать как лучше.
 
Ответить с цитированием

  #3  
Старый 19.07.2007, 21:21
Аватар для KEZ
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

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

НИКАК не лучше и НИКАК не хуже потому что это просто ПРОКСИ, сорцов которого полно в инете на каждом сайте.

> -язык с+api
поведуй, что это а язык такой c+api?

хотя знаешь, тупости я в сорцах немного нашел. видимо это свойство интересного языка c+api, НО
Код:
		if(wParam==IDSERVER)
		{
			char cStatServ[15];
			GetDlgItemText(hWnd,IDSERVER,cStatServ,15);
			if(!strcmp(cStatServ,"Start Server"))
вот это что?) (хотябы [16] элементов бы задал для правильности)
какой ещё GetDlgItemTextA() ? сделай флаг g_bStarted = TRUE/FALSE; и всё

далее
Код:
void CenterWindow(HWND hWnd)
{
	RECT rt;
	GetWindowRect(hWnd,&rt);
	MoveWindow(hWnd,
						 (GetSystemMetrics(SM_CXSCREEN)-rt.right)>>1,
						 (GetSystemMetrics(SM_CYSCREEN)-rt.bottom)>>1,
						 rt.right-rt.left,
						 rt.bottom-rt.top,
						 0);
}
абсолютно бессмысленно - можно просто указать что диалог будет по центру, что указывается в настройках ресурса "ДИАЛОГ"

и вот это тупо тоже
Код:
while(strncmp(cBuf+iResult-4,"\r\n\r\n",4));
если только схематично, а так нет смысла вызывать strncmp

РАЗМЕР
У тебя рантайм используется. Отключай
#pragma comment(linker,"/entry:EntryPoint")
void EntryPoint( void )
// точка входа

в WM_COMMAND:IDCANCEL
Код:
		WSACleanup();
		EndDialog(hWnd,0);
		ExitProcess(0);
неправильно, правильнее будет вызывать EndDialog()
а в обработчике WM_CLOSE делать ExitProcess() или PostQuitMessage( 0 );

ещё нужно вызывать TerminateThread( hThread, 0 );
иначе нахер ты сохраняешь хенлд созданого потока?
и ещё, поставил бы ты таймауты на поток, обслуживающий клиент.

Последний раз редактировалось KEZ; 19.07.2007 в 21:33..
 
Ответить с цитированием

  #4  
Старый 19.07.2007, 21:50
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


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

Про размер я уже 100 раз писал! Больше писать не буду. Буду давать ссылку на свой пост на WASM.RU:

http://wasm.ru/forum/viewtopic.php?pid=188444#p188444
 
Ответить с цитированием

  #5  
Старый 19.07.2007, 22:43
Аватар для ZaCo
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

Код:
	char *cHost=(char *)malloc(HOST_SIZE);
	int iHostBeg=strstr(cBuf,"Host: ")-cBuf+6;
	int iHostLen=strstr(cBuf+iHostBeg,"\r")-cBuf-iHostBeg;
	strncpy(cHost,cBuf+iHostBeg,iHostLen);
 
Ответить с цитированием

  #6  
Старый 20.07.2007, 04:22
Аватар для t04
t04
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
Провел на форуме:
246020

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

блин, весь вечер убил на то чтобы перевести cpp>>delphi, людей подключил, в сё зря

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

исправь код!
 
Ответить с цитированием

  #7  
Старый 20.07.2007, 09:06
Аватар для KEZ
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Цитата:
char *cHost=(char *)malloc(HOST_SIZE);
int iHostBeg=strstr(cBuf,"Host: ")-cBuf+6;
int iHostLen=strstr(cBuf+iHostBeg,"\r")-cBuf-iHostBeg;
strncpy(cHost,cBuf+iHostBeg,iHostLen);
ага, спрашивается зачем использовать strncpy, если указывается длинна переданой строки
с HOST_SIZE+1 начанается переполнение стека и возможность выполнить произвольный код...

причем сервер падает у меня при использовании Firefox'ом 2.0.0.4 при первом же запросе, и я даже не разбирался почему)
 
Ответить с цитированием

  #8  
Старый 20.07.2007, 09:18
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


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

Открыл код... сразу бросилась в глаза передача сокетов по ссылке.. вопрос - нафига?
Далее
if(!strcmp(cStatServ,"Start Server"))
это жесть. Ставить флаг быстрее будет
Код:
	struct sockaddr_in saddr;
	saddr.sin_family=AF_INET;
	saddr.sin_port=htons(port);
	saddr.sin_addr.s_addr=htonl(INADDR_ANY);
	if(bind(*s,(sockaddr*)&saddr,sizeof(struct sockaddr))==SOCKET_ERROR)
1) А кто очистит sin_zero ?
2) Нафига делать htonl(INADDR_ANY)? Тем более что inaddr_any=0
3) не sizeof(struct sockaddr), а sizeof(struct sockaddr_in).

Код:
	do
	{
		int i=recv(sSock,cTemp,iSize,0);
		if(i<1)
			return iResult;
		iResult+=i;
		cTemp+=i;
		iSize-=i;
	}
	while(strncmp(cBuf+iResult-4,"\r\n\r\n",4));
Переполнение буфера.

Код:
	struct sockaddr_in saddr;
	saddr.sin_family=AF_INET;
	saddr.sin_port=htons(HTTP_PORT);
	if((saddr.sin_addr.s_addr=inet_addr("cHost"))==INADDR_NONE)
	{
Ой это вообще без комментариев. Это не работает 100%. Что называется "полный П"
 
Ответить с цитированием

  #9  
Старый 20.07.2007, 09:33
Аватар для inSa(Ne)rd
inSa(Ne)rd
Участник форума
Регистрация: 14.03.2005
Сообщений: 267
Провел на форуме:
2827464

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

> 1) А кто очистит sin_zero ?

а его не надо очищать

> 3) не sizeof(struct sockaddr), а sizeof(struct sockaddr_in).

в Windows 95, 98, NT, XP и тд некритично. вообще обычно делаю sizeof( s_a ) где s_a типа sockaddr_in

> 2) Нафига делать htonl(INADDR_ANY)? Тем более что inaddr_any=0
да это тупость)

> if((saddr.sin_addr.s_addr=inet_addr("cHost"))==INA DDR_NONE)
ага, это я не заметил... напоминает php ; )

А про переполнения отдельная тема.. везде где можно они есть)
 
Ответить с цитированием

  #10  
Старый 20.07.2007, 09:47
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


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

Цитата:
> 1) А кто очистит sin_zero ?

а его не надо очищать
Я пробовал не очищать, оно ругается.
Цитата:
> 3) не sizeof(struct sockaddr), а sizeof(struct sockaddr_in).

в Windows 95, 98, NT, XP и тд некритично. вообще обычно делаю sizeof( s_a ) где s_a типа sockaddr_in
Некритично вообще, ибо sizeof(sockaddr)==sizeof(sockaddr_in). Но все таки нужно писать правильно
Цитата:
> if((saddr.sin_addr.s_addr=inet_addr("cHost"))==INA DDR_NONE)
ага, это я не заметил... напоминает php ; )
Скорее напоминает бред шизофреника)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sun Drake [GUI] : release slider Избранное 6 14.07.2007 00:43
XTCS Counter-Strike 1.6 Final Release (FULL VERSION -2006) GreenBear Болталка 12 20.02.2007 20:43
Microsoft Windows Vista RC1 (Release Candidate) build 5600 †Romi4† Soft - Windows 8 10.09.2006 14:54
GCC 4.1 Release Series w00d Мировые новости 0 25.05.2006 12:37
Уязвимости форума YaBB 1 Gold - Release и сплойты к нему asma2k Форумы 5 06.01.2006 02:00



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


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




ANTICHAT.XYZ