Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

23.01.2010, 05:17
|
|
Участник форума
Регистрация: 26.05.2007
Сообщений: 191
Провел на форуме: 389326
Репутация:
9
|
|
спасибо, ошибку нашел))))
|
|
|

23.01.2010, 23:36
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 36
Провел на форуме: 595180
Репутация:
11
|
|
как выключить отладку приложений в VS2008?Крошится hddlife.exe и постоянно выходит "Вы не желаете отладить приложение?"
|
|
|

24.01.2010, 00:08
|
|
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме: 3718311
Репутация:
1118
|
|
http://technet.microsoft.com/ru-ru/library/aa995708%28EXCHG.80%29.aspx
|
|
|

24.01.2010, 01:03
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 36
Провел на форуме: 595180
Репутация:
11
|
|
Сообщение от POS_troi
http://technet.microsoft.com/ru-ru/library/aa995708%28EXCHG.80%29.aspx
правильнее http://msdn.microsoft.com/ru-ru/library/k8kf6y2a.aspx
|
|
|

25.01.2010, 12:15
|
|
Iron Man#2
Регистрация: 08.07.2009
Сообщений: 2,084
Провел на форуме: 3896191
Репутация:
2562
|
|
Написал я простенькую програмку на С++, отправил своему другу, он не может открыть, пишет типо не удалось запустить....
|
|
|

25.01.2010, 12:54
|
|
Познающий
Регистрация: 06.04.2009
Сообщений: 69
Провел на форуме: 1032476
Репутация:
39
|
|
Keltos, на С++ Builder писал? Если да, то:
Project->Options->Packages, и поставь(или наоборот сними) галочку напротив, Build With Runtime Libraries. После этого перекомпилируй.
Последний раз редактировалось Chubakur; 25.01.2010 в 13:05..
|
|
|

25.01.2010, 18:01
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
вопрос: ошибка компилирования в Dev C++
код:
Код:
/************************************************** *****************************
Satanic Socks Server v0.66.170506
Powered by drmist\STNC
Compilation:
Win32: Visual C++
Unix: gcc -lpthread sss.c -o sss
v0.66.170506
+ IPv4
+ Domain names
+ Connect method
+ Login:Password authorization
(c) 2006 www.security-teams.net crew
************************************************** *****************************/
//#define UNIX 1
#define WIN32 1
/#define AUTH_ON 1
#define PORT 3003
#define BUFF_SIZE 1024
#ifdef AUTH_ON
const char AuthLogin[] = "login";
const char AuthPass[] = "pass";
#define SOCKS5_METHOD 0x02
#else
#define SOCKS5_METHOD 0x00
#endif
#ifdef UNIX
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "netdb.h"
typedef int SOCKET;
typedef int bool;
typedef int __stdcall;
#define SOCKET_ERROR -1
#define INVALID_SOCKET -1
#define false 0
#define true 1
#define SD_BOTH SHUT_RDWR
#define _malloc malloc
#define closesocket close
void create_thread(void* func, void* param)
{
int ThrId;
pthread_create(&ThrId, 0, func, param);
}
#endif
#ifdef WIN32
#include "winsock2.h"
#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
#pragma comment(linker, "/ENTRY:main /ALIGN:0x200 /BASE:0x400000")
#pragma comment(linker, "/MERGE:.rdata=.text /SECTION:.text, EWR")
typedef UINT in_addr_t;
#define strcmp lstrcmp
#define free GlobalFree
void create_thread(void* func, void* param)
{
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, param, 0, NULL);
}
char* _malloc(int BuffSize)
{
return (char*)GlobalAlloc(GMEM_FIXED, BuffSize);
}
void bzero(void* lpBuff, int BuffSize)
{
_asm
{
xor eax, eax
mov ecx, BuffSize
mov edi, lpBuff
cld
rep stosb
}
}
#endif
#define SOCKS_VERSION 0x05
#define SOCKS_SUCCESS 0x00
#define SOCKS_FAILURE 0x01
#define SOCKS_CONNECTION_REFUSED 0x05
#define SOCKS_CMD_NOT_SUPPORTED 0x07
typedef struct
{
char* _ConnectStruct;
SOCKET From;
SOCKET To;
char Buff[BUFF_SIZE];
char* Error;
} SOCKSPIPE;
typedef SOCKSPIPE* LPSOCKSPIPE;
typedef struct _CONNECTSTRUCT
{
SOCKSPIPE FromStruct;
SOCKSPIPE ToStruct;
char Error;
} CONNECTSTRUCT;
typedef CONNECTSTRUCT* LPCONNECTSTRUCT;
LPCONNECTSTRUCT CreateConnectStruct(SOCKET From, SOCKET To)
{
LPCONNECTSTRUCT Result = (LPCONNECTSTRUCT)_malloc(sizeof(CONNECTSTRUCT));
Result->FromStruct._ConnectStruct = (char*)Result;
Result->FromStruct.From = From;
Result->FromStruct.To = To;
Result->FromStruct.Error = &(Result->Error);
Result->ToStruct._ConnectStruct = (char*)Result;
Result->ToStruct.From = To;
Result->ToStruct.To = From;
Result->ToStruct.Error = &(Result->Error);
Result->Error = 0x00;
return Result;
}
bool swrite(SOCKET s, char* Buff, int buff_size)
{
int bytes;
while(buff_size > 0)
{
bytes = send(s, Buff, buff_size, 0);
if((bytes == 0)||(bytes == SOCKET_ERROR))
return false;
buff_size -= bytes;
Buff += bytes;
}
return true;
}
bool sread(SOCKET s, char* Buff, int buff_size)
{
int bytes;
while(buff_size > 0)
{
bytes = recv(s, Buff, buff_size, 0);
if((bytes == 0)||(bytes == SOCKET_ERROR))
return false;
buff_size -= bytes;
Buff += bytes;
}
return true;
}
__stdcall SocksPipe(LPSOCKSPIPE PipeStruct)
{
int bytes;
do
{
bytes = recv(PipeStruct->From, PipeStruct->Buff, BUFF_SIZE, 0);
if((bytes == 0) || (bytes == SOCKET_ERROR))
break;
if(*(PipeStruct->Error) & 0x01)
{
*(PipeStruct->Error) |= 0x02;
return 0;
}
if(!swrite(PipeStruct->To, PipeStruct->Buff, bytes))
{
*(PipeStruct->Error) |= 0x02;
return 0;
}
}
while(!(*(PipeStruct->Error) & 0x01));
if(*(PipeStruct->Error) & 0x01)
*(PipeStruct->Error) |= 0x02;
else
{
*(PipeStruct->Error) |= 0x01;
shutdown(PipeStruct->From, SD_BOTH);
shutdown(PipeStruct->To, SD_BOTH);
closesocket(PipeStruct->From);
closesocket(PipeStruct->To);
while(!(*(PipeStruct->Error) & 0x02))
{
#ifdef UNIX
sleep(1);
#endif
#ifdef WIN32
Sleep(1000);
#endif
}
free(PipeStruct->_ConnectStruct);
}
return 0;
}
bool Socks5SendCode(SOCKET s, char Code, char* TempBuff, char* ip, char* port)
{
*(int*)TempBuff = 0x1000000 | (Code << 8) | SOCKS_VERSION;
*(int*)(TempBuff + 4) = *(int*)ip;
*(short*)(TempBuff + 8) = *(short*)port;
return swrite(s, TempBuff, 10);
}
SOCKET Socks5ServConnect(SOCKET s, char* TempBuff, char* ip, u_short port)
{
struct sockaddr_in saddr;
SOCKET Redir = socket(AF_INET, SOCK_STREAM, 0);
if(Redir == INVALID_SOCKET)
Socks5SendCode(s, SOCKS_FAILURE, TempBuff, ip, (char*)&port);
else
{
bzero(&saddr, sizeof(struct sockaddr_in));
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = *(in_addr_t*)ip;
saddr.sin_port = port;
if(connect(Redir, (struct sockaddr*)&saddr, sizeof(struct sockaddr_in)) == -1)
{
Socks5SendCode(s, SOCKS_CONNECTION_REFUSED, TempBuff, ip, (char*)&port);
closesocket(Redir);
Redir = INVALID_SOCKET;
}
}
return Redir;
}
bool Socks5CmdIsSupported(SOCKET s, char cmd, char* TempBuff, char* ip, char* port)
{
if(cmd != 0x01) // 0x02 - bind; 0x03 - udp associate
{
Socks5SendCode(s, SOCKS_CMD_NOT_SUPPORTED, TempBuff, ip, port);
return false;
}
return true;
}
bool Socks5GetCmd(SOCKET s, char* TempBuff, char* cmd, char* ip, char* port)
{
struct hostent* hp;
char DnLen;
char AddrType;
char Tmp[5];
if(!sread(s, TempBuff, 4))
return false;
if((TempBuff[0] != SOCKS_VERSION)||(TempBuff[2] != 0x00))
return false;
*cmd = TempBuff[1];
AddrType = TempBuff[3];
switch(AddrType)
{
case 0x01: // ip v4
if(!sread(s, ip, 4))
return false;
break;
case 0x03: // domain name
if(!sread(s, &DnLen, 1))
return false;
if(DnLen == 0)
return false;
if(!sread(s, TempBuff, DnLen))
return false;
TempBuff[DnLen] = 0x00;
hp = gethostbyname(TempBuff);
if(((int)hp == -1)||((int)hp == 0))
{
if(!sread(s, port, 2))
return false;
*(int*)(&Tmp) = 0x03000405;
*(char*)(&Tmp + 4) = DnLen;
if(swrite(s, Tmp, 5))
if(swrite(s, TempBuff, DnLen))
swrite(s, port, 2);
return false;
}
else
*(int*)ip = *(int*)hp->h_addr;
break;
case 0x04: // ip v6, not supported
*(int*)(&Tmp) = 0x04000805;
if(sread(s, TempBuff, 16))
if(sread(s, port, 2))
if(swrite(s, Tmp, 4))
if(swrite(s, TempBuff, 16))
swrite(s, port, 2);
return false;
default:
return false;
}
return sread(s, port, 2);
}
#ifdef AUTH_ON
bool Socks5Auth(SOCKET s, char* TempBuff)
{
char Login[256];
char LoginLen;
char PassLen;
char Status = '\xFF';
if(!sread(s, TempBuff, 2))
return false;
LoginLen = TempBuff[1];
if((TempBuff[0] != 0x01)||(LoginLen == 0))
return false;
if(!sread(s, Login, LoginLen+1))
return false;
PassLen = Login[LoginLen];
if(!PassLen)
return false;
Login[LoginLen] = 0x00;
if(!sread(s, TempBuff, PassLen))
return false;
TempBuff[PassLen] = 0x00;
if((strcmp(AuthLogin, Login) == 0)&&(strcmp(AuthPass, TempBuff) == 0))
Status = 0x00;
*(short*)TempBuff = (Status << 8) | 0x01;
if(!swrite(s, TempBuff, 2))
return false;
return (Status == 0x00);
}
#endif
bool Socks5Accept(SOCKET s, char* TempBuff)
{
char MethodsCount;
char Cmd = '\xFF';
if(!sread(s, TempBuff, 2))
return false;
MethodsCount = TempBuff[1];
if((TempBuff[0] != SOCKS_VERSION)||(MethodsCount == 0))
return false;
if(!sread(s, TempBuff, MethodsCount))
return false;
do
{
MethodsCount--;
if(TempBuff[MethodsCount] == SOCKS5_METHOD)
{
Cmd = TempBuff[MethodsCount];
break;
}
}
while(MethodsCount > 0);
*(short*)TempBuff = (Cmd << 8) | SOCKS_VERSION;
if(!swrite(s, TempBuff, 2))
return false;
#ifdef AUTH_ON
return (Cmd == 0xFF) ? false : Socks5Auth(s, TempBuff);
#else
return (Cmd != 0xFF);
#endif
}
__stdcall AcceptThread(SOCKET s)
{
SOCKET Redir;
LPCONNECTSTRUCT ConnectStruct;
char TempBuff[256];
char cmd;
char ip[4];
u_short port;
if(Socks5Accept(s, TempBuff))
if(Socks5GetCmd(s, TempBuff, &cmd, ip, (char*)&port))
if(Socks5CmdIsSupported(s, cmd, TempBuff, ip, (char*)&port))
{
Redir = Socks5ServConnect(s, TempBuff, ip, port);
if(Redir != INVALID_SOCKET)
{
if(Socks5SendCode(s, SOCKS_SUCCESS, TempBuff, ip, (char*)&port))
{
ConnectStruct = CreateConnectStruct(s, Redir);
create_thread(&SocksPipe, &(ConnectStruct->ToStruct));
SocksPipe(&(ConnectStruct->FromStruct));
return 0;
}
closesocket(Redir);
}
}
closesocket(s);
return 0;
}
int main(int argc, char* argv[])
{
SOCKET s, accepted;
struct sockaddr_in saddr;
int saddr_size = sizeof(struct sockaddr_in);
#ifdef WIN32
WSADATA WSA;
if(WSAStartup(MAKEWORD(2, 2), &WSA) != 0)
return 0;
#endif
s = socket(AF_INET, SOCK_STREAM, 0);
if(s != INVALID_SOCKET)
{
bzero(&saddr, sizeof(struct sockaddr_in));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(PORT);
if(bind(s, (struct sockaddr*)&saddr, sizeof(struct sockaddr_in)) != SOCKET_ERROR)
if(listen(s, 0) != SOCKET_ERROR)
for(;;)
{
accepted = accept(s, (struct sockaddr*)&saddr, &saddr_size);
if(accepted != INVALID_SOCKET)
create_thread(&AcceptThread, (void*)accepted);
}
closesocket(s);
}
#ifdef WIN32
WSACleanup();
ExitProcess(0);
#endif
return 0;
}
|
|
|

25.01.2010, 18:34
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
да
|
|
|

25.01.2010, 20:40
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
Подскажите хороший ман по указателям и ссылкам.
Прочитал тучу книг.
Прочитал кучу форумов - люди спорят на много страниц чем отличается ссылка от указателя. Я - новичок, набрав в гугле чем оличается ссылка от указателя попадаю на фоурм ixbt где каждый пытается разъяснить чем оличается и такие навороченные коды привдят...
Как мне разобраться с указателями и ссылками?
|
|
|

25.01.2010, 21:06
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
ссылка на пременную - это синоним по которому к нему можно обратиться
указатель это переменная значениее которой адрес указывающий на адрес содержащий значение переменной. Я для себя это так понимаю. и мне этого хватает.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|