⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 natasconfig.cpp

📁 C++编写的IP数据包分析
💻 CPP
字号:
#include "NatasConfig.h"

CNatasConfig::CNatasConfig()
{
	bRealTime=FALSE;
	BOOL bLogFile=FALSE;
	NetAdapterNr=0;
	strcpy(LogFileName, "natas.log");
	strcpy(PWLogFileName, "natas_pw.log");
	strcpy(HTTPLogFileName, "natas_http.log");
	TargetPort =0;
	SourcePort =0;
	strcpy(TargetAddress, "0.0.0.0");
	strcpy(SourceAddress, "0.0.0.0");
}

CNatasConfig::~CNatasConfig()
{

}

void CNatasConfig::ReadConfigFromRegistry(){
	HKEY hKey;	
	BYTE buf[500];
	unsigned long bufsize;
//	unsigned int temp;
	int i_tmp;
	    

	if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\iNTEx\\Natas\\Config\0",0,KEY_READ,&hKey)) {
		
		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"LogFileName\0",NULL,NULL,buf,&bufsize))
			strcpy(LogFileName,(char*)buf);

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"PWLogFileName\0",NULL,NULL,buf,&bufsize))
			strcpy(PWLogFileName,(char*)buf);

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"HTTPLogFileName\0",NULL,NULL,buf,&bufsize))
			strcpy(HTTPLogFileName,(char*)buf);

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"SourceAddress\0",NULL,NULL,buf,&bufsize)) 
			strcpy(SourceAddress,(char*)buf);

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"TargetAddress\0",NULL,NULL,buf,&bufsize))
			strcpy(TargetAddress,(char*)buf);

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"SourcePort\0",NULL,NULL,buf,&bufsize)){
			i_tmp =atoi((char*)buf);
			SourcePort =(unsigned short)i_tmp;
		}

		ZeroMemory(buf,500);		
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"TargetPort\0",NULL,NULL,buf,&bufsize)){
			i_tmp =atoi((char*)buf);
			TargetPort =(unsigned short)i_tmp;
		}

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"NetAdapterNr\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			NetAdapterNr =i_tmp;
		}

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"FilterCombination\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			Combination =i_tmp;
		}

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"Enable Logfile\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			if(i_tmp) bLogFile=TRUE;
			else bLogFile=FALSE;
		}

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"Enable PWLogfile\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			if(i_tmp) bPWLogFile=TRUE;
			else bPWLogFile=FALSE;
		}

		ZeroMemory(buf,500);
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"Enable HTTPLogfile\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			if(i_tmp) bHTTPLogFile=TRUE;
			else bHTTPLogFile=FALSE;
		}

		ZeroMemory(buf,500);		
		bufsize=500;
		if(ERROR_SUCCESS==RegQueryValueEx(hKey,"Enable Realtime\0",NULL,NULL,buf,&bufsize)) {
			i_tmp =atoi((char*)buf);
			if(i_tmp) bRealTime=TRUE;
			else bRealTime=FALSE;
		}

		RegCloseKey(HKEY_CURRENT_USER);
	} 
}

void CNatasConfig::WriteConfigToRegistry(){
	HKEY hk;//=(HKEY)malloc(sizeof(HKEY));
	HKEY hk2;//=(HKEY)malloc(sizeof(HKEY));
	char temp[500];

	if(ERROR_SUCCESS==RegConnectRegistry(NULL,HKEY_CURRENT_USER,&hk))
		if(ERROR_SUCCESS==RegCreateKey(hk,"Software\\iNTEx\0",&hk2))
			if(ERROR_SUCCESS==RegCreateKey(hk,"Software\\iNTEx\\Natas\0",&hk2))
				if(ERROR_SUCCESS==RegCreateKey(hk,"Software\\iNTEx\\Natas\\Config\0",&hk2)) {
											
					RegSetValueEx(hk2,"LogFileName",0,REG_SZ,(const unsigned char*)LogFileName,strlen(LogFileName));

					RegSetValueEx(hk2,"PWLogFileName",0,REG_SZ,(const unsigned char*)PWLogFileName,strlen(PWLogFileName));

					RegSetValueEx(hk2,"HTTPLogFileName",0,REG_SZ,(const unsigned char*)HTTPLogFileName,strlen(HTTPLogFileName));
					
					RegSetValueEx(hk2,"SourceAddress",0,REG_SZ,(const unsigned char*)SourceAddress,strlen(SourceAddress));

					RegSetValueEx(hk2,"TargetAddress",0,REG_SZ,(const unsigned char*)TargetAddress,strlen(TargetAddress));

					sprintf(temp,"%d\0",SourcePort);
					RegSetValueEx(hk2,"SourcePort",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					sprintf(temp,"%d\0",TargetPort);
					RegSetValueEx(hk2,"TargetPort",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					sprintf(temp,"%d\0",NetAdapterNr);
					RegSetValueEx(hk2,"NetAdapterNr",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					sprintf(temp,"%d\0",Combination);
					RegSetValueEx(hk2,"FilterCombination",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					if(bLogFile) sprintf(temp,"1");
					else sprintf(temp,"0");
					RegSetValueEx(hk2,"Enable Logfile",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					if(bPWLogFile) sprintf(temp,"1");
					else sprintf(temp,"0");
					RegSetValueEx(hk2,"Enable PWLogfile",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					if(bHTTPLogFile) sprintf(temp,"1");
					else sprintf(temp,"0");
					RegSetValueEx(hk2,"Enable HTTPLogfile",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					if(bRealTime) sprintf(temp,"1");
					else sprintf(temp,"0");
					RegSetValueEx(hk2,"Enable Realtime",0,REG_SZ,(const unsigned char*)temp,strlen(temp));

					RegFlushKey(hk2);
					RegCloseKey(hk2);
					RegCloseKey(hk);
	
	} else MessageBox(NULL,"Error saving preferences in Registry!","Alert!",MB_OK);

	//free(hk2);
	//free(hk);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -